Código
- Segregação de resíduos
- Monitoramento do nível do caixote do lixo
Segregação de resíduos C / C ++
#include // # include "Arduino.h" // # include "Button.h" #include LiquidCrystal lcd (1,2,4,5,6,7); const int knapp =3; int ButtonState =0; // estado atual do buttonint oldButtonState =0; const int ledPin1 =10; const int ledPin2 =11; const int buzz1 =12; const int buzz2 =13; const int plasticsensor =A0; int metalensor =A1; int metalsensor_M =A2; Servo myservo; Servo myservo_M; int pos =90; int pos_M =360; void setup () {pinMode (knapp, INPUT); digitalWrite (knapp, LOW); lcd.begin (16,2); lcd.clear (); myservo.attach (9); myservo_M.attach (8); pinMode (plasticsensor, INPUT_PULLUP); pinMode (metaisensor, INPUT_PULLUP); pinMode (metaisensor_M, INPUT_PULLUP); pinMode (ledPin1, OUTPUT); pinMode (ledPin2, OUTPUT); pinMode (buzz1, OUTPUT); pinMode (buzz2, OUTPUT); Serial.begin (9600);} void loop () {lcd.setCursor (0,0); lcd.print ("INSERIR METAL LIGADO"); lcd.setCursor (0,1); lcd.print ("LADO DIREITO"); atraso (6000); lcd.clear (); int sensor_read =digitalRead (sensor de plástico); Serial.println ("sensor de plástico"); Serial.println (sensor_read); // atraso (10); int sensor_read_m =digitalRead (metaisensor); // Caixa de plástico Serial.println ("metal sensor1"); Serial.println (sensor_read_m); // atraso (10); int sensor_read_mm =digitalRead (metaisensor_M); Serial.println (sensor_read_mm); // atraso (10); if ((sensor_read ==1) &&(sensor_read_m! =1)) {for (pos =90; pos <=240; pos + =1) {// vai de 0 graus a 180 graus // em etapas de 1 grau myservo.write (pos); // diz ao servo para ir para a posição na variável 'pos' // delay (5); digitalWrite (ledPin1, HIGH); digitalWrite (buzz1, HIGH); // espera 15ms para o servo atingir a posição} // delay (5000); for (pos =240; pos> =90; pos - =1) {// vai de 0 graus a 180 graus // em etapas de 1 grau myservo.write (pos); // atraso (5); }} else {// vai de 180 graus a 0 degr myservo.write (pos); digitalWrite (ledPin1, LOW); digitalWrite (buzz1, LOW); } if ((sensor_read_mm ==1) &&(sensor_read ==0)) {for (pos_M =360; pos_M> =50; pos_M - =1) {// vai de 0 graus a 180 graus // em etapas de 1 grau myservo_M.write (pos_M); // atraso (5); digitalWrite (ledPin2, HIGH); digitalWrite (buzz2, HIGH); } // diz ao servo para ir para a posição na variável 'pos' // delay (5000); for (pos_M =50; pos_M <=360; pos_M + =1) {// vai de 180 graus a 0 graus myservo_M.write (pos_M); // diz ao servo para ir para a posição na variável 'pos' // delay (5); // espera 15ms para o servo alcançar a posição}} else {myservo_M.write (pos_M); digitalWrite (ledPin2, LOW); digitalWrite (buzz2, LOW); }}
Monitoramento do nível do caixote do lixo C / C ++
#include "ThingSpeak.h" #include #include #include #include #define BLYNK_PRINT #define BLYNK_PRINT Serial #define TRIGGHO2 5 definir ECCLE2 cliente; const estático int RXPin =4, TXPin =5; // GPIO 4 =D2 (conectar Tx de GPS) e GPIO 5 =D1 (Conectar Rx de GPSstatic const uint32_t GPSBaud =9600; // se a taxa Baud 9600 não funcionou no seu caso, use 4800unsigned long myChannelField =1067056; / / Channel IDconst int ChannelField =1; // Qual canal gravar dataconst char * myWriteAPIKey ="FMV95MD2A1J7Y8SP"; // Sua gravação ATinyGPSPlus gps; // O TinyGPS ++ objectWidgetMap myMap (V0); // V0 para pino virtual do MapSoftwareSerial ss (RXPin, TXPin); // A conexão serial com o temporizador GPS deviceBlynkTimer; // Você deve obter o Auth Token no Blynk App.char auth [] ="YVvgHBx9fIM1-yR_2XrGXXkKdIuEmrYL"; // Suas credenciais WiFis.// Definir senha para "" para abrir networks.char ssid [] ="diksha"; char pass [] ="diksha19"; unsigned int move_index =1; void setup () {Serial.begin (115200); ss.begin (GPSBaud); Blynk.begin (auth, ssid, pass); // timer.setInterval (5000L, checkGPS); pinMode (TRIGGER2, OUTPUT); pinMode (ECHO2, INPUT); pinMode (BUILTIN_LED, OUTPUT); WiFi.mode (WIFI_STA); ThingSpeak. begin (client);} / * void checkGPS () {if (gps.charsProcessed () <10) {Serial.println (F ("Nenhum GPS detectado:verifique a fiação.")); }} * / void loop () {if (WiFi.status ()! =WL_CONNECTED) {Serial.print ("Tentando conectar ao SSID:"); Serial.println (ssid); while (WiFi.status ()! =WL_CONNECTED) {WiFi.begin (ssid, pass); Serial.print ("."); atraso (100); } Serial.println ("\ nConectado."); } while (ss.available ()> 0) {// sketch exibe informações sempre que uma nova frase é codificada corretamente. if (gps.encode (ss.read ())) Serial.println ("GPS conectado"); // displayInfo (); {if (gps.location.isValid ()) {float latitude =(gps.location.lat ()); // Armazenando o Lat. e Lon. longitude flutuante =(gps.location.lng ()); Serial.print ("LAT:"); Serial.println (latitude, 6); // flutua para x casas decimais Serial.print ("LONG:"); Serial.println (longitude, 6); ThingSpeak.setField (3, latitude); ThingSpeak.setField (4, longitude); ThingSpeak.writeFields (myChannelField, myWriteAPIKey); Blynk.virtualWrite (V1, String (latitude, 6)); Blynk.virtualWrite (V2, String (longitude, 6)); myMap.location (move_index, latitude, longitude, "GPS_Location"); }}} // longa duração1, distância1; longa duração2, distância2; digitalWrite (TRIGGER2, LOW); atrasoMicrosegundos (2); digitalWrite (TRIGGER2, HIGH); atrasoMicrosegundos (10); digitalWrite (TRIGGER2, LOW); duração2 =pulseIn (ECHO2, ALTO); distância2 =(duração2 / 2) / 29,1; if (distance2 <=5) {Blynk.notify ("Por favor !! esvazie a lixeira");} Serial.println ("2 Centímetros ultrassônicos:"); Serial.println (distância2); Blynk.virtualWrite (V6, distância2); ThingSpeak.writeField (myChannelField, ChannelField, distance2, myWriteAPIKey); atraso (100); Blynk.run (); timer.run ();}