Obsah:
- Zásoby
- Krok 1: Funkce
- Krok 2: PCB
- Krok 3: Sestavení
- Krok 4: Přehled programování
- Krok 5: Vstupy
- Krok 6: Výstupy
- Krok 7: Protokolování
- Krok 8: Bzučák
- Krok 9: Externí integrace IoT
- Krok 10: Použití
- Krok 11: Plány do budoucna
Video: ESP32 Smart Home Hub: 11 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Vytvoření systému, který zvládne velké množství dat ze senzorů, má více výstupů a připojení k internetu nebo místní síti, vyžaduje dlouhou dobu a velké úsilí. Lidé, kteří chtějí vytvořit vlastní chytré domácí sítě, až příliš často bojují s tím, že dokážou najít a sestavit vlastní komponenty do většího systému. Proto jsem chtěl vytvořit modulární a na funkce bohatou platformu, která by usnadnila konstrukci senzorů a výstupů připojených k internetu věcí.
Děkujeme společnostem DFRobot a PCBGOGO.com za sponzorování tohoto projektu!
Podrobnější informace najdete na repo Githubu:
Zásoby
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
Senzor DHT22
www.dfrobot.com/product-1102.html
-
Senzor světla a gest APDS9960
www.dfrobot.com/product-1361.html
-
Modul LCD I2C 20x4
www.dfrobot.com/product-590.html
-
Analogový RGB LED pásek
www.dfrobot.com/product-1829.html
- Ovladače krokových motorů DRV8825
- Čtečka karet SD
- Krokové motory NEMA17
Krok 1: Funkce
Hlavní vlastností této desky je vývojová deska ESP32 FireBeetle, která zpracovává veškerou komunikaci, čtení senzorů a výstupy. Existují dva ovladače krokových motorů, které ovládají dva bipolární krokové motory.
Sběrnice I2C je také rozdělena pro použití s komponenty, jako je APDS9960 nebo LCD. Pro čtení teploty jsou přerušeny kolíky pro připojení k senzoru DHT22, stejně jako fotorezistor pro čtení úrovní okolního světla.
Na desce je podpora analogového světelného pásu, který má tři MOSFETy pro ovládání LED světel.
Krok 2: PCB
Proces návrhu DPS jsem zahájil nejprve vytvořením schématu v Eagle. Protože se mi nepodařilo najít knihovnu ESP32 FireBeetle, místo toho jsem použil dvě pinové 1x18 pinové hlavičky. Poté jsem vytvořil obvod řízení napájení, který mohl přijímat 12 V přes DC barel jack a převést jej na 5 V pro napájení senzorů a ESP32.
Po dokončení schématu jsem přešel k návrhu samotné desky plošných spojů.
Věděl jsem, že stejnosměrná hlavní zástrčka bude muset být blízko přední části desky a vyhlazovací kondenzátory napájecího zdroje 100 uF musí být blízko napájecích vstupů ovladače krokového motoru. Poté, co bylo vše rozloženo, jsem začal směrovat stopy.
Zatímco Oshpark vyrábí velmi kvalitní PCB, jejich ceny jsou poměrně vysoké. Naštěstí PCBGOGO.com také vyrábí skvělé PCB za dostupnou cenu. Byl jsem schopen koupit deset desek plošných spojů za pouhých 5 $, místo abych zaplatil 52 $ za pouhé tři desky od Oshpark.com.
Krok 3: Sestavení
Celkově bylo sestavení desky celkem snadné. Začal jsem pájením povrchově montovaných komponent a poté připojením konektoru a regulátoru barel jack. Dále jsem připájel záhlaví kolíků pro součásti, jako jsou ovladače motorů a FireBeetle.
Po dokončení pájení jsem desku otestoval na zkrat tak, že jsem multimetr přepnul do režimu měření odporu a zjistil, zda odpor přesáhl určité množství. Deska prošla, takže jsem pak mohl zapojit každou součástku.
Krok 4: Přehled programování
Chtěl jsem, aby kód této desky byl modulární a snadno použitelný. To znamenalo mít několik tříd, které zpracovávají konkrétní funkce, spolu s větší třídou wrapperu, která kombinuje ty menší.
Krok 5: Vstupy
Pro zpracování vstupů jsem vytvořil třídu s názvem „Hub_Inputs“, která umožňuje domácímu centru komunikovat s APDS9960 spolu s vytvářením a správou tlačítek a kapacitních dotykových rozhraní. Obsahuje následující funkce:
Tlačítko Vytvořit
Získejte, pokud je stisknuto tlačítko
Získejte počet stisknutí tlačítka
Získejte nejnovější gesto
Získejte kapacitní dotykovou hodnotu
Tlačítka jsou uložena jako struktura se třemi atributy: is_pressed, numberPresses a pin. Každé tlačítko, když je vytvořeno, je připojeno k přerušení. Když je toto přerušení spuštěno, je předán rutina přerušení služby (ISR) ukazateli tohoto tlačítka (udává se jako jeho adresa v poli tlačítek) a zvyšuje počet stisknutí tlačítka spolu s aktualizací booleovské hodnoty is_pressed.
Kapacitní dotykové hodnoty jsou mnohem jednodušší. Načítají se předáním dotykového kolíku funkci touchRead ().
Nejnovější gesto se aktualizuje dotazováním na APDS9960 a kontrolou, zda bylo zjištěno nějaké nové gesto, a pokud bylo zjištěno, nastavte proměnnou soukromých gest na toto gesto.
Krok 6: Výstupy
Rozbočovač chytré domácnosti nabízí několik způsobů, jak odesílat informace a měnit světla. Existují piny, které přerušují sběrnici I2C a umožňují uživatelům připojit LCD. Zatím je podporována pouze jedna velikost LCD: 20 x 4. Pomocí funkce „hub.display_message ()“mohou uživatelé zobrazovat zprávy na LCD předáním řetězcového objektu.
K dispozici je také záhlaví pinů pro připojení řady analogových LED. Voláním funkce „hub.set_led_strip (r, g, b)“se nastaví barva pásu.
Dva krokové motory jsou poháněny dvojicí řídicích desek DRV8825. K ovládání motoru jsem se rozhodl použít knihovnu BasicStepper. Po spuštění desky se vytvoří dva krokové objekty a oba motory se aktivují. Ke krokování každého motoru se používá funkce „hub.step_motor (motor_id, steps)“, kde id motoru je buď 0 nebo 1.
Krok 7: Protokolování
Protože deska má několik senzorů, chtěl jsem možnost lokálně shromažďovat a protokolovat data.
Chcete -li zahájit protokolování, vytvoří se nový soubor „hub.create_log (název_souboru, záhlaví)“, kde záhlaví slouží k vytvoření řádku souboru CSV, který označuje sloupce. První sloupec je vždy časové razítko ve formátu Rok Měsíc Den Hodina: Min: Sek. Chcete -li získat čas, funkce hub.log_to_file () získá čas pomocí funkce basic_functions.get_time (). Časová struktura tm je poté předána odkazem do funkce protokolování spolu s daty a názvem souboru.
Krok 8: Bzučák
K čemu je deska IoT, když nemůžete přehrávat hudbu? Proto jsem přidal bzučák s funkcí přehrávání zvuků. Voláním „hub.play_sounds (melodie, trvání, délka)“se začne přehrávat skladba, přičemž melodie je řada frekvencí not, doba trvání jako pole trvání not a délka jako počet not.
Krok 9: Externí integrace IoT
Rozbočovač aktuálně podporuje webhooky IFTTT. Mohou být spuštěny voláním funkce Hub_IoT.publish_webhook (url, data, událost, klíč) nebo Hub_IoT.publish_webhook (url, data). To odešle požadavek POST na danou adresu URL s připojenými daty a v případě potřeby s názvem události. Chcete -li nastavit příklad integrace IFTTT, nejprve vytvořte nový applet. Poté vyberte službu webhook, která se spustí při přijetí požadavku.
Poté akci pojmenujte „high_temp“a uložte ji. Poté v části „To“vyberte službu Gmail a zvolte možnost „Odeslat e -mail sobě“. V nastavení služby zadejte „Teplota je vysoká!“pro předmět a poté jsem dal „Naměřená teplota {{Value1}} na {{OccurredAt}}“, která ukazuje naměřenou teplotu a čas, kdy byla událost spuštěna.
Po nastavení jednoduše vložte adresu URL webhooku vygenerovanou IFTTT a do části události vložte „high_temp“.
Krok 10: Použití
Chcete -li používat Smart Home Hub, jednoduše zavolejte všechny potřebné funkce v nastavení () nebo smyčce (). Už jsem dal příklad volání funkcí, jako je tisk aktuálního času a volání události IFTTT.
Krok 11: Plány do budoucna
Systém Smart Home Hub funguje velmi dobře pro jednoduché úkoly domácí automatizace a shromažďování dat. Lze jej použít téměř ke všemu, jako je nastavení barvy LED pásky, sledování teploty v místnosti, kontrola rozsvícení světla a celá řada dalších potenciálních projektů. Do budoucna bych chtěl funkčnost ještě více rozšířit. To může zahrnovat přidání robustnějšího webového serveru, hostování lokálních souborů a dokonce i Bluetooth nebo mqtt.
Doporučuje:
Smart Home od Raspberry Pi: 5 kroků (s obrázky)
Smart Home od Raspberry Pi: Existuje již několik produktů, díky nimž je váš byt chytřejší, ale většina z nich je proprietární řešení. Proč ale k připojení světla k chytrému telefonu potřebujete připojení k internetu? To byl jeden z důvodů, proč jsem si vybudoval vlastní Smar
STONE LCD se Smart Home: 5 kroků
STONE LCD With Smart Home: Dnes jsem dostal displej jednotky STONE se sériovým portem, který může komunikovat přes sériový port MCU, a logický design tohoto displeje lze navrhnout přímo pomocí softwaru VGUS, který je k dispozici na oficiálních webových stránkách STONE, což je velmi přesvědčení
Systém Alexa Smart Home využívající reléový modul NodeMCU: 10 kroků
Systém Alexa Smart Home využívající reléový modul NodeMCU: V tomto projektu IoT jsem vytvořil systém Alexa Smart Home Automation pomocí NodeMCU ESP8266 & Reléový modul. Pomocí hlasového příkazu můžete snadno ovládat světlo, ventilátor a další domácí spotřebiče. Chcete -li propojit inteligentní reproduktor Echo Dot s
Rozhraní Honeywell Vista Alarm se Smart Hub (Wink/Smartthings): 7 kroků (s obrázky)
Rozhraní Honeywell Vista Alarm se Smart Hubem (Wink/Smartthings): Dobrý den! Chtěl jsem poskytnout stručný návod, jak jsem integroval svůj poplašný systém Honeywell Vista do svého chytrého rozbočovače. Pro tento tutoriál používám Wink, ale to by mělo fungovat s jakýmkoli chytrým centrem (Smartthings/Iris/atd.) Než začneme, jdě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. Tentokrát vám chceme ukázat, jak vytvořit domovskou stránku Google Home. V tomto pokynu vám ukážeme, jak nainstalovat a nastavit Google Assistant