OSPy = https://github.com/martinpihrt/OSPy
Tento článek pojednává o možnosti připojení a nastavení snímačů do zavlažovacího systému OSPy (https://pihrt.com/elektronika/248-moje-rapsberry-pi-zavlazovani-zahrady?showall=1). Článek budu postupně aktualizovat dle postupu na projektu. Snímače (teplota, vlhkost, kontakt, pohyb...) umožňují spouštět různé programy. Co je nejlepší, tak mohou být kdekoliv v síti. Snímače jsou dvojího typu: Wi-Fi/LAN a Rádio).
----->>>> Postup přidání snímače do OSPy <<<<-----
- V OSPy menu "nastavení" v záložce "snímače" vygenerujeme tlačítkem nový AES kód (nebo pokud ho již známe ze snímačů, tak ho zde můžeme vložit)
- Na desce snímače podržíme tlačítko AP (pro vyvolání AP manažera) déle než 3 vteřiny (LED začne blikat rychle). Snímač vytvoří Wi-Fi síť (AP) s názvem "Sensor ESP32"
- Pomocí mobilního telefonu (tabletu, notebooku) se připojíme k síti "Sensor ESP32". Heslo pro připojení je "ospy-sensor-esp32"
- Po připojení otevřeme webový prohlížeč a zadáme IP adresu: "http://192.168.1.1". Následně se otevře webová stránka, kde nastavíme připojení k svojí Wi-Fi síti (režim STA)
Wi-Fi Settings
- Na webové stránce se zobrazí dostupné Wi-Fi sítě v našem okolí. Kliknutím na zobrazenou síť vybereme naši požadovanou síť
- Vyplníme heslo pro připojení k síti. Po vyplnění stiskneme tlačítko "Save"
Sensor Settings
- Sensor Name = zadáme jméno tohoto snímače (například "teplota bazén")
- OSPy IP address = zadáme IP adresu (nebo název) na které běží OSPy server (například: "192.168.88.202", nebo "sprinkler123.com")
- OSPy port = port na kterém je dostupný OSPy server (výchozí je "8080")
- Use SSL (https) = pokud nemáme v OSPy nastavené šifrované spojení přes SSL, tak políčko neoznačíme, v opačném případě (máme https připojení) políčko označíme
- AES key = z OSPy ze záložky "snímače" použijeme vygenerovaný 16-místný AES klíč. V rámci jednoho OSPy použijeme klíč ve všech snímačích stejný!
- AES secure = jedinečný bezpečnostní kód (16-místný), který má každý snímač jiný!!! Vybereme náhodnou kombinaci
- Use OSPy authorisation = zatím není použito (aktuální verze FW: 1.03 a OSPy 4.0.91 - 2021-01-11) nemají funkci zapnutou. Do budoucna bude použito pro ověření uživatele (snímač již tato data odesílá, ale OSPy je zatím ignoruje). Pokud políčko označíme, tak se bude odesílat jméno a heslo pro přihlášení k OSPy systému. Doporučuji v OSPy v "nastavení" vytvořit nového uživatele a přiřadit mu oprávnění "snímač"
- Authorisation name = jméno uživatele pro přístup k OSPy (výchozí je "admin")
- Authorisation password = heslo uživatele pro přístup k OSPy (výchozí je "opendoor")
- Sensor type = zvolíme jak se má tento snímač hlásit (a dle toho odesílat data do OSPy)
- Sensor communication = Wi-Fi/LAN je zatím jediná dostupná možnost, která pracuje (do budoucna budou další typy komunikace. Například pomocí RF signálu - rádio)
- Dry contact input is = vybereme volbu, zda chceme na vstupu ESP32 připojit pull-up rezistor (potom se čidlo zapojí mezi pin a gnd), nebo jako pull-down (potom se čidlo zapojí mezi pin a VCC 3,3V. Doporučuji zároveň s čidlem připojit rezistor 1 KOhm mezi zem a pin)
- Motion input is = vybereme volbu, zda chceme na vstupu ESP32 připojit pull-up rezistor (potom se čidlo zapojí mezi pin a gnd), nebo jako pull-down (potom se čidlo zapojí mezi pin a VCC 3,3V. Doporučuji zároveň s čidlem připojit rezistor 1 KOhm mezi zem a pin)
Po nastavení všech parametrů stiskneme tlačítko "Save" a v hlavní nabídce stiskneme tlačítko "Restart".
Pokud máme vše nastaveno správně, tak se po připojení k Wi-Fi objeví tento snímač v OSPy v záložce "snímače / vyhledávání snímačů"
Stránka pro vyhledání snímačů. Po kliknutí na tlačítko "vytvořit z tohoto" můžeme snadno přidat nový snímač do OSPy systému.
Pokud se jedná o snímač typu "multi", tak ho můžeme použít opakovaně. Jednou bude přiřazen jako například čidlo DS1 a podruhé jako kontakt...
Snímače odesílají data po 30 vteřinách. V případě neúspěšného odeslání je interval 5 vteřin. V případě snímače kontakt (pohyb) jsou data odeslaná navíc při každé změně vstupu. V případě, že nepřijdou od snímače žádná data do 2 minut, tak je zelený kruh v OSPy (ve snímačích červený!) Čas uvedený u kruhu zobrazuje čas od posledního připojení (odeslání dat snímačem).
Snímač umožňuje mimo odesílání hodnot z čidel spínat relé, které může reagovat na událost v OSPy.
Na obrázku je prototyp snímače s ESP32 postavený na desce "Wemos D1 R32". Na své desce budu mít tyto prvky již osazeny (svorky, rezistory, atd...) K prototypové desce je připojeno:
a) PIR pohybové čidlo (VCC 3,3V, pin GPIO14 motion, zem) - v nastavení AP snímače je vstup nastaven jako Pull-down. Při pohybu je výstup PIR čidla nastaven do HIGH (3,3V) a dojde k události (odeslání dat do OSPy), v klidu (bez pohybu) je výstup nastaven v LOW (0V). Je spousta snímačů pohybu, které můžeme použít. Například čínské HS SR519:
Pozor: v případě čidla jako je na obrázku musíme přemostit stabilizátor 5V na 3,3V. Nebo zakoupit čidlo, které funguje na 3,3V!
Já použil čidlo "Modul 555-28027, Parallax Inc", které je na 3,3V a má v sobě červenou LED (ta signalizuje svitem aktivaci - pohyb).
b) Teplotní čidlo DS18B20, které je ve vodotěsném provedení (rudá VCC 3,3V, žlutá pin GPIO26 DS1, černá/modrá zem. Rezistor 4k7 zapojen mezi VCC 3,3V a pin GPIO26 jako pull-up rezistor). Čidla lze připojit až 4 (GPIO25, GPIO17, GPIO16).
c) Deska s relé Wemos (VCC 5V, pin GPIO19 relay na pin D1 Wemos, zem), v principu je jedno jakou desku použijeme (ale při přivedení VCC 3,3V na pin D1 musí relé sepnout).
d) Měření napětí napájecího adaptéru (230V AC/ mikro USB 5V DC). Adaptér napájí celý snímač (prvky DS18B20, ESP32, RELÉ, PIR). Vstup snímače umožňuje měřit napětí zdroje (nebo například baterií atd...) Použijeme dělič napětí R1=100 KOhm a R2=10KOhm jako na obrázku níže.
Do "IN" zapojíme vstupní měřené napětí 0-33V MAX a do "OUT" zapojíme ESP32 pin GPIO36 a zem (-) bude společná. Dělič snižuje napětí 10x a můžeme tedy měřit na vstupu ESP32 hodnotu 0-3,3V jako 0-33V. Pozor: vstup ESP32 nesnese větší napětí než 3,3V!
Uvedeme si příklad "jak ovládat relé na desce snímače pomocí PIR na desce snímače".
První krok - zapojená deska snímače a přiřazení snímače do OSPy máme již hotov (viz úvod článku). Druhým krokem je vytvořit program v OSPy, který bude reagovat na událost (pohyb PIR snímače). V mém příkladu jsem vytvořil program "8. test pir rele", který spíná stanici "3. test senzor". Program nemusí být aktivní (VYP). Pokud chceme aby světlo svítilo například pouze v 6 hodin každé pondělí na dobu 1 minuty dle plánovače OSPy a zbytek času spínalo přes snímač s PIR dáme "ZAP".
Pro ovládání relé na desce snímače použijeme balíček v OSPy, který se jmenuje "CLI" (Rozšíření CLI - command line interface). Toto rozšížení umožnuje při sepnutí stanice xx poslat nějaký příkaz. V našem příkladu budeme sepnutím stanice 3 odesílat příkaz pro zapnutí relé na desce snímače (při vypnutí opačně). Pro tuto volbu použijeme příkaz "wget", IP adresu desky snímače v síti, bezpečnostní kód. Pro tento příklad je nastavení takto: bezpečnostní kód "0123456789abcdef" je použit v CLI příkazu a při události se aktivuje program 8 (test pir rele).
Hodnota "re=1" relé na desce snímače aktivuje a "re=0" relé deaktivuje.
Aktualizace snímače ESP32 FW na verzi 1.02 přináší
* AP manažera pro snadné nastavení parametrů telefonem, tabletem (nebo notebookem)
* režim "multi" pro měření 4xDS18B20 a všech ostatních parametrů současně
* ovládání relé (když sepne stanice v OSPy, tak může sepnout i relé ve snímači)
Více info na githubu v changelogu: https://github.com/martinpihrt/OSPy/blob/master/ospy/docs/Changelog.md
Foto z AP manažera a z OSPy, kde přibyla možnost "multi" ve snímačích.
Vlhkost a průtok zatím není ve FW: 1.02 zpracováváno (nic se neměří) -> pracuji na tom.
Aktualizace snímače ESP32 FW na verzi 1.03 přináší
* Možnost nahrávání nového FW přes webový prohlížeč (pouze v režimu AP)
* U detektorů typu "kontakt", nebo "pohyb" lze v nastavení přiřadit zda se jedná o pull-up, nebo pull-down (snímač je zapojen mezi vstup a gnd, nebo vstup a VCC 3.3V)
* Tlačítko pro vyvolání AP manažeru nyní ovládá i relé (při stisknutí tlačítka kratším než 2 vteřiny můžeme relé zapnout, nebo vypnout - nefunguje v režimu AP, tam se ovládá pomocí tlačítka na webu AP manažeru). Při delším stisknutí (> 2 vteřiny) se spustí na 4 minuty AP manažer)
* Měření napětí zdroje (měřené napětí je sníženo děličem 100k/10k a přivedeno na AD vstup ESP32). Pozor vstup ESP32 nesnese více než 3.3V, proto musíte použít dělič napětí!
* Přidané CSS styly jako v OpenSprinkler
* Přidáno zobrazení času do restartu na všech HTML stránkách v AP režimu (příklad 03:00)
* Oprava načítání teploty (85C) z čidel 4x DS18B20 (při hodnotě -127, nebo 85C se opakuje 5x čtení se vteřinovou prodlevou)
Více info na githubu v changelogu: https://github.com/martinpihrt/OSPy/blob/master/ospy/docs/Changelog.md
Foto z AP manažera verze 1.03
Vlhkost a průtok zatím není ve FW: 1.03 zpracováváno (nic se neměří) -> pracuji na tom.
Připojení k desce ESP32
- Tlačítko spuštění AP manažera mezi pin GPIO18 a zem (stejným tlačítkem se ovládá i relé v režimu STA, stisk <2s)
- DS18B20-1 pin GPIO26 (3,3 V, data a pull-up 4k7 na 3,3V, zem)
- DS18B20-2 pin GPIO25 (3,3 V, data a pull-up 4k7 na 3,3V, zem)
- DS18B20-3 pin GPIO17 (3,3 V, data a pull-up 4k7 na 3,3V, zem)
- DS18B20-4 pin GPIO16 (3,3 V, data a pull-up 4k7 na 3,3V, zem)
- Dry Contact pin GPIO27 a zem (nebo pin a VCC 3,3V)
- Motion contact pin GPIO14 a zem (nebo pin a VCC 3,3V)
- Wi-Fi LED pin GPIO2 (v sérii přes rezistor 220 Ohm na LED a zem)
- Relé pin GPIO19 (ovládací napětí pro tranzistor, který spíná relé)
- Vstup napětí pin GPIO36 a zem (dělič 100k/10k)
Příklady připojení PIR čidla na vstup motion, nebo dry contact (nezapomenout správně zvolit režim vstupu v AP manažeru snímače)
Z pohledu OSPy snímače je jedno, které zapojení použijeme. V nastavení snímače (v AP manažeru) pouze říkáme na jakou událost má vstup snímače reagovat (spojení na gnd, nebo spojení na vcc).
Zapojení pull-up 3.3V využijeme v případě, že použijeme PIR detektor s napájením pomocí 3V z desky snímače. Z tohoto detektoru je při pohybu sepnutí výstupu na gnd (0V) bez pohybu má detektor svůj výstup ve stavu rozpojeno (detektor má na výstupu tranzistor s otevřeným kolektorem, nebo kontakt relé).
Zapojení pull-down 3.3V využijeme v případě, že použijeme PIR detektor s napájením pomocí 3V z desky snímače. Z tohoto detektoru je při pohybu sepnutí výstupu na 3.3V (vcc) bez pohybu má detektor svůj výstup ve stavu rozpojeno (detektor má na výstupu tranzistor s otevřeným emitorem, nebo kontakt relé).
Zapojení pull-up 12V využijeme v případě, že použijeme PIR detektor s vlastním napájením pomocí 12V (a vyšším) mimo desku snímače. Z tohoto detektoru je při pohybu sepnutí výstupu na 0V (gnd) bez pohybu má detektor svůj výstup ve stavu rozpojeno (detektor má na výstupu tranzistor s otevřeným emitorem, nebo kontakt relé).
Zapojení pull-down 12V využijeme v případě, že použijeme PIR detektor s vlastním napájením pomocí 12V (a vyšším) mimo desku snímače. Z tohoto detektoru je při pohybu sepnutí výstupu - relé. Bez pohybu má detektor svůj výstup ve stavu rozpojeno.
Rozšíření více PIR detektorů na jeden vstup snímače ESP32
Finální verze multisnímače s ESP32
https://pihrt.com/elektronika/444-esp32-multisnimac-pro-opensprinkler-system