- Componenti richiesti:
- Sensore a ultrasuoni HC-SR04:
- Modulo Wi-Fi ESP8266:
- Schema del circuito e spiegazione:
- Spiegazione del codice:
- "; if (distanza <5) {webpage + =" Trash can is Full ";} else {webpage + =" Trash can is Empty ";} webpage + ="
- Test e risultati del progetto:
In questo fai-da-te, creeremo un sistema di monitoraggio di cassonetti / rifiuti basato su IOT che ci dirà che se il cestino è vuoto o pieno attraverso il server web e puoi conoscere lo stato del tuo 'Cestino' o 'Cassonetti' da ovunque nel mondo su Internet. Sarà molto utile e può essere installato nei bidoni della spazzatura sia nei luoghi pubblici che a casa.
In questo progetto IOT, viene utilizzato un sensore a ultrasuoni per rilevare se il bidone della spazzatura è pieno di spazzatura o meno. Qui il sensore a ultrasuoni è installato nella parte superiore del cestino e misurerà la distanza della spazzatura dalla parte superiore del cestino e possiamo impostare un valore di soglia in base alle dimensioni del cestino. Se la distanza sarà inferiore a questo valore di soglia, significa che il cestino è pieno di immondizia e stamperemo il messaggio "Il carrello è pieno" sulla pagina web e se la distanza sarà superiore a questo valore di soglia, stamperemo il messaggio "Il carrello è vuoto". Qui abbiamo impostato il valore di soglia di 5 cm nel codice del programma. Useremo il modulo Wi-Fi ESP8266per collegare Arduino al webserver. Qui abbiamo utilizzato il server web locale per dimostrare il funzionamento di questo sistema di monitoraggio dei rifiuti.
Componenti richiesti:
- Arduino Uno (puoi usare qualsiasi altro)
- Modulo Wi-Fi ESP8266
- Sensore a ultrasuoni HC-SR04
- Resistori 1K
- Breadboard
- Cavi di collegamento
Sensore a ultrasuoni HC-SR04:
Il sensore a ultrasuoni viene utilizzato per misurare la distanza con elevata precisione e letture stabili. Può misurare la distanza da 2 cm a 400 cm o da 1 pollice a 13 piedi. Emette un'onda ad ultrasuoni alla frequenza di 40 KHz nell'aria e se l'oggetto si frappone, rimbalzerà sul sensore. Utilizzando il tempo necessario per colpire l'oggetto e tornare indietro, puoi calcolare la distanza.
Il sensore a ultrasuoni ha quattro pin. Due sono VCC e GND che saranno collegati al 5V e al GND di Arduino mentre gli altri due pin sono Trig ed Echo che andranno collegati ad eventuali pin digitali di Arduino. Il trig pin invierà il segnale e il pin Echo verrà utilizzato per ricevere il segnale. Per generare un segnale a ultrasuoni, dovrai alzare il pin Trig per circa 10us che invierà un burst sonico di 8 cicli alla velocità del suono e dopo aver colpito l'oggetto, verrà ricevuto dal pin Echo.
Controlla ulteriormente i progetti di seguito per comprendere correttamente il funzionamento del sensore a ultrasuoni e per misurare la distanza di qualsiasi oggetto che lo utilizza:
- Misurazione della distanza basata su Arduino tramite sensore a ultrasuoni
- Misurazione della distanza utilizzando HC-SR04 e microcontrollore AVR
Modulo Wi-Fi ESP8266:
ESP8266 è un modulo Wi-Fi che darà ai tuoi progetti l' accesso a Wi-Fi o Internet. È un dispositivo molto economico ma renderà i tuoi progetti molto potenti. Può comunicare con qualsiasi microcontrollore e rendere i progetti wireless. È nell'elenco dei dispositivi più importanti nella piattaforma IOT. Funziona a 3,3 V e se gli dai 5 V, subirà danni.
L'ESP8266 ha 8 pin; il VCC e il CH-PD saranno collegati al 3.3V per abilitare il wifi. I pin TX e RX saranno responsabili della comunicazione di ESP8266 con Arduino. Il pin RX funziona a 3,3 V, quindi dovrai creare un partitore di tensione come abbiamo fatto nel nostro progetto.
Schema del circuito e spiegazione:
Prima di tutto collegheremo ESP8266 con Arduino. ESP8266 funziona a 3,3 V e se gli dai 5 V da Arduino non funzionerà correttamente e potrebbe subire danni. Collega il VCC e il CH_PD al pin 3.3V di Arduino. Il pin RX di ESP8266 funziona su 3.3V e non comunicherà con Arduino quando lo collegheremo direttamente ad Arduino. Quindi, dovremo creare un partitore di tensione per questo. Tre resistenze da 1k collegate in serie faranno il lavoro per noi. Collegare l'RX al pin 11 di Arduino tramite le resistenze come mostrato nella figura sotto e anche il TX di Arduino al pin 10 di Arduino.
Ora è il momento di collegare il sensore a ultrasuoni HC-SR04 con Arduino. I collegamenti del sensore a ultrasuoni con Arduino sono molto semplici. Collega il VCC e la massa del sensore a ultrasuoni al 5V e alla terra di Arduino. Quindi collegare i pin TRIG ed ECHO del sensore a ultrasuoni rispettivamente ai pin 8 e 9 di Arduino.
Spiegazione del codice:
Prima di caricare il codice, assicurati di essere connesso al Wi-Fi del tuo dispositivo ESP8266. Puoi controllare il codice completo nella sezione Codice di seguito, il codice è stato ben spiegato dai commenti, inoltre abbiamo anche spiegato alcune importanti funzioni di seguito.
L'Arduino leggerà prima il sensore a ultrasuoni. Invierà un segnale ultrasonico alla velocità del suono quando alzeremo il pin TRIG per 10us. Il segnale tornerà dopo aver colpito l'oggetto e memorizzeremo la durata del tempo di viaggio nella variabile denominata duration . Quindi calcoleremo la distanza dell'oggetto (spazzatura nel nostro caso) applicando una formula e la memorizzeremo nella variabile denominata distanza .
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); durata = pulseIn (echoPin, HIGH); distanza = durata * 0,034 / 2;
Per stampare l'output sulla pagina web nel browser web, dovremo utilizzare la programmazione HTML. Quindi, abbiamo creato una stringa denominata pagina web e memorizzato l'output in essa. Per sapere se il cestino è vuoto o meno, abbiamo applicato una condizione lì. Se la distanza sarà inferiore a 5 cm, verrà visualizzato il messaggio "Il carrello è pieno" sulla pagina Web e se la distanza sarà maggiore di 5 cm, verrà visualizzato il messaggio "Il carrello è vuoto" sulla pagina Web.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {delay (1000); int connectionId = esp8266.read () - 48; String webpage = "
Sistema di monitoraggio dei rifiuti IOT
"; pagina web + =""; if (distanza <5) {webpage + =" Trash can is Full ";} else {webpage + =" Trash can is Empty ";} webpage + ="
";Il codice seguente invierà e mostrerà i dati sulla pagina web. I dati, memorizzati nella stringa denominata "pagina web", verranno salvati nella stringa denominata "comando" . L'ESP8266 leggerà quindi i caratteri uno per uno dal "comando" e lo stamperà sulla pagina web.
String sendData (String command, const int timeout, boolean debug) {String response = ""; esp8266.print (comando); tempo int lungo = millis (); while ((time + timeout)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); risposta + = c; }} if (debug) {Serial.print (risposta); } risposta di ritorno; }
Test e risultati del progetto:
Dopo aver caricato il codice, apri Serial Monitor e ti mostrerà un indirizzo IP come mostrato di seguito.
Digita questo indirizzo IP nel tuo browser, ti mostrerà l'output come mostrato di seguito. Dovrai aggiornare di nuovo la pagina se vuoi vedere di nuovo che il cestino è vuoto o meno.
Quindi è così che funziona questo sistema di monitoraggio dei rifiuti, questo progetto può essere ulteriormente migliorato aggiungendo alcune funzionalità in più, ad esempio possiamo impostare un messaggio in più quando il cestino è pieno a metà o possiamo attivare un'e-mail / SMS per avvisare l'utente quando Cestino Il cestino è pieno.