Obsah:
- Zásoby
- Krok 1: Vlastnosti
- Krok 2: DPS
- Krok 3: Zostavenie
- Krok 4: Prehľad programovania
- Krok 5: Vstupy
- Krok 6: Výstupy
- Krok 7: Protokolovanie
- Krok 8: Bzučiak
- Krok 9: Externé integrácie IoT
- Krok 10: Použitie
- Krok 11: Plány do budúcnosti
Video: ESP32 Smart Home Hub: 11 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Vytvorenie systému, ktorý zvládne veľké množstvo údajov zo senzorov, má viac výstupov a pripojí sa na internet alebo na miestnu sieť, trvá dlho a veľa úsilia. Ľudia, ktorí chcú vytvoriť vlastnú inteligentnú domácu sieť, až príliš často zápasia s tým, aby dokázali nájsť a zostaviť vlastné komponenty do väčšieho systému. Preto som chcel vytvoriť modulárnu platformu bohatú na funkcie, ktorá by uľahčila konštrukciu senzorov a výstupov pripojených k internetu vecí.
Ďakujeme DFRobot a PCBGOGO.com za sponzorovanie tohto projektu!
Podrobnejšie informácie nájdete na repo Github:
Zásoby
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
Snímač DHT22
www.dfrobot.com/product-1102.html
-
Senzor svetla a gest APDS9960
www.dfrobot.com/product-1361.html
-
Modul LCD I2C 20x4
www.dfrobot.com/product-590.html
-
Analógový RGB LED pásik
www.dfrobot.com/product-1829.html
- Ovládače krokových motorov DRV8825
- Čítačka kariet SD
- Krokové motory NEMA17
Krok 1: Vlastnosti
Hlavnou črtou tejto dosky je vývojová doska ESP32 FireBeetle, ktorá zvláda všetku komunikáciu, údaje zo senzorov a výstupy. Existujú dva meniče krokových motorov, ktoré riadia dva bipolárne krokové motory.
Zbernica I2C je tiež prerušená pre použitie s komponentmi, ako je APDS9960 alebo LCD. Na čítanie teploty sú zlomené kolíky na pripojenie k senzoru DHT22 a fotorezistor na čítanie úrovní okolitého svetla.
Na doske je podporovaný analógový svetelný pás, ktorý má tri MOSFETy na ovládanie LED svetiel.
Krok 2: DPS
Proces návrhu DPS som začal najskôr vytvorením schémy v Eagle. Pretože sa mi nepodarilo nájsť knižnicu ESP32 FireBeetle, namiesto toho som použil dve kolíkové 1x18 pinové hlavičky. Potom som vytvoril obvod správy napájania, ktorý mohol prijímať 12 V cez DC sudový konektor a previesť ho na 5 V na napájanie senzorov a ESP32.
Po dokončení schémy som pristúpil k návrhu samotnej DPS.
Vedel som, že zástrčka hlavne DC musí byť v blízkosti prednej časti dosky a vyhladzovacie kondenzátory napájania 100uF musia byť v blízkosti vstupov napájača krokového motora. Potom, čo bolo všetko rozložené, som začal trasovať stopy.
Aj keď Oshpark vyrába PCB vysokej kvality, ich ceny sú dosť vysoké. Našťastie PCBGOGO.com tiež vyrába skvelé PCB za dostupnú cenu. Bol som schopný kúpiť desať PCB za pouhých 5 dolárov, namiesto toho, aby som zaplatil 52 dolárov za tri dosky od Oshpark.com.
Krok 3: Zostavenie
Celkovo bola montáž dosky celkom jednoduchá. Začal som spájkovaním povrchovo namontovaných komponentov a potom pripevnením konektora a regulátora valcového konektora. Ďalej som spájkoval záhlavie pinov pre komponenty, ako sú ovládače motora a FireBeetle.
Po dokončení spájkovania som otestoval dosku na skrat tak, že som multimetr prepol do režimu merania odporu a zistil som, či odpor prekročil určitú hodnotu. Doska prešla, takže som potom mohol zapojiť každý komponent.
Krok 4: Prehľad programovania
Chcel som, aby kód pre túto dosku bol modulárny a ľahko použiteľný. To znamenalo mať niekoľko tried, ktoré zvládajú konkrétne funkcie, spolu s väčšou triedou wrapperu, ktorá kombinuje tie menšie.
Krok 5: Vstupy
Na spracovanie vstupov som vytvoril triedu s názvom „Hub_Inputs“, ktorá umožňuje domácemu rozbočovaču komunikovať s APDS9960 spolu s vytváraním a správou tlačidiel a kapacitných dotykových rozhraní. Obsahuje nasledujúce funkcie:
Tlačidlo Vytvoriť
Získať, ak je stlačené tlačidlo
Získajte počet stlačení tlačidiel
Získajte najnovšie gesto
Získajte kapacitnú dotykovú hodnotu
Tlačidlá sú uložené ako štruktúra s tromi atribútmi: is_pressed, numberPresses a pin. Každé tlačidlo, keď je vytvorené, je pripojené k prerušeniu. Keď sa spustí toto prerušenie, odovzdá sa rutina prerušenia služby (ISR) ukazovateľ tohto tlačidla (udáva sa ako adresa pamäte v poli tlačidiel) a zvýši počet stlačení tlačidiel spolu s aktualizáciou booleovskej hodnoty is_pressed.
Kapacitné dotykové hodnoty sú oveľa jednoduchšie. Načítavajú sa prechodom dotykového kolíka do funkcie touchRead ().
Najnovšie gesto sa aktualizuje hlasovaním na APDS9960 a kontrolou, či bolo zistené nejaké nové gesto, a ak bolo zistené, nastavte na toto gesto premennú súkromného gesta.
Krok 6: Výstupy
Rozbočovač inteligentnej domácnosti ponúka niekoľko spôsobov, ako odosielať informácie a meniť svetlá. Existujú piny, ktoré prerušujú zbernicu I2C a umožňujú užívateľom pripojiť LCD. Zatiaľ je teda podporovaná iba jedna veľkosť LCD: 20 x 4. Použitím funkcie „hub.display_message ()“môžu užívatelia zobrazovať správy na LCD displeji zadaním reťazcového objektu.
K dispozícii je tiež kolíkový konektor na pripojenie série analógových diód LED. Volanie funkcie „hub.set_led_strip (r, g, b)“nastaví farbu pásu.
Dva krokové motory sú poháňané dvojicou riadiacich dosiek DRV8825. Na ovládanie motora som sa rozhodol použiť knižnicu BasicStepper. Po spustení dosky sa vytvoria dva krokové objekty a oba motory sa povolia. Na krokovanie každého motora sa používa funkcia „hub.step_motor (motor_id, kroky)“, kde id motora je buď 0 alebo 1.
Krok 7: Protokolovanie
Pretože doska má niekoľko senzorov, chcel som možnosť lokálneho zhromažďovania a zaznamenávania údajov.
Na spustenie protokolovania sa vytvorí nový súbor s názvom „hub.create_log (názov súboru, hlavička)“, kde sa hlavička použije na vytvorenie riadka súboru CSV, ktorý označuje stĺpce. Prvý stĺpec je vždy časová pečiatka vo formáte rok mesiac deň hodina: min: s. Ak chcete získať čas, funkcia hub.log_to_file () dostane čas s funkciou basic_functions.get_time (). Časová štruktúra tm je potom odkazom odovzdaná do funkcie protokolovania spolu s údajmi a názvom súboru.
Krok 8: Bzučiak
Na čo je doska IoT, keď nemôžete prehrávať hudbu? Preto som zahrnul bzučiak s funkciou prehrávania zvukov. Zavolaním „hub.play_sounds (melódia, trvanie, dĺžka)“sa začne prehrávať skladba, pričom melódiou je pole frekvencií tónov, trvanie ako pole trvaní tónov a dĺžka ako počet tónov.
Krok 9: Externé integrácie IoT
Rozbočovač v súčasnosti podporuje webové háčiky IFTTT. Môžu byť spustené volaním funkcie Hub_IoT.publish_webhook (adresa URL, údaje, udalosť, kľúč) alebo Hub_IoT.publish_webhook (adresa URL, údaje). To odošle požiadavku POST na danú adresu URL s priloženými údajmi a v prípade potreby s názvom udalosti. Ak chcete nastaviť príklad integrácie IFTTT, najskôr vytvorte nový aplet. Potom vyberte službu webhook, ktorá sa spustí po prijatí požiadavky.
Potom zavolajte udalosť „high_temp“a uložte ju. Potom v časti „To“vyberte službu Gmail a zvoľte možnosť „Odoslať e -mail sebe“. V rámci nastavenia služby zadajte „Teplota je vysoká!“pre predmet a potom som vložil „Nameranú teplotu {{Value1}} pri {{OccurredAt}}“, ktorá zobrazuje nameranú teplotu a čas, kedy bola udalosť spustená.
Po nastavení jednoducho prilepte adresu URL webhooku vygenerovanú IFTTT a do sekcie udalostí vložte „high_temp“.
Krok 10: Použitie
Ak chcete používať Smart Home Hub, jednoducho zavolajte všetky potrebné funkcie v programe setup () alebo loop (). Už som uviedol príklady volaní funkcií, ako je napríklad vytlačenie aktuálneho času a volanie udalosti IFTTT.
Krok 11: Plány do budúcnosti
Systém Smart Home Hub funguje veľmi dobre na jednoduché úlohy automatizácie domácnosti a zberu údajov. Dá sa použiť takmer na čokoľvek, ako je napríklad nastavenie farby pásika LED, sledovanie teploty v miestnosti, kontrola rozsvietenia svetla a množstvo ďalších potenciálnych projektov. V budúcnosti by som chcel funkcionalitu ešte viac rozšíriť. To môže zahŕňať pridanie robustnejšieho webového servera, lokálny hostiteľ súborov a dokonca aj Bluetooth alebo mqtt.
Odporúča:
Smart Home od Raspberry Pi: 5 krokov (s obrázkami)
Smart Home od Raspberry Pi: Existuje už niekoľko produktov, vďaka ktorým je váš byt múdrejší, ale väčšina z nich sú proprietárne riešenia. Prečo však potrebujete na zapnutie svetla pomocou smartfónu internetové pripojenie? To bol jeden z dôvodov, prečo som si vybudoval vlastný Smar
Alexa Smart Home System pomocou reléového modulu NodeMCU: 10 krokov
Systém Alexa Smart Home využívajúci reléový modul NodeMCU: V tomto projekte internetu vecí som vyrobil systém Alexa Smart Home Automation pomocou NodeMCU ESP8266 & Reléový modul. Svetlo, ventilátor a ďalšie domáce spotrebiče môžete ľahko ovládať hlasovým príkazom. Ak chcete prepojiť inteligentný reproduktor Echo Dot s
Smart Home na diaľku: 5 krokov
Vzdialený inteligentný dom: Materiál: duna gelamineerde horná doska. 1 x hrubý plagát s priemerom 1 cmkleine nagels
Rozhranie Honeywell Vista Alarm so Smart Hub (Wink/Smartthings): 7 krokov (s obrázkami)
Rozhranie Honeywell Vista Alarm so Smart Hub (Wink/Smartthings): Dobrý deň! Chcel by som poskytnúť stručný návod, ako som integroval svoj poplachový systém Honeywell Vista do svojho inteligentného rozbočovača. Na tento tutoriál používam Wink, ale malo by to fungovať s akýmkoľvek inteligentným centrom (Smartthings/Iris/atď.) Skôr ako začneme, choďte
DIY Google Home with Bluetooth Speaker on Raspberry Pi Zero Docking Hub: 7 Steps (with Pictures)
DIY Google Home with Bluetooth Speaker on Raspberry Pi Zero Docking Hub: We have an instructable on DIY Amazon Echo Alexa - Alexa Voice Assistant on Raspberry Pi Zero Docking Hub. Dnes vám chceme ukázať, ako si postaviť svojpomocný domov Google. V tomto návode vám ukážeme, ako nainštalovať a nastaviť asistenta Google