Cuprins:
- Pasul 1: Instrumente și materiale
- Pasul 2: Dezmembrarea unității originale
- Pasul 3: Circuitul explicat
- Pasul 4: Pregătirea ATTiny85
- Pasul 5: Construirea Scutului Wemos
- Pasul 6: Pregătirea Wemos
- Pasul 7: Puneți totul împreună
Video: IOToilet: 7 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
IOToilet este primul suport inteligent de hârtie igienică, care ține evidența utilizării zilnice a hârtiei igienice și permite acumularea de statistici care arată aceste valori. Și de ce ar trebui să îmi pese de utilizarea zilnică a hârtiei igienice pe care ați putea-o întreba? Ei bine, după cum se dovedește, sănătatea noastră abdominală, în special ciclul de digestie, are mult de-a face atât cu sănătatea noastră fizică, cât și cu cea mentală. De exemplu, iată o frumoasă discuție TED (una dintre destul de puține, apropo) care detaliază acest subiect:
Inițial am fost însărcinat să construiesc 10 unități ale acestui dispozitiv pentru o agenție de branding, al cărei clip îl puteți vedea mai sus (a doua locație), pentru o campanie de marketing menită pentru o companie mare. La început, am respins ideea ca venind dintr-o altă minte prea creativă, încercând cu disperare să câștige un cont de client, dar treptat a crescut asupra mea, până când am realizat valoarea informațiilor colectate prin intermediul acestui dispozitiv.
Construcția s-a bazat pe o piesă hardware existentă pe care clientul meu a primit-o de la EBay, un dispozitiv de înregistrare a vocii încapsulat într-un suport pentru hârtie igienică. Avea factorul de formă corect și toate perifericele necesare deja încorporate, cum ar fi un difuzor, un senzor de mișcare pentru a declanșa dispozitivul, arcuri pentru a ține hârtia igienică în sine, compartimentul bateriei și un întrerupător on-off, așa că am ales cu plăcere folosind acest lucru gata făcut, mai degrabă decât modelându-l și tipărindu-l pe al meu.
Pasul 1: Instrumente și materiale
Materiale utilizate:
Suport hârtie igienică
Wemos D1 Mini
Cip ATTiny85, ambalaj DIP
2 x 2n2222 tranzistor
Rezistor de 220 Ohm
Rezistor 2 * 1KOhm
Accelerometru MPU6050
Opțional, în cazul în care nu folosesc PCB-ul meu:
Scut de prototipare Wemos
sârmă, lipit etc.
Instrumente utilizate:
Dremel cu un disc de tăiere
ATTiny dev board (pentru încărcarea comodă a firmware-ului)
Programator USB Tiny ISP
șurubelniță triunghiulară, am folosit acest kit:
Pasul 2: Dezmembrarea unității originale
După obținerea fusului original de hârtie igienică, i-am deschis carcasa folosind o șurubelniță triunghiulară și am scos PCB-ul original, deconectând difuzorul și lăsând cât mai mult fir posibil conectat la acesta.
Am lipit apoi LED-ul și senzorul de înclinare de pe PCB-ul original, pentru a fi încorporat ulterior în noul circuit. Aveți grijă să nu supraîncălziți comutatorul de înclinare, deoarece s-ar putea deteriora. Al meu era gri, dar din moment ce nu l-am fotografiat bine când l-am scos de pe dispozitivul original, a trebuit să folosesc o fotografie de pe net (vezi mai sus), unde era verde. Doar un detaliu minor.
După deschiderea carcasei și scoaterea dispozitivelor electronice, am folosit și un Dremel pentru a îndepărta excesul de plastic care a fost folosit pentru a menține PCB-ul original, aceste rafturi mici din plastic și unul din cele 4 țevi cu șurub. Puteți amâna acest lucru la etapa de asamblare, dacă doriți, dar în orice caz va fi necesară o tăiere din plastic.
Pasul 3: Circuitul explicat
Deci, iată un pic despre logica din spatele circuitului:
Pentru ca bateriile să reziste mult timp, a trebuit să pun atât accelerometrul MPU6050, cât și procesorul ESP8266 în Wemos D1 Mini pentru a dormi între activări. Primul a fost realizat cu ușurință folosind un tranzistor care a pornit și oprit MPU6050.
Notă: inițial am crezut că îl pot programa pentru a trimite un semnal de întrerupere care va trezi procesorul principal. Din păcate, nu am putut găsi o modalitate de a face acest lucru, configurarea registrelor corespunzătoare ale MPU6050 a fost o sarcină dificilă pe care încă nu știu deloc dacă este posibil …
A doua mea opțiune a fost utilizarea comutatorului de înclinare furnizat împreună cu unitatea originală pentru a trezi ESP-ul. L-am legat mai întâi direct de pinul Wemos RESET așa cum este descris în fotografiile de mai sus, folosind un tranzistor pentru a activa / dezactiva mecanismul. Când baza tranzistorului era ridicată, GND ar putea trece prin comutatorul de înclinare și ar putea să se conecteze temporar la pinul RESET, provocând resetarea MCU (aparent, acesta este singurul mod de a trezi un ESP din somn profund). Am conectat apoi D0 la baza tranzistorului, urmând premisa că acest picior este ÎNALT, atâta timp cât MCU doarme, și imediat ce se trezește, D0 revine la LOW, dezactivând mecanismul de resetare. La urma urmei, nu am avut nevoie de o resetare recurentă, doar pentru prima dată când suportul pentru hârtie igienică a început să se miște.
Totuși, ceea ce am descoperit a fost că pinul D0 durează destul de mult după resetarea MCU pentru a reveni la LOW, aproximativ 200ms. Acest lucru a însemnat că, dacă învârteam suportul pentru hârtie igienică suficient de repede în timp ce MCU dormea, se obțin RESET-uri multiple, în loc să numere rundele, așa cum ar trebui.
Așadar, am încercat să rezolv această nouă situație cu câteva componente discrete (condensatori, tranzistoare etc.), dar am reușit să obțin doar o soluție parțială a problemei.
Am ajuns să adaug un alt MCU, un ATTiny85, care să fie trezit din somn prin comutatorul de înclinare, apoi să trezesc ESP8266 și să așteptăm ceva timp înainte de a ne întoarce la somn. Știu că aceasta nu este probabil cea mai economică soluție la problemă, dar am avut un termen limită …
Puteți vedea soluția detaliată în schema pe care am inclus-o. Vă rugăm să rețineți că rezistențele de 10K au fost înlocuite cu 1K, deoarece cele de 10k erau prea mari pentru ca tranzistoarele să se deschidă complet.
Pasul 4: Pregătirea ATTiny85
Dacă nu ați programat niciodată un ATTiny85, nu vă temeți! Folosind îndrăgitul IDE Arduino, puteți ajunge până la capăt. Începeți cu aceste instrucțiuni despre cum să configurați Arduino IDE:
github.com/SpenceKonde/ATTinyCore/blob/mas…
Apoi, instalați driverele pentru USBTinyISP de aici:
learn.adafruit.com/usbtinyisp/drivers
Acum, încărcați codul de test atașat: WakeOnExternalInterruptTest.ino
și conectați-vă (a se vedea diagrama Pinout ATTiny85):
1. Tastați butonul între pinul 3 și masă
2. Un led și un rezistor de 220 Ohm în serie, între pinul 2 și masă
Următorul, Selectați USBTinyISP ca programator (în Instrumente -> Programator) și încărcați schița de test pe tablă.
LED-ul ar trebui să clipească de 5 ori, apoi cipul ar trebui să se culce. Apăsarea butonului îl va face să se trezească și să repete acea secvență.
Ai funcționat? Grozav! Încărcați schița finală „Awakener” în ATTiny, pentru a fi utilizată în circuitul final.
Pasul 5: Construirea Scutului Wemos
Deci, pentru a construi scutul aveți 3 opțiuni din care puteți alege:
1. Folosiți un ecran protector standard pentru Wemos și lipiți circuitele pe acesta.
2. Fabricați un PCB, pe baza fișierelor EAGLE atașate.
3. Cereți-mi un PCB pe care să vi-l trimit prin poștă cu melci (am câțiva în jur, costul este aproape nimic).
În orice caz, vă recomand să construiți circuitul pe un panou înainte de a vă angaja pe PCB!
Dacă utilizați opțiunile PCB, asigurați-vă că conectați firul negru ca în fotografii, fie pe partea frontală, fie pe cea din spate a plăcii (acesta din urmă a funcționat cel mai bine pentru mine). Acest fir conectează GND de la Wemos la ATTiny85 și fără el, trezirea nu va avea loc.
Uitați-vă bine la imagini și citiți adnotările pe care le-am adăugat, ar trebui să fie suficient.
Pasul 6: Pregătirea Wemos
Dacă nu ați folosit niciodată Arduino IDE pentru a programa o placă Wemos, începând cu instalarea managerului plăcii și selectând placa în meniul Instrumente -> Placă, așa cum este descris aici:
github.com/esp8266/Arduino
Începeți prin a încărca schița clipită pe tablă, asigurându-vă că codul este încărcat corect.
Pasul 7: Puneți totul împreună
Instalați scutul pe Wemos. Puteți să-l lipiți, dar vă recomand să utilizați anteturi de sex feminin lipite la Wemos, care vor permite conexiunea temporară între Wemos și scut, în caz de probleme. Rețineți că antetul feminin va trebui să coboare în etapa finală de asamblare pentru ca unitatea să se potrivească în carcasa de plastic. De asemenea, pentru a face lucrurile puțin mai complicate, există mari șanse ca atunci când ecranul este conectat la Wemos, încărcarea codului să fie dezactivată. Am întâlnit acest fenomen într-un mod neconcordant și nu am avut timp să-l cercetez.
Cuvânt de sfat: planificați din timp.
Acum, testează!
Odată instalat, începeți încărcând schița de test BlinkAccelerometer pe Wemos și asigurați-vă că pornește și stinge LED-ul MPU6050. Dacă nu, verificați cablajul tranzistorului care este responsabil pentru alimentarea MPU6050. Baza sa trebuie să fie conectată la pinul D5 al Wemos, colectorul să fie conectat la GND al accelerometrului și Emițătorul să fie conectat la GND comun.
Apoi, încărcați schița TurnCountTest1 pe placa Wemos și deschideți Serial Monitor. Ar trebui să vedeți date provenind de la accelerometru prezentate pe monitor. Dacă nu funcționează, verificați cablarea ceasului și a datelor: CLK ar trebui să fie conectat la D1 și DATA ar trebui să fie conectat la D2.
Acum, lipiți comutatorul de înclinare la orificiile desemnate din placă (consultați adnotările), asigurându-vă că este perpendicular pe axa de rotație, astfel încât rotirea axului să se închidă și să deschidă conexiunea dintre cele două cabluri ale sale.
Apoi, conectați intrarea bateriei 3V la Wemos VCC și terminalul său minus la Wemos GND. Asigurați-vă că pornirea comutatorului pornește unitatea. În cele din urmă, conectați difuzorul la GND și pinul D4 al Wemos.
Încărcați codul final în Wemos - o schiță numită SmartWipe. Deschideți un monitor serial și asigurați-vă că unitatea se oprește după 3 minute și se trezește mișcând comutatorul de înclinare (mesajele corespunzătoare ar trebui să apară pe monitor).
Dacă doriți să reduceți timpul în care Wemos este treaz (în principal în scopuri de testare), reduceți valoarea WIFI_CONFIGURATION_IDLE_TIMEOUT definită în params.h și încărcați schița pe tablă. Asigurați-vă că, după ce Wemos intră în somn profund, mișcarea comutatorului de înclinare face ca ATTiny să se trezească (semnalizat de LED), care, la rândul său, trezește Wemos.
Schimbați valoarea parametrului înapoi la 180000L (3 minute, în miliseci) și asigurați-vă că Wemos declanșează un Hotspot numit IOToilet_XXXXXXXXX unde XXXXXXX va fi recuperat de pe adresa MAC a cipului. Conectați-vă la acest Wifi folosind un telefon inteligent și ar trebui să fiți direcționat către un formular de înregistrare (un mecanism numit Portal captiv). Completați detaliile, în special este important SSID-ul și parola WiFi-ului dvs. local și trimiteți formularul. Unitatea ar trebui apoi să încerce să se conecteze la rețea folosind acreditările furnizate și, dacă are succes, să redea 3 sunete ascendente pe difuzor. Dacă a existat o problemă la conectarea la Wifi, vor fi redate 3 sunete descendente. După aceea, Wemos ar trebui să meargă în somn profund, până când vor fi treziți de mișcare.
În cele din urmă: test de sistem cap la cap.
Rulați suportul pentru hârtie igienică de-a lungul axei sale de rotație câteva rotiri, apoi așezați-l pe o suprafață constantă (pentru a semnaliza folosirea rolei s-a încheiat și a declanșa încărcarea datelor). Așteptați aproximativ 10 secunde pentru ca numărul rulărilor să fie trimis în cloud, apoi accesați https://smartwipe-iot.appspot.com/ și faceți clic pe Interogare. Ar trebui să vedeți în cloud detaliile de înregistrare și numărul de rulări recente de utilizare! Asigurați-vă că vă scrieți uuidul, care este id-ul dvs. unic din sistem, extras din adresa MAC a Wemos.
Dacă doriți să extrageți doar statisticile dvs. în format JSON, utilizați o adresă URL similară cu aceasta:
smartwipe-iot.appspot.com/api?action=query&uuid=1234567890
doar înlocuiește uuid cu al tău.
Am inclus toate sursele pentru aplicația web, care este găzduită pe motorul Google App, astfel încât utilizatorii care doresc să câștige mai multă confidențialitate a datelor, să le poată implementa pe propriul utilizator Google, să adauge autentificare etc.
Când totul funcționează, introduceți componentele electronice în carcasa din plastic, tăiați plasticul cu un dremel, după cum este necesar. Întreaga piesă trebuie să se potrivească frumos în carcasă.
Probleme? Scrie-mi!
UNITED WE POOP!
Recomandat:
Cum: Instalarea Raspberry PI 4 Headless (VNC) cu Rpi-imager și imagini: 7 pași (cu imagini)
Cum: Instalarea Raspberry PI 4 Headless (VNC) cu Rpi-imager și Pictures: Plănuiesc să folosesc acest Rapsberry PI într-o grămadă de proiecte distractive din blogul meu. Simțiți-vă liber să o verificați. Am vrut să mă întorc să folosesc Raspberry PI, dar nu aveam tastatură sau mouse în noua mea locație. A trecut ceva timp de când am configurat un Raspberry
Cameră cu infrarosu cu imagini termice DIY: 3 pași (cu imagini)
Cameră cu infrarosu cu imagini termice DIY: Bună ziua! Caut mereu proiecte noi pentru lecțiile mele de fizică. Acum doi ani am dat peste un raport despre senzorul termic MLX90614 de la Melexis. Cel mai bun cu doar 5 ° FOV (câmp vizual) ar fi potrivit pentru o cameră termică făcută de sine. Pentru a citi
Lansați prezentarea de imagini de vacanță cu o atingere de magie!: 9 pași (cu imagini)
Lansează-ți prezentarea cu imagini de vacanță cu un strop de magie! pentru a se potrivi cu steagul și tema țării pe care o vizitez (în acest caz, Sicilia). T
Cum să dezasamblați un computer cu pași și imagini ușoare: 13 pași (cu imagini)
Cum să dezasamblați un computer cu pași și imagini ușoare: Aceasta este o instrucțiune despre cum să dezasamblați un computer. Majoritatea componentelor de bază sunt modulare și ușor de îndepărtat. Cu toate acestea, este important să fiți organizat în acest sens. Acest lucru vă va ajuta să nu vă pierdeți piese și, de asemenea, să faceți reasamblarea
Vizualizator digital de imagini 3D - „The DigiStereopticon”: 6 pași (cu imagini)
Vizualizator digital de imagini 3D - „The DigiStereopticon”: fotografia stereoscopică a căzut în lipsă. Acest lucru se datorează probabil faptului că oamenilor nu le place să poarte ochelari speciali pentru a vedea instantanee de familie. Iată un mic proiect distractiv pe care îl poți face în mai puțin de o zi pentru a-ți face imaginea 3D