Sommario:
- Passaggio 1: parti e componenti
- Passaggio 2: il sensore
- Passaggio 3: personalizzazione dell'orologio in tempo reale
- Passaggio 4: altre varie a bordo
- Passaggio 5: schema
- Passaggio 6: software e logica
Video: Postino: Il postino ha consegnato qualcosa?: 6 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Non una mia idea: un giorno un amico mi ha chiesto un modo per controllare a distanza se nella sua casella di posta si trovava della posta. La cassetta della posta non è sul sentiero che porta alla sua porta, quindi, poiché è un ragazzo pigro, si chiedeva se un gadget tecnologico potesse essere in grado di avvisarlo di qualsiasi lettera nella cassetta postale. Ho dato un'occhiata al mercato e non sono riuscito a trovare nessun dispositivo già pronto adatto alle sue esigenze, quindi ho lanciato una sfida a me stesso: perché non progettarlo e costruirlo?
I vincoli erano:
- alimentato a batteria con una durata ragionevole tra i cambi di batteria;
- comunicazione Wi-Fi;
- controlla solo una volta al giorno se c'è posta o no;
La domanda principale era: quale tipo di sensore poteva soddisfare le mie esigenze? Un sensore di prossimità non poteva funzionare, in quanto il controllo doveva essere effettuato solo una volta al giorno e non in tempo reale; nemmeno un sensore di peso, in quanto ciò avrebbe aggiunto complessità e problemi di sensibilità (un foglio di carta potrebbe essere molto leggero). La mia scelta è atterrata su un sensore Time-of-Flight (un micro laser). Una volta calibrato per le dimensioni della cassetta postale, qualsiasi cosa si trovasse nel mezzo avrebbe attivato il sensore! Considerando i 3 vincoli, ho deciso di utilizzare un ESP8266 (che esegue il software e si collega al WiFi), un sensore Time-of-Flight VL6180 per la misurazione e un Real Time Clock DS3231 per attivare tutti i circuiti una volta al giorno: ecco come Postino è nato!
Passaggio 1: parti e componenti
- ESP8266-01 (o ESP-12E NodeMCU)
- VL6108 Sensore del tempo di volo
- Orologio in tempo reale DS3231
- IRLZ44 MosFET a canale N
- Transistor BC547
- resistori
- Batteria CR123
Passaggio 2: il sensore
Il cuore del sistema è il sensore VL6180. Si tratta di una tecnologia innovativa che consente di misurare la distanza assoluta indipendentemente dalla riflettanza del bersaglio. Invece di stimare la distanza misurando la quantità di luce riflessa dall'oggetto (che è significativamente influenzata dal colore e dalla superficie), il VL6180X misura con precisione il tempo impiegato dalla luce per raggiungere l'oggetto più vicino e riflettersi sul sensore (Tempo -di-volo). Combinando un emettitore IR, un sensore di portata e un sensore di luce ambientale in un pacchetto reflowable tre in uno pronto all'uso, il VL6180X è facile da integrare e consente al produttore del prodotto finale di risparmiare lunghe e costose ottimizzazioni del design ottico e meccanico.
Il modulo è progettato per il funzionamento a bassa potenza. Ho usato la breakout board Pololu che ha regolatori di tensione a bordo che le consentono di funzionare su un intervallo di tensione di ingresso da 2,7 V a 5,5 V.
Il sensore consente 3 validi fattori di scala che impostano il range massimo della misura da 20 a 60 cm, con diverse sensibilità. Configurando un fattore di scala dell'intervallo, l'intervallo massimo potenziale del sensore può essere aumentato al costo di una risoluzione inferiore. L'impostazione del fattore di scala su 2 fornisce un intervallo fino a 40 cm con una risoluzione di 2 mm, mentre un fattore di ridimensionamento di 3 fornisce un intervallo fino a 60 cm con una risoluzione di 3 mm. Devi testare le 3 bilance con le dimensioni della tua casella di posta. Dato che il mio era di 25 cm (H) ho usato il fattore di scala=1.
Passaggio 3: personalizzazione dell'orologio in tempo reale
Per l'RTC ho usato una breakout board DS3231 che include una EEPROM (inutile per il mio scopo) e una batteria a bottone. Poiché ho deciso di alimentare l'RTC tramite la batteria del dispositivo principale (una CR123 da 3 V), ho rimosso la batteria a bottone; per risparmiare energia ho anche rimosso la EEPROM (tagliando con cura i suoi pin) e il led di bordo.
La batteria a bottone non mi è stata utile perché non avevo bisogno di tenere data/ora/minuto/secondo in tempo reale, ma l'RTC doveva solo contare per 24 ore e quindi attivare l'allarme per accendere il dispositivo.
Passaggio 4: altre varie a bordo
L'accensione del dispositivo avviene tramite un circuito a transistor e MosFET, attivato dall'allarme RTC. Una volta ripristinato l'allarme, il circuito interrompe l'alimentazione al dispositivo per un altro ciclo di 24 ore. Al raggiungimento dell'allarme, il DS3231 commuta un pin da alto a basso: in condizioni normali il transistor è saturo e cortocircuita a massa il gate del MosFET. Una volta che l'allarme porta la base del transistor a massa, si apre e consente al MosFET di chiudere il circuito e dare alimentazione al resto dei componenti.
Inoltre, ho aggiunto un ponticello "test-1M". Lo scopo di questo interruttore è, se attivato, di modificare il ciclo da una volta al giorno a una volta al minuto, al fine di eseguire i test di distribuzione. Per modificare l'intervallo da un giorno a un minuto è necessario prima chiudere il ponticello “Test-C” per circa 15 secondi, per bypassare il periodo di attivazione della sveglia dell'orologio e per accendere il dispositivo. Al termine dei test, aprire i ponticelli e ripristinare il dispositivo (spegnere e riaccendere).
Passaggio 5: schema
Passaggio 6: software e logica
Durante i test ho utilizzato (per ragioni pratiche) un controller NodeMCU, quindi il software si occupa di questo impostando il variabile CHIP su "NodeMCU" o "esp8266".
Lo sketch implementa la libreria WiFiManager per consentire al dispositivo di connettersi a un AP WiFi valido durante la primissima esecuzione. In tal caso, il dispositivo entra in modalità AP, consentendoti di connetterti e scegliere la giusta rete WiFi a cui unirti. Successivamente, la configurazione di rete viene salvata nella EPROM per i cicli successivi.
La variabile REST_MSG contiene il messaggio http da inviare quando il sensore trova un oggetto nella casella di posta. Nel mio caso invia un messaggio a un server REST domotico, ma puoi modificarlo come preferisci: un messaggio BOT di Telegram, un evento WebHook IFTTT, ecc.
Il resto dello schizzo è tutto nella funzione setup(), poiché il ciclo non viene mai raggiunto. Dopo le configurazioni necessarie per le varie librerie, il software imposta l'ora a 00:00:01 e la sveglia a una volta al giorno (o una volta al minuto se è attivato il jumper “test-1M”). Quindi effettua la misura, invia la notifica (se viene trovato qualche oggetto nella casella di posta) e azzera il pin di allarme, spegnendo il dispositivo. Alla fine del ciclo si accende solo l'RTC, contando per 24 ore. Il jumper Test-1M è collegato al pin RX dell'ESP8266, utilizzato come GPIO-3 tramite l'impostazione: setMode(PIN, FUNCTION_3). Per questo motivo, non è possibile utilizzare il monitor seriale durante l'esecuzione di ESP8266: la riga " #define DEBUG " (che consente tutte le stampe seriali nello schizzo) viene utilizzata solo quando è installato un NodeMCU al posto di un ESP8266.
L'ESP8266 gestisce la comunicazione I2C con l'RTC e il sensore tramite i suoi pin GPIO-0 e GPIO-2, inizializzati nella libreria Wire.
Il codice completo può essere scaricato da questo link.
Secondo classificato al concorso di tecnologia assistiva
Consigliato:
ESP Qualcosa: 6 passaggi
ESP Qualcosa: il mio scopo qui è condividere la mia esperienza con ESP8266 attraverso i moduli ESP-01, ESP-12 e NodeMCU. Spiegherò: 1. Come collegare ESP-01 al tuo computer2. Ricaricare il firmware AT3. Usa Arduino IDE per programmare il chip4. Nodo MCU experience5
Come smontare un computer con semplici passaggi e immagini: 13 passaggi (con immagini)
Come smontare un computer con semplici passaggi e immagini: questa è un'istruzione su come smontare un PC. La maggior parte dei componenti di base sono modulari e facilmente smontabili. Tuttavia è importante che tu sia organizzato al riguardo. Questo ti aiuterà a non perdere parti e anche a rendere più facile il rimontaggio
Crea qualcosa di carino con una console di gioco rotta: 6 passaggi
Crea qualcosa di carino con una console di gioco rotta: Tempo fa un mio amico mi ha regalato la sua vecchia PS2 che non funziona più. Sfortunatamente, poiché non sono un ingegnere elettrico, non posso riparare la console, ma posso usare la mia conoscenza di RetroPie per creare un sistema di gioco nuovo di zecca. (Per questo istruibile io
Come modificare il motore CC in qualcosa di straordinario: 5 passaggi
Come modificare il motore CC in qualcosa di straordinario: Ciao amici in questo tutorial ho apportato una modifica straordinaria al mio vecchio motore CC in cui il corpo del motore è rimosso e la rotazione del rotore è chiaramente visibile…Continua a leggere
Trasforma un generico gadget di plastica in qualcosa di un po' più bello: 14 passaggi (con immagini)
Trasforma un gadget di plastica generico in qualcosa di un po' più bello: Motivazione: durante l'estate faccio surf o lavoro a progetti intorno al nostro piccolo giardino/fattoria. L'inverno è alle porte qui a Boston e sono pronto per iniziare ad attaccare la lunga lista di progetti che ho rimandato per i "mesi indoor". Tuttavia, ho