Obsah:

ESP32 Smart Home Hub: 11 krokov
ESP32 Smart Home Hub: 11 krokov

Video: ESP32 Smart Home Hub: 11 krokov

Video: ESP32 Smart Home Hub: 11 krokov
Video: Делаем терминал умного дома из планшета 2024, November
Anonim
Inteligentný domáci rozbočovač ESP32
Inteligentný domáci rozbočovač ESP32
Inteligentný domáci rozbočovač ESP32
Inteligentný domáci rozbočovač ESP32
Inteligentný domáci rozbočovač ESP32
Inteligentný domáci rozbočovač ESP32
Inteligentný domáci rozbočovač ESP32
Inteligentný domáci rozbočovač ESP32

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

Vlastnosti
Vlastnosti
Vlastnosti
Vlastnosti
Vlastnosti
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

DPS
DPS
DPS
DPS
DPS
DPS
DPS
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

zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie

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

Vstupy
Vstupy
Vstupy
Vstupy
Vstupy
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

Výstupy
Výstupy
Výstupy
Výstupy
Výstupy
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

Prihlasovanie
Prihlasovanie
Prihlasovanie
Prihlasovanie
Prihlasovanie
Prihlasovanie

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

Bzučiak
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

Externé integrácie internetu vecí
Externé integrácie internetu vecí
Externé integrácie internetu vecí
Externé integrácie internetu vecí
Externé integrácie internetu vecí
Externé integrácie internetu vecí

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

Použitie
Použitie
Použitie
Použitie
Použitie
Použitie
Použitie
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: