Sommario:

IOToilet: 7 passaggi (con immagini)
IOToilet: 7 passaggi (con immagini)

Video: IOToilet: 7 passaggi (con immagini)

Video: IOToilet: 7 passaggi (con immagini)
Video: 4 SITI PAZZESCHI CHE NON DOVRESTI MAI VISITARE 2024, Novembre
Anonim

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

Strumenti e materiali
Strumenti e materiali
Strumenti e materiali
Strumenti e materiali
Strumenti e materiali
Strumenti e materiali
Strumenti e materiali
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

Smontare l'Unità Originale
Smontare l'Unità Originale
Smontare l'Unità Originale
Smontare l'Unità Originale
Smontare l'Unità Originale
Smontare l'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

Spiegazione dei circuiti
Spiegazione dei circuiti
Spiegazione dei circuiti
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

Preparazione dell'ATTiny85
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

Costruire lo scudo Wemos
Costruire lo scudo Wemos
Costruire lo scudo Wemos
Costruire lo scudo Wemos
Costruire lo scudo Wemos
Costruire lo scudo Wemos
Costruire lo scudo Wemos
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

Mettere tutto insieme
Mettere tutto insieme
Mettere tutto insieme
Mettere tutto insieme
Mettere tutto insieme
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: