Obsah:
- Krok 1: Prototyp
- Krok 2: Odoslanie oznámenia prostredníctvom Blynk
- Krok 3: Meranie spotreby energie a odhad životnosti batérie
- Krok 4: Meranie úrovne batérie
- Krok 5: Urobte to krajšie
- Krok 6: Dokončenie dotykov
Video: Senzor oznámenia práčky: 6 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Tento senzor práčky je umiestnený na mojej práčke a pomocou akcelerometra zisťuje vibrácie z práčky. Keď zistí, že sa prací cyklus skončil, pošle mi na môj telefón upozornenie. Postavil som to, pretože samotný stroj už nepípne, keď je hotový, a bol som unavený zo zabudnutia vybrať bielizeň.
Kód nájdete tu:
Kompletný zoznam dielov:
- WEMOS LOLIN32
- Breadboard polovičnej veľkosti (na prototypovanie)
- ABS projektový box s maticovou doskou 59x88x30mm
- Sparkfun LIS3DH - trojosový akcelerometer, odpočinok
- 1x ZVP3306A P-kanálový MOSFET, 160 mA, 60 V, 3-pólový E-Line
- 1x BC549B TO92 30V NPN tranzistor
- 5 mm LED modrá 68 mcd
- 1x 100k 0,125W odpor CF
- 1x 330k 0,125W odpor CF
- 2x 10k 0,250W odpor CF
- 1x 100 0,250W odpor CF
- 2-kolíkový ženský kábel JST v štýle PH (14 cm)
- 4x Neodymový kotúčový magnet M1219-8 6x4mm
Krok 1: Prototyp
Zariadenie používa mikrokontrolér ESP32. V tomto prípade používam vývojovú dosku Lolin32 od spoločnosti Wemos, ktorú si môžete kúpiť na AliExpress za približne 7 dolárov. Akcelerometer je Sparkfun LIS3DH - je dôležité, aby bol akcelerometer skôr digitálny než analógový, ako uvidíte neskôr. Batériu som vybral zo starej sady reproduktorov bluetooth.
ESP32 sa pripája k akcelerometru cez I2C. Prvá verzia kódu jednoducho zisťovala tri osi zrýchlenia (x, yaz) pre nameranú hodnotu zrýchlenia každých 20 ms. Po umiestnení prototypu dosky na práčku do práčky som vyrobil vyššie uvedený graf, ktorý ukazuje vrcholy zrýchlenia počas rôznych fáz pracieho cyklu. Píky, kde bolo absolútne zrýchlenie vyššie ako 125 mg (125 tisícin normálnej gravitácie), sú znázornené oranžovou farbou. Chceme tieto periódy zistiť a použiť ich na zistenie stavu práčky.
Ako zistiť, či je stroj zapnutý alebo vypnutý?
Jedným z cieľov stavby tohto zariadenia bolo, aby bolo úplne pasívne. Tj. nie je potrebné stlačiť žiadne tlačidlá; jednoducho by to fungovalo. Tiež by mal byť veľmi nízky výkon, pretože v mojom prípade nebolo možné predĺžiť napájacie káble k práčke.
Našťastie akcelerometer LIS3DH má funkciu, pri ktorej môže vyvolať prerušenie, keď akcelerácia prekročí danú prahovú hodnotu (všimnite si to, vyžaduje to použitie vstavaného hornopriepustného filtra akcelerometra-podrobnosti nájdete v kóde na Githube) a ESP32 je možné prebudiť z režimu hlbokého spánku prerušením. Túto kombináciu funkcií môžeme použiť na vytvorenie spánkového režimu s veľmi nízkou spotrebou, ktorý je spustený pohybom.
Pseudokód by vyzeral takto:
# Zariadenie sa prebudilo
notification_threshold = 240 counter = 10 accelerometer.set_threshold (96) # 96mg while counter> 0: if accelerometer.above_threshold (): counter ++ else: counter-- if counter> notification_threshold: # final spin cycle identified sleep (1 second) accelerometer.set_threshold_interrupt () esp32.set_wakeup_trigger_on_interrupt () esp32.deep_sleep ()
Tu môžete vidieť, že pomocou počítadla zisťujeme, koľko sekúnd zrýchlenia sme zistili počas aktuálneho obdobia bdenia. Ak počítadlo klesne na nulu, môžeme zariadenie vrátiť do režimu spánku. Ak počítadlo dosiahne 240 (prahová hodnota upozornení), znamená to, že sme zistili 4 minúty vibrácií. Hodnoty týchto prahov môžeme vyladiť, aby sme zaistili, že zariadenie správne detekuje konečný cyklus odstreďovania. Akonáhle sú zistené dostatočné vibrácie, môžeme jednoducho zaspať ďalších 5 minút (v mojom prípade to trvá, ako dlho pranie skutočne skončí), kým odošlete upozornenie.
Krok 2: Odoslanie oznámenia prostredníctvom Blynk
Blynk je služba navrhnutá tak, aby umožňovala interakciu so zariadeniami IoT pomocou aplikácie vo vašom telefóne. V tomto prípade používam API oznámenia push, ktoré je spustené jednoduchým HTTP POST na Blynk API.
Krok 3: Meranie spotreby energie a odhad životnosti batérie
Čip ESP32 je inzerovaný ako výrobok s veľmi nízkou spotrebou energie v hlbokom spánku (až 5uA). Žiaľ, obvody na mnohých rôznych vývojových doskách poskytujú veľmi odlišné charakteristiky spotreby energie - nie všetky dosky ESP32 pre vývoj sú rovnaké. Napríklad, keď som prvýkrát začal s týmto projektom, použil som Sparkfun ESP32 Thing, ktorý by v režime hlbokého spánku spotreboval asi 1 mA energie (aj po vypnutí LED diódy napájania). Odvtedy používam Lolin32 (nie verziu Lite), na ktorej som v režime hlbokého spánku nameral prúd 144,5uA. Na vykonanie tohto merania som jednoducho zapojil multimeter do série s batériou a zariadením. Toto je určite jednoduchšie vykonať pri prototypovaní s nepájivým poľom. Tiež som meral aktuálne využitie, keď je zariadenie bdelé:
- Hlboký spánok: 144,5uA
- Prebudenie: 45mA
- Wifi povolené: 150mA
Za predpokladu, že stroj používam dvakrát týždenne, odhadol som nasledujúce načasovania času, ktorý senzor strávi v každom stave:
- Hlboký spánok: 604090 sekúnd (~ 1 týždeň)
- Prebudenie: 720 sekúnd (12 minút)
- Wi -Fi povolené: 10 sekúnd
Z týchto údajov môžeme odhadnúť, ako dlho vydrží batéria. Túto šikovnú kalkulačku som použil na získanie priemernej spotreby energie 0,2 mA. Odhadovaná životnosť batérie je 201 dní alebo asi 6 mesiacov! V skutočnosti som zistil, že zariadenie prestane fungovať asi po 2 mesiacoch, takže môžu nastať chyby v meraniach alebo v kapacite batérie.
Krok 4: Meranie úrovne batérie
Myslel som si, že by bolo pekné, keby mi zariadenie dalo vedieť, kedy je batéria takmer vybitá, aby som vedel, kedy ju mám nabiť. Aby sme to mohli zmerať, musíme zmerať napätie batérie. Batéria má rozsah napätia 4,3 V - 2,2 V (minimálne prevádzkové napätie ESP32). Rozsah napätia ADC pinov ESP32 je bohužiaľ 0-3,3V. To znamená, že musíme znížiť napätie batérie z maxima 4,3 na 3,3, aby sme predišli preťaženiu ADC. To je možné dosiahnuť pomocou deliča napätia. Jednoducho zapojte dva odpory s príslušnými hodnotami z batérie na zem a zmerajte napätie v strede.
Jednoduchý obvod deliča napätia bohužiaľ odoberá energiu z batérie, aj keď sa napätie nemeria. Môžete to zmierniť použitím odporov s vysokou hodnotou, ale nevýhodou je, že ADC nemusí byť schopný čerpať dostatok prúdu na presné meranie. Rozhodol som sa použiť odpory s hodnotami 100 kΩ a 330 kΩ, ktoré podľa vzorca deliča tohto napätia klesnú z 4,3 V na 3,3 V. Pri celkovom odpore 430kΩ by sme očakávali odber prúdu 11,6uA (podľa Ohmovho zákona). Vzhľadom na to, že naše súčasné využitie v hlbokom spánku je 144uA, je to primerane významné zvýšenie.
Pretože chceme napätie batérie merať iba raz tesne pred odoslaním oznámenia, má zmysel vypnúť obvod deliča napätia v čase, keď nič nemeriame. Našťastie to môžeme urobiť pomocou niekoľkých tranzistorov pripojených k jednému z pinov GPIO. Použil som obvod uvedený v tejto odpovedi stackexchange. Na vyššie uvedenej fotografii ma môžete vidieť testovať obvod pomocou Arduina a doštičky (všimnite si, že v obvode je chyba, čo je dôvod, prečo meriam vyššie napätie, ako sa očakávalo).
Keď je uvedený obvod na mieste, na získanie percentuálnej hodnoty batérie používam nasledujúci pseudo kód:
percentuálny podiel batérie ():
# povoliť obvod napätia batérie gpio_set_level (BATTERY_EN_PIN, HIGH) # Úroveň batérie je vrátená ako celé číslo od 0 do 4095 adc_value = adc1_get_value (ADC_PIN) # povoliť obvod napätia batérie gpio_set_level (BATTERY_EN_PIN, LOW) float adc_voltage = delič používa odpory 100 k/330 k ohm # 4,3 V -> 3,223, 2,4 -> 1,842 očakávané_max = 4,3*330/(100+330) očakávané_min = 2,4*330/(100+330) úroveň_ batérie = (adc_ napätie -očakávané_min)/(očakávané_max -očakávaná_min) vrátiť úroveň batérie * 100,0
Krok 5: Urobte to krajšie
Aj keď verzia typu breadboard funguje dobre, chcel som ju vložiť do obalu, ktorý bude úhľadnejší a spoľahlivejší (žiadne káble, ktoré sa môžu uvoľniť alebo skratovať). Podarilo sa mi nájsť perfektný projektový box pre moje potreby, ktorý mal správnu veľkosť, vrátane kolíkovej dosky, montážnych držiakov a skrutiek, aby som to všetko spojil. Tiež to bolo lacné za menej ako 2 libry. Po prijatí krabice som už len musel spájkovať súčiastky na kolíkovú dosku.
Asi najnáročnejšou časťou bolo osadenie všetkých komponentov obvodu napätia batérie na malý priestor vedľa Lolin32. Našťastie s trochou jiggery pokery a príslušných spojení vytvorených spájkou obvod do seba úhľadne zapadá. Pretože Wemos Lolin32 nemá kolík na odhalenie kladného pólu batérie, musel som spájkovať drôt z konektora batérie s kolíkovou doskou.
Tiež som pridal LED, ktorá bliká, keď zariadenie zistí pohyb.
Krok 6: Dokončenie dotykov
Na základňu škatule som super prilepil 4 neodymové magnety 6 mm x 4 mm, čo jej umožňuje bezpečné prilepenie na kovový vrch práčky.
Krabica projektu je už dodávaná s malým otvorom na zaistenie prístupu pre káble. Našťastie sa mi podarilo umiestniť dosku ESP32 blízko tohto otvoru, aby som umožnil prístup ku konektoru micro USB. Po zväčšení otvoru pomocou remeselného noža kábel perfektne zapadol, aby umožnil ľahké nabíjanie batérie.
Ak vás zaujímajú niektoré podrobnosti o tomto projekte, neváhajte zanechať komentár. Ak chcete kód vidieť, pozrite sa na neho na Github:
github.com/alexspurling/washingmachine
Odporúča:
Oznámenia práčky: 3 kroky
Upozornenia na práčky: Mám „hlúpu“lacnú práčku za približne 150 libier. Najväčšou prekážkou bola veľkosť, takže ma neposudzujte príliš prísne. Hlúpe veci v mojej domácnosti som ja. Pranie bielej bielizne s červenými prepojkami je jedným z mojich hriechov. Ten druhý si nepamätá
Automatický systém oznámenia kávy: 7 krokov (s obrázkami)
Automatický systém oznámenia kávy: V tomto projekte robím kancelársky kávovar inteligentným, a to tak, že vybudujem systém varovania pred kávou, ktorý odosiela upozornenie Slack, keď niekto uvarí čerstvú kávu. Kód je možné zmeniť na odosielanie e -mailov alebo textových správ. Tento projekt je postavený na R
Ako ľahké bolo opraviť elektroniku práčky: 5 krokov (s obrázkami)
Ako ľahké bolo opraviť elektroniku práčky: Prečo? Pretože som výrobca, rád si opravujem vlastné veci, čo je niekedy problém, pretože zostanú nefunkčné, kým si nájdem čas na vymyslenie stratégie zneškodnenia. problém. Oprava niečoho je zvyčajne jednoduchá a zábavná, ale nájdenie
Upozornenie práčky so sušičkou Arduino - upozornenie push na telefón s Blynkom: 5 krokov (s obrázkami)
Upozornenie práčky so sušičkou Arduino - push notifikácia na telefón s Blynkom: Naša práčka je v garáži a nepočujeme pípnutia, ktoré naznačujú, že pranie je dokončené. Chcel som nájsť spôsob, ako dostávať oznámenia, nech sme kdekoľvek v dome, keď sa cyklus skončí. Pohrával som si s Arduino, ESP8266 WiFi
Oznámenia práčky pomocou MESH: 4 kroky (s obrázkami)
Oznámenia práčky pomocou siete MESH: Ojoj! Zabudol som na oblečenie v práčke … Vždy si zabúdate vyzdvihnúť svoje oblečenie po vypraní? Tento recept aktualizuje vašu práčku, aby ste mohli dostávať upozornenia prostredníctvom služby Gmail alebo IFTTT, akonáhle budú vaše šaty pripravené na obrázok