Sommario:
- Passaggio 1: strumenti e materiali
- Passaggio 2: smontaggio dell'unità originale
- Passaggio 3: spiegazione dei circuiti
- Passaggio 4: preparazione dell'ATTiny85
- Passaggio 5: costruire lo scudo Wemos
- Passaggio 6: preparare i Wemos
- Passaggio 7: mettere tutto insieme
Video: IOToilet: 7 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
IOToilet è il primo porta carta igienica intelligente, che tiene traccia del nostro utilizzo quotidiano di carta igienica e consente di accumulare statistiche che mostrano queste metriche. E perché dovrei preoccuparmi del mio uso quotidiano di carta igienica, potresti chiedere? Bene, a quanto pare, la nostra salute addominale, in particolare il ciclo di digestione, ha molto a che fare sia con la nostra salute fisica che con quella mentale. Ad esempio, ecco un bel TED talk (uno dei tanti, tra l'altro) che approfondisce questo argomento:
Inizialmente sono stato incaricato di costruire 10 unità di questo dispositivo per un'agenzia di branding, la cui clip puoi vedere sopra (2a posizione), per una campagna di marketing mirata per una grande azienda. All'inizio, ho respinto l'idea come se provenisse da un'altra mente iper-creativa che cercava disperatamente di conquistare un account cliente, ma gradualmente è cresciuta in me, fino a quando ho realizzato il valore delle informazioni raccolte attraverso questo dispositivo.
La build era basata su un componente hardware esistente che il mio cliente ha ricevuto da eBay, un dispositivo di registrazione vocale incapsulato in un porta carta igienica. Aveva il fattore di forma giusto e tutte le periferiche necessarie già integrate, come un altoparlante, un sensore di movimento per attivare il dispositivo, molle per contenere la carta igienica stessa, vano batteria e un interruttore on-off, quindi ho optato volentieri usando questo ready made piuttosto che modellare e stampare il mio.
Passaggio 1: strumenti e materiali
Materiali usati:
Porta carta igienica
Wemos D1 Mini
Chip ATTiny85, confezione DIP
2 x 2n2222 transistor
Resistenza da 220 Ohm
Resistore 2 * 1KOhm
Accelerometro MPU6050
Opzionale, nel caso in cui non si utilizzi il mio PCB:
Scudo di prototipazione Wemos
filo, saldatura, ecc.
Strumenti utilizzati:
Dremel con disco da taglio
ATTiny dev board (per caricare comodamente il firmware)
Programmatore USB Tiny ISP
cacciavite triangolare, ho usato questo kit:
Passaggio 2: smontaggio dell'unità originale
Dopo aver ottenuto il porta carta igienica originale, ho aperto la sua custodia usando un cacciavite triangolare e ho rimosso il PCB originale, scollegando l'altoparlante e lasciando più filo possibile collegato ad esso.
Ho quindi saldato il LED e il sensore di inclinazione dal PCB originale, per essere successivamente incorporato nel nuovo circuito. Prestare attenzione a non surriscaldare l'interruttore di inclinazione, poiché potrebbe danneggiarsi. Il mio era grigio, ma poiché non l'ho scattato bene durante la rimozione dal dispositivo originale, ho dovuto usare una foto dalla rete (vedi sopra), dove era verde. Solo un piccolo dettaglio.
Dopo aver aperto la custodia e rimosso l'elettronica, ho anche usato un Dremel per rimuovere la plastica in eccesso utilizzata per tenere in posizione il PCB originale, questi piccoli ripiani in plastica e uno dei 4 tubi a vite. Se lo desideri, puoi rimandare questo alla fase di montaggio, ma in ogni caso sarà necessaria una guarnizione di plastica.
Passaggio 3: spiegazione dei circuiti
Quindi, ecco un po' la logica dietro il circuito:
Affinché le batterie durino a lungo, ho dovuto mettere sia l'accelerometro MPU6050 che il processore ESP8266 nel Wemos D1 Mini per dormire tra le attivazioni. Il primo è stato fatto facilmente utilizzando un transistor che ha acceso e spento l'MPU6050.
Nota: inizialmente pensavo di poterlo programmare per inviare un segnale di interruzione che riattivasse il processore principale. Ahimè, non sono riuscito a trovare un modo per farlo accadere, configurare i registri corretti dell'MPU6050 è stato un compito complicato che ancora non so se possibile…
La mia seconda opzione era usare l'interruttore di inclinazione fornito con l'unità originale per riattivare l'ESP. L'ho prima collegato direttamente al pin RESET di Wemos come descritto nelle foto sopra, utilizzando un transistor per attivare/disattivare il meccanismo. Quando la base del transistor era alta, il GND poteva passare attraverso l'interruttore di inclinazione e farlo connettere temporaneamente al pin RESET, causando il ripristino dell'MCU (questo è l'unico modo per svegliare un ESP dal sonno profondo, a quanto pare). Ho quindi collegato D0 alla base del transistor, seguendo la premessa che questa gamba è ALTA finché l'MCU sta dormendo, e non appena si sveglia, D0 torna a BASSA, disabilitando il meccanismo di ripristino. Dopotutto, non ho avuto bisogno di un reset ricorrente, solo per la prima volta quando il porta carta igienica ha iniziato a muoversi.
Tuttavia, quello che ho scoperto è che il pin D0 impiega molto tempo dopo il ripristino dell'MCU per tornare a LOW, circa 200 ms. Ciò significava che se avessi fatto girare il porta carta igienica abbastanza velocemente mentre l'MCU stava dormendo, si sarebbero verificati più RESET, invece di contare i round, come dovrebbe.
Quindi, ho provato a risolvere questa nuova situazione con alcuni componenti discreti (condensatori, transistor ecc.) ma sono riuscito a ottenere solo una soluzione parziale del problema.
Ho finito per aggiungere un altro MCU, un ATTiny85, che sarebbe stato svegliato dal sonno dall'interruttore di inclinazione, quindi, avrebbe riattivato l'ESP8266 e aspettato un po' di tempo prima di tornare a dormire. So che probabilmente non è la soluzione più economica al problema, ma avevo una scadenza…
Puoi vedere la soluzione dettagliata nello schema che ho incluso. Si prega di notare che i resistori da 10K sono stati sostituiti con 1K poiché quelli da 10k erano troppo alti per consentire ai transistor di aprirsi completamente.
Passaggio 4: preparazione dell'ATTiny85
Se non hai mai programmato un ATTiny85, non temere! L'utilizzo dell'amato IDE Arduino può portarti fino in fondo. Inizia con queste istruzioni su come configurare l'IDE Arduino:
github.com/SpenceKonde/ATTinyCore/blob/mas…
Quindi, installa i driver per USBTinyISP da qui:
learn.adafruit.com/usbtinyisp/drivers
Ora carica il codice di test allegato: WakeOnExternalInterruptTest.ino
e collegare (vedi schema Pinout ATTiny85):
1. Pulsante tattile tra il pin 3 e massa
2. Un led e una resistenza da 220 Ohm in serie, tra pin 2 e massa
Prossimo, Seleziona USBTinyISP come programmatore (sotto Strumenti -> Programmatore) e carica lo schizzo di prova sulla scheda.
Il LED dovrebbe lampeggiare per 5 volte, quindi il chip dovrebbe andare a dormire. Premendo il pulsante si sveglierà e si ripeterà quella sequenza.
Ha funzionato? Grande! Carica lo schizzo finale "Awakener" su ATTiny, da utilizzare sul circuito finale.
Passaggio 5: costruire lo scudo Wemos
Quindi, per costruire lo scudo hai 3 opzioni tra cui puoi scegliere:
1. Utilizzare un protoshield standard per Wemos e saldare i circuiti su di esso.
2. Realizzare un PCB, sulla base dei file EAGLE allegati.
3. Chiedimi un PCB che posso inviarti per posta ordinaria (ne ho alcuni in giro, il costo è quasi nulla).
In ogni caso, consiglio di costruire il circuito su una breadboard prima di impegnarsi nel PCB!
Se si utilizzano le opzioni PCB, assicurarsi di collegare il filo nero come nelle foto, sul lato anteriore o posteriore della scheda (quest'ultimo ha funzionato meglio per me). Questo filo collega il GND dal Wemos all'ATTiny85 e senza di esso, il risveglio non avrà luogo.
Basta dare una buona occhiata alle immagini e leggere le annotazioni che ho aggiunto, questo dovrebbe bastare.
Passaggio 6: preparare i Wemos
Se non hai mai utilizzato l'IDE Arduino per programmare una scheda Wemos, iniziando installando il gestore della scheda e selezionando la scheda nel menu Strumenti -> Scheda, come descritto qui:
github.com/esp8266/Arduino
Inizia caricando lo sketch dei blink sulla tua scheda, assicurandoti che il codice venga caricato correttamente.
Passaggio 7: mettere tutto insieme
Installa lo scudo sul Wemos. Puoi saldarlo, ma ti consiglio di utilizzare intestazioni femmina saldate al Wemos che consentiranno il collegamento temporaneo tra il Wemos e lo scudo, in caso di problemi. Tieni solo presente che il collettore femmina dovrà scendere nella fase finale dell'assemblaggio affinché l'unità si adatti al guscio di plastica. Inoltre, per rendere le cose un po' più complicate, c'è una buona possibilità che quando lo shield è connesso al Wemos, il caricamento del codice venga disabilitato. Ho incontrato quel fenomeno in modo non coerente e non ho avuto tempo per ricercarlo.
Un consiglio: pianificare in anticipo.
Ora, test!
Una volta installato, inizia caricando lo schizzo di prova BlinkAccelerometer su Wemos e assicurati che accenda e spenga il LED MPU6050. In caso contrario, controllare il cablaggio del transistor responsabile dell'alimentazione dell'MPU6050. La sua base va collegata al pin D5 del Wemos, il collettore va connesso al GND dell'accelerometro e l'Emettitore va connesso al comune GND.
Quindi, carica lo schizzo TurnCountTest1 sulla scheda Wemos e apri Serial Monitor. Dovresti vedere i dati provenienti dall'accelerometro presentato sul monitor. Se non funziona, controllare il cablaggio dell'orologio e dei dati: CLK deve essere collegato a D1 e DATA deve essere collegato a D2.
Ora, saldare l'interruttore di inclinazione ai fori designati sulla scheda (vedi annotazioni), assicurandosi che sia perpendicolare all'asse di rotazione in modo che la rotazione del mandrino si chiuda e apra la connessione tra i suoi due conduttori.
Quindi, collega l'ingresso della batteria 3V al Wemos VCC e il suo terminale negativo al Wemos GND. Assicurarsi che l'accensione dell'interruttore accenda l'unità. Infine, collega l'altoparlante a GND e al pin D4 del Wemos.
Carica il codice finale su Wemos, uno schizzo chiamato SmartWipe. Aprire un monitor seriale e assicurarsi che l'unità vada in sospensione dopo 3 minuti e si riattivi spostando l'interruttore di inclinazione (i messaggi corrispondenti dovrebbero apparire sul monitor).
Se si desidera ridurre il tempo di attivazione del Wemos (principalmente a scopo di test), diminuire il valore di WIFI_CONFIGURATION_IDLE_TIMEOUT definito in params.he caricare lo sketch sulla scheda. Assicurati che dopo che il Wemos va in modalità di sospensione profonda, spostando l'interruttore di inclinazione si attiva l'ATTiny (segnalato dal LED), che, a sua volta, riattiva il Wemos.
Riportare il valore del parametro a 180000L (3 minuti, in millisecondi) e assicurarsi che Wemos attivi un Hotspot chiamato IOToilet_XXXXXXXX dove XXXXXXX verrà recuperato dall'indirizzo MAC del chip. Collegati a questo Wifi utilizzando uno smartphone e dovresti essere indirizzato a un modulo di registrazione (un meccanismo chiamato Captive Portal). Inserisci i dettagli, particolarmente importanti sono l'SSID e la password del tuo wifi locale e invia il modulo. L'unità dovrebbe quindi provare a connettersi alla rete utilizzando le credenziali fornite e, in caso di successo, riprodurre 3 suoni ascendenti sull'altoparlante. Se si è verificato un problema durante la connessione al Wi-Fi, verranno riprodotti 3 suoni discendenti. Dopodiché, i Wemo dovrebbero andare in un sonno profondo, fino a quando non vengono svegliati dal movimento.
Infine: test di sistema end-to-end.
Arrotolare il portarotolo lungo il suo asse di rotazione per alcuni giri, quindi posizionarlo su una superficie stabile (per segnalare che il rotolo è terminato e attivare il caricamento dei dati). Attendi circa 10 secondi per l'invio del conteggio dei rulli al cloud, quindi vai su https://smartwipe-iot.appspot.com/ e fai clic su Query. Dovresti vedere i dettagli della tua registrazione e il conteggio del rotolo di utilizzo recente nel cloud! Assicurati di annotare il tuo uuid, che è il tuo ID univoco nel sistema, estratto dall'indirizzo MAC del tuo Wemos.
Se desideri estrarre solo le tue statistiche in formato JSON, usa un URL simile a questo:
smartwipe-iot.appspot.com/api?action=query&uuid=1234567890
basta sostituire uuid con il tuo.
Ho incluso tutte le fonti per l'app Web, che è ospitata sul motore dell'app Google in modo che gli utenti che desiderano ottenere una maggiore privacy sui dati, possano implementarla sul proprio utente Google, aggiungere l'autenticazione, ecc.
Quando tutto funziona, inserisci l'elettronica nel guscio di plastica, tagliando la plastica con un dremel secondo necessità. L'intero pezzo dovrebbe adattarsi perfettamente all'alloggiamento.
Guaio? Scrivimi!
UNITI FACCIAMO Cacca!
Consigliato:
Come installare Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: 7 passaggi (con immagini)
Howto: installazione di Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: ho intenzione di utilizzare questo Rapsberry PI in una serie di progetti divertenti nel mio blog. Sentiti libero di dare un'occhiata. Volevo tornare a usare il mio Raspberry PI ma non avevo una tastiera o un mouse nella mia nuova posizione. Era un po' che non installavo un Raspberry
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: 6 passaggi (con immagini)
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: Ehi, come va, ragazzi! Akarsh qui da CETech. In questo progetto, daremo un'occhiata all'HuskyLens di DFRobot. È un modulo fotocamera basato sull'intelligenza artificiale in grado di eseguire diverse operazioni di intelligenza artificiale come Face Recognitio
Riconoscimento delle immagini con schede K210 e Arduino IDE/Micropython: 6 passaggi (con immagini)
Riconoscimento immagine con schede K210 e Arduino IDE/Micropython: ho già scritto un articolo su come eseguire demo OpenMV su Sipeed Maix Bit e ho anche realizzato un video di demo di rilevamento oggetti con questa scheda. Una delle tante domande che le persone hanno posto è: come posso riconoscere un oggetto che la rete neurale non è tr
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino - Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero - Elicottero Rc - Aereo RC con Arduino: 5 passaggi (con immagini)
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino | Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero | Elicottero Rc | Aereo radiocomandato con Arduino: per far funzionare un'auto radiocomandata | Quadricottero | Drone | Aereo RC | Barca RC, abbiamo sempre bisogno di un ricevitore e trasmettitore, supponiamo che per RC QUADCOPTER abbiamo bisogno di un trasmettitore e ricevitore a 6 canali e quel tipo di TX e RX è troppo costoso, quindi ne faremo uno sul nostro
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