Browsed by
Category: Arduino

Arduino návody

ESPEasy firmware pre moduly ESP

ESPEasy firmware pre moduly ESP

Firmware ESP Easy je vhodný na doplnenie rôznych periférii , senzorov a aktorov pripojených k Loxone cez Wifi. Konfigurácia ESP Easy je založená výlučne na webe, takže akonáhle máte nahraný firmvér, nepotrebujete okrem bežného webového prehliadača žiadny iný nástroj.

HARDWARE

Podporovaný HW nájdete tu https://www.letscontrolit.com/wiki/index.php?title=ESP_Hardware
Osobne používam WEMOS D1 mini za 2€, alebo NodeMCU ktorá je väčšia. Skúšal som dosku WROOM ta mi nefungovala.
Odporúčam kúpiť dosku, ktorá ma prevodník USB to serial , aby ste sa nemuseli trápiť s externým prevodníkom.

FLASCH FW

1. Stiahneme si FW z odkazu https://github.com/letscontrolit/ESPEasy
2. Pripojíme dosku pomocou USB, mal by sa nám nainštalovať ovládač. V správcovi zariadení nám pribudne COM port.

3. sú 2 možnosti SW, ktorým sa dá FW flaschnuť.
A) ESP easy Flascher

tu treba vybrať COM port na, ktorom je doska pripojená a verziu FW.
Do väčšiny dosiek môžete použiť verziu

ESP_Easy_mega_20200516_normal_ESP8266_4M1M.bin    resp. novšie vydanie
Môžete požiť verziu TEST, v tej je viac možnosti senzorov, ktoré neboli zaradené do verzie normal.

Alebo ak použijete iný HW Sonoff, Shelly tak vyberiete príslušný FW.

Mne niekedy nevedel Flacher nájsť COM port na ktorom bola doska preto používam druhu možnosť.

B) FlashESP8266

Pred spustením si prekopírujte zo zložky BIN súbory, ktoré chcete nahrať do zložky kde je FlashESP8266, čiže o úroveň vyššie.
Po spustení FlashESP8266 vyberte COM port a FW, ktorý chcete nahrať.

4. Po nahratí FW treba odpojiť dosku od USB a znovu pripojiť.

5. ESP vytvori WIFI sieť z názvom ESPxxxx , ku ktorej sa treba pripojiť. Heslo je configesp

6. V web prehliadači zadáte IP 192.168.4.1 a otvori sa prostredie ESPEasy

7. Na záložke Config nastavíme UnitName, UnitNumber (ak budeme používať viac ESP).
Ďalej SSID, WPA Key vašej WIFI kde sa ma ESP pripájať. IP, GW, masku, DNS.
Teraz ESP odpojíme od napájania a znovu pripojíme.
Po chvíľke by sa malo pripojiť k vašej WIFI a do web prehliadača dáme IP, ktorú sme zadali pre zariadenie.

8. V záložke Controllers pridáme controler (použil som Generic UDP) , čo je náš loxone.

Vyplníme IP Loxone miniserveru a UDP port.

Ak chcete meniť formát správy, ktoré do Loxone dorazí môžete v Controller Publish.
Nezabudnite zaškrtnúť Enabled.

9. Výstupy
Asi najjednoduchšie je zapnúť výstup, nejakú LED alebo Relé.
Netreba zabudnúť, že vstupy/výstupy sú 3,3V, čiže na výstup pre relé použiť niečo na oddelenie, optotranzistor alebo tranzistor. Ja som pri prvom teste použil tranzistor a 3,3V relé.
Pre zapnutie výstupu stačí zaslať command

http://<espeasyip>/control?cmd=GPIO,12,1
alebo pre vypnutie

http://<espeasyip>/control?cmd=GPIO,12,0

Čiže IP adresa modulu , číslo výstupu a hodnota 0/1.
Toto si môžeme vyskúšať v prehliadači.
Ak chceme výstup ovládať z Loxone vytvoríme si Virtuálny HTTP výstup v ktorom vyplníme IP adresu ESP modulu.

A virtuálny výstup príkazu , kde vyplníme inštrukciu pre zapnutie a vypnutie
/control?cmd=GPIO,12,1
/control?cmd=GPIO,12,0

Potom použijeme ako bežný digitálny výstup.

Výstup je možné použiť aj ako dimmer, servo viz.:
https://www.letscontrolit.com/wiki/index.php/GPIO#Commands

Napr. Da sa priamo pripojiť LED na výstup a stmievať ju cez PWM.

10. Vstupy senzory vytvoríme v záložke Devices

10.1. Najjednoduchšie je tlačidlo spínač.
Pridáme Add zariadenie, celkovo ich môžeme pridať 12.
Vyberieme Switch input – Switch.
Vyplníme
– Name,
– nezabudneme Enabled,
– ak potrebujeme zapneme Pullup,
– vyberieme GIPO kam pripájame spínač.
– Switch type na switch

– Switch button type  na Normal switch
– De-bounce dáva kôli záchvevom tlačidla 10ms
– Zaškrtneme send to controler
– v prípade tlačidla Interval necháme 0 , aby command poslalo hneď.

Následne si v loxone vytvoríme Virtulány UDP vstup, kde vyplníme číslo potru, ktoré sme zadali na záložke Controller.

Dáme uložiť do miniserveru a spustíme si UDP monitor.
Tu by sme mali už vidieť pri stlačení tlačidla, že nám prišla správa niečo ako

ESP_SW_State=1

Teraz si vytvoríme Virtuálny UDP príkaz a vyplníme Rozoznanie príkazu.
Príkaz sa skladá podľa toho čo sme vyplnili v ESPEasy na záložke Controller pole Controller publisher. Napríklad ESP_SW=0 tuto 0 nahradíme /v

ESP_SW=\v

Teraz môžeme Vstup použiť ako bežný digitálny vstup.

10.2. Generic – Pulse counter elektromer, vodomer, prietokomer
Mám pripojene na prietokomer https://www.aliexpress.com/item/33009797710.html?spm=a2g0o.productlist.0.0.46e61e3czwQcO9&algo_pvid=9b363f0c-4a1e-487d-a021-70325ec320c8&algo_expid=9b363f0c-4a1e-487d-a021-70325ec320c8-7&btsid=0be3743b15914688158757311ed5e7&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

V Devices si vytvoríme Generic – Pulse counter

zadáme Name, GIPO, Debounce, pre prietokomer Counter type – Delta , Modetype – Falling a Interval ako často má hodnotu posielať ( ja som použil 10s) odporúčaná je 5-15s.

Obmedzenie je, že counter vstup môže byť len na device 1-4.
Môj prietokomer ma prevod Q*6.6 toto treba dať do poľa Formula.

V loxone si vytvoríme ďalší virtuálny UDP príkaz kde nastavíme rozpoznanie príkazu.
V mojom prípade ESP2_voda_wc_Count=\v.
Čiže je to z druhého ESP , názov zariadenia voda_wc, hodnota Count
V UDP monitore môžeme vidieť

Tento vstup môžeme priamo pripojiť na blok meranie spotreby vstup P.

10.3. Environment – DS18b20
Pridáme v devices nové zariadenie, vyberieme GPIO, systém rovno vyhľadá ID čipu, ktoré si vyberieme. Na jeden pin môžu byt pripojené viaceré senzory.
Zaškrtneme send to controler, a Interval, úplne stačí 10s.
Názov hodnoty si môžeme dole vo Values premenovať.

10.4. RFID – PN532

Čo ma potešilo, že ESPEasy podporuje tuto čítačku.
https://www.aliexpress.com/item/4000431022374.html?spm=a2g0o.productlist.0.0.7cd744a18IY8IV&algo_pvid=94c59cfc-38f5-486f-9fc8-7e7c5c54e0b9&algo_expid=94c59cfc-38f5-486f-9fc8-7e7c5c54e0b9-0&btsid=0be3764515914700350744702e8242&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_
Keďže bola v šaflíku a už dávnejšie som zvažoval ako ju k Loxone pripojiť tak som to vyskúšal.
Nečakal som, že to je až také jednoduché. Stačí pripojiť 4 dratý, Prepäť Dip switch na doske, nastaviť komunikáciu na I2C. Reset pin som nezapájal.
Vytvoriť ďalšie zariadenie a čítačka fungovala.
Potešil ma dosah, karta cca 7cm a prívesok cca 4cm.

10.5. Analog input – internal
Toto je vlastne vstup prečo som začal podrobnejšie skúmať ESPEasy.
Jeden člen fóra potreboval pripojiť senzor vlhkosti.
Ja som vstup použil na senzor osvitu, zase bol v sulfiku.
https://www.aliexpress.com/item/32571120284.html?spm=a2g0o.productlist.0.0.57e67c2dcPuUiN&algo_pvid=0426d79e-6e69-4a77-9cf6-bd89e922acb8&algo_expid=0426d79e-6e69-4a77-9cf6-bd89e922acb8-22&btsid=0ab6fa8115914704430434149e7f0a&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

Pozor treba kúpiť taký, ktorý ma AO, čiže 4 piny.

Výstup pripojený na A0 (čo je jediný analog input na doske WEMOS)

V devices vytvoriť zariadenie.

Kto chce si môže vyladiť kalibračne hodnoty, ja som to použil len na otestovanie analógového vstupu .
Zadal som v loxone korekciu

Výsledok za 24hodin v interiéri.

Popísane boli len senzory, ktoré mam odskúšane tu je zoznam čo všetko ESPEasy podporuje.
https://www.letscontrolit.com/wiki/index.php?title=Devices

10.6 Display NEXTION

HW zapojenie:
Napájanie 5V beriem priamo s pinov WEMOS D1.
TX priamo a RX tranzistor PNP (osobne som použil zo šaflíku BC307)

Moje upatlané zapojenie.

Vodiče som naspájkoval priamo na Display aby potom nezavadzali v krabičke.
Napájanie používam pri ladení Mikro USB nabíjačku.
V prevádzke potom používam DC/DC menič 24V /5V.

Príprava displeja:
Nebudem vypisovať podrobnosti, na Youtube je veľa náhodou, napríklad:


Spomeniem par veci, pre inspiráciu:
– ak mam viac stránok treba si prepäť vscope na global, aby sa po prepnutí stránky nenulovali
– pre prepnutie stránky treba zadať v Touch press event napr. page page1
– texty si v editore pre displej napĺňam XXXX aby som vedel, keď Loxone pošle dáta
– poslednú stranu si nechávam všeobecne par riadkov ,na tie si zobrazujem systémové veci , IP, Name, RSSI…
– pre zasielanie údajov o stlačení tlačidla (alebo komponenty) z displeja treba zaškrtnúť SendComponentID v Touch press event

Súbor do displeja nahrávam cez SD kartu, aby som nemusel odpájať ESP.
Vložím SD, pripojím napájanie ,po nahratí vyberiem SD a odpojím-pripojím napájanie.

Nastavenie EspEasy:
Nahráme FW podľa postupu hore. Mám aktuálne otestovane
ESP_Easy_mega_20201130_test_beta_ESP8266_4M1M
najnovšej verzii chyba checkbox SendControler.
Nastavíme záložku Controlers pre UDP, viz hore.
V Devices pridáme Nextion:

V Line 1 – 10 si môžete nastaviť čo ma EspEasy zasielať pravidelne na displej
Napr.
page2.t0.txt=”Name: %sysname%”   meno zariadenia
page2.t1.txt=”Rssi: %rssi%”                 signál
page2.t2.txt=”IP: %ip%”                       IP
page2.t3.txt=”Time: %systm_hm%”  čas
page2.t4.txt=”SSID: %ssid%”              SSID
page2.t5.txt=”Mac: %bssid%”             MAC

Po uložení môžete odskúšať zaslať dáta s prehliadača napr.
http://192.168.1.128/control?cmd=NEXT35,page0.t0.txt=”Lox”
Čiže na Displeji z názvom NEXT35, strane page0, objekte t0, sa zobrazí text “LOX”.

Loxone config smer LOXONE to NEXTION (http):
Pre zaslanie hodnôt vytvoríme Virtuálny výstup

a virtuálny príkaz , pre analógovú hodnotu (napríklad čas, teplota)

pre digitálny výstup (používam pre popisy)

Na to aby som zabezpečil pravidelne zasielanie popisov tak na ich vstup je privedený minútový impulz.
Pre zasielanie pravidelne analógovej hodnoty používam analógovú pamäť a zdroj impulzov.

Loxone config smer NEXTION to LOXONE (udp):

Vytvoríme Virtuálny UDP vstup s portom, ktorý sme nastavili v EspEasy Controlers

Po uložení do MS by malo byt vidieť po stlačení tlačidla v UDP monitore prichádzajúce správy
Na základe týchto si vytvoríme Virtuálny UDP príkaz

EspEasy neposiela texty, ktoré sa zadefinujú v Touch press event, zasiela len ID a hodnotu.
Stlačenie tlačidla rozlišujem len cez ID.

Jas je možné zmeniť
http://IP/control?cmd=NEXT35,dim=50
Osobne používam na 50%

Dúfam, že je to dobrá inspirácia a na fóre uvidíme fotky integrácii.

10.7 SENZOR CO2 S8 Senseair

HW pripojenie

Nastavenie EspEasy
V záložke Controlers nastaviť zasielanie UDP.
V devices nastaviť

V Loxone vytvoriť Virtuálny UDP vstup a virtuálny UDP príkaz

Senzor som kupoval z Ali za cca 23€ , vyzerá že ukazuje ok, porovnám ešte z meračom a dám info na fórum.

Postupne doplním, ktoré ďalšie budem mat odskúšane.

Za mňa ESPEasy is easy.

Dotazy poprosím na fórum, keďže v komentároch to je menej prehľadne.
https://www.vodnici.net/community/arduino-hw/esp-easy-diskuze-k-clanku/

Modbus RTU <–> Modbus TCP / UDP Gateway postavená na Arduinu

Modbus RTU <–> Modbus TCP / UDP Gateway postavená na Arduinu

K čemu to je?

Umožňuje připojit vaše Modbus zařízení (jako jsou senzory, elektroměry, HVAC zařízení) k Loxone (případně jiným systémmům jako Home Assistant, OpenHAB a další). Stačí Arduino s ethernet shieldem a levným modulem TTL na RS485! Nastavení vaší Arduino Modbus brány můžete snadno změnit přes webové rozhraní, vaše nastavení se automaticky uloží do EEPROM.

Brána je (více než) plnohodnotnou alternativou k Loxone Modbus Extension. Do Lox Configu ji vkládáte jako Síťové zařízení > Modbusserver. Jakmile ji máte jako Modbusserver v Lox Configu, tak přidávání samotných Modbus zařízení je úplně stejné jako u oficiální “Loxone Modbus Extension”.

Detailní popis, návod na sestavení brány (hardware a firmware), nastavení brány a integraci do Loxone najdete na Githubu:

https://github.com/budulinek/arduino-modbus-rtu-tcp-gateway

Arduino / LAN Shield UDP Gateway

Arduino / LAN Shield UDP Gateway

Ahoj, dal som dokopy navod ako pridat Arduino zariadenia do Loxone. Budem referovat na moj projekt “ovladanie zavlazovania v Skleniku” takze pripadne upravy, zmeny su uz na Vas, samozrejme pomozem ak budem vediet.

Zaklad ako taky je z tohto DE blogu  kde mozete najst aj ine fajn tipy.

Tu je zoznam komponentov co som pouzil:

  • Arduino UNO + Ethernet Shield
  • 5v Rele board x4
  • DHT22 senzor + RJ11 port na jednoduche odopnutie senzoru (meranie teploty/vhlkosti v  skleniku)
  • DHT11 senzor s LED (meranie teploty/vhlkosti v boxe)
  • Ultrazvukovy vodotesny senzor na meranie hladiny TENTO
  • 2x redukcia napatia 24v na XY v
  • 4 riadkovy display
  • PoE napajanie – sluzi na napajanie z DIN Zdroja cez LAN kabel ktory je natiahnuty v zahrade
  • gombik sluzi na zapnutie podsvietenia na Display (aby to zbytocne stale nesvietilo)
  • “samicove” porty na ovladanie zariadeni

Ventil ON/OFF – pre zavlazovanie vonkajsiej casti zahrady (samospad)

Ventil Sud – je tiez na samospad, ventil je z podlahoveho kurenia (Normally CLOSED) nabeh 5min

 

“Bol by som rad ak by mal niekto chut/cas upravit alebo pridat navod pre UDP Wifi Gateway pre Wemos D1” , nasiel som obdobne riesenie pre “Xiaomi GW” ale uprava na ine komponenty je momentalne nad moje sily.

 

Zdrojak je rozsirena verzia toho z DE + modifikacie na moje ucely. Niektore casti su s pomocou kamosa, sam by som to daval asi dlhsie dokopy 🙂

Zdrojak: Greenhouse3.86

 

Tu su foto ako to vyzera – dizajn jedinecny a funkcny – prezilo to 2 sezony, mam to vonku pri skleniku “pod mini strieskou” aby na to neprazilo.

V skleniku by som to cez leto asi upiekol.

 

Pridal som komenty aby to bolo jasnejsie co robi co, pripadne este v dalsich verziach doplnim.

Ako to rozbehat v loxone:

  1. Pridat do “Virtual Inputs” a dat rovnaky port ako v zdrojaku (cierne pozadie)
  2.  “Sender Address” nemusite uvadzat funguje aj bez toho

3. Pridat “Virtual Outputs”

4. Pridat adresu v tomto formate: /dev/udp/192.168.10.111/9000 – aby sedelo so zdrojakom

5. Pridat vstup “Teplota” ktory bude citat hodnoty z DHT22 senzora

6. Identifikator pre loxone je “T01” rovnako aj v zdrojaku

7. Pridat vystup “Ventil ON” a “OFF”

8. identifikator 022 a 023

9. priklad zapojenia v Loxone Config

10. Priklad ako na “ultrazvukove” cidlo

11. mam 250l sud co je 100% , nejako som to dal dokopy v Loxone Config kde som chcel merat spotrebu za minutu, problem ale bol ze ten Sud je priamo v skleniku, ked ho doplnim a sucasne je tam teplo tak sa to viko kde je senzor umiestneny rosi a potom to ukazuje nezmysli.

Dalsi problem je ze cidlo funguje az od 20cm, takze ked je sud plny uplne tak to tiez nefunguje, je to vlastne nedokoncene…

11. Priklad ako “poistit” ventil v zdrojaku Arduina proti zopnutiu oboch smerov

 

The END

 

Autor článku a projektu: killeriq

WiFi LED indikátor s hlasovým výstupem

WiFi LED indikátor s hlasovým výstupem

Úvod

Před časem jsem řešil problém s indikací jednotlivých stavů Loxone, kdy jsem nechtěl používat tablet nebo telefon pro zjišťování, zda je vše v pořádku, ale chtěl jsem využít optické signalizace pomocí LED s hlasovým výstupem. Z tohoto důvodu jsem zvolil LED indikátor, který je viditelný z větší vzdálenosti a je možno jej umístit ve více kopiích různě po domě. Protože byl dům stavěný bez záměru centrálního řízení a tedy bez kabeláže, je jediným řešením bezdrátový přenos. Vzhledem k tomu, že je po celém domě a okolí dostupný Wifi signál, zvolil jsem jako základ WiFi modul NodeMcu. Pro signalizaci RGB LED modul s procesorem WS2812 a pro zvukový výstup modul DFMiniMP3Player. Všechno z Aliexpressu.

WiFi NodeMcu

Parádní zařízení pro komunikaci přes WiFi s možností programování pomocí jazyka pro Arduino. Napájení je řešeno standardním 5 voltovým zdrojem pro mobilní telefony. Programování se provádí prostřednictvím USB portu, který lze namapovat ve vývojovém prostředí.

 

Odkaz na produkt www.aliexpress.com/NodeMcu

Odkaz na schéma zapojení produktu https://github.com/nodemcu/nodemcu-devkit

DF Mini MP3 Player

Snad nejjednodušší a nejmenší zařízení, co jsem našel pro přehrávání MP3. Výkon na výstupu sice nic moc, ale pro moje účely, kdy jsem v místnosti a je tam připojený reproduktor s výkonem až 3W, to bohatě stačí. Kdyby to někomu nestačilo, tak si to může samozřejmě napojit k nějakému pořádnému zesilovači a to, že vám přetekla vana, bude slyšet i u sousedů, kdy vám soused před noční přijde tu vodu zastavit. Nepoužívám vanu…nepotřebuji zesilovač.

Dokumentace DFPlayer

Odkaz na produkt www.aliexpress.com/DFPlayerMP3

RGB LED modul WS2812

Modul je řízen pomocí sériové linky, na kterou se vysílá hodnota každé barvy v packetu za sebou. Úžasné na tom je to, že je možno řadit více modulů za sebou a ty pak fungují tak, že si první modul zpracuje první packet pro sebe a zbytek pošle dál. Je tak možno řídit v řadě i několik desítek modulů za sebou. Tady jsem to ovšem nechtěl vymýšlet, protože bych to skládání na LoxoNe musel udělat v PicoC nebo to pak skládat do packetů v Arduinu a to se mi jednoduše nechtělo. Nakonec to ovládám tak, že je každý modul na samostatné lince a řídím je separátně.

Dokumentace WS2812

Odkaz na produkt www.aliexpress.com/WS2812B

Zapojení

Zapojení je vcelku jednoduché. Vše jsou v podstatě moduly s již napájenými stabilizátory a blokovacími kondenzátory, tak je stačí pouze poskládat za sebe a propojit. Jedinými třemi externími součástkami jsou dva odpory a fotoodpor, který slouží k úpravě svitu LED podle okolního osvětlení. Nachystal jsem si desku v Eagle, ale ještě jsem ji nezkoušel.

Schéma zapojení

V zapojení jsou tři konektory. Jeden na připojení LED, druhý na připojení reproduktoru a třetí rezervní, kdy se nepoužívá, ale mohl by být využitelný pro další připojené zařízení. Třeba LCD nebo relé s optickou závorou.

Deska

Deska je jednostranná. Pro domácí podmínky je to jednodušší na výrobu a vzhledem k počtu spojů dostačující.

Deska i schéma pro Eagle jsou v tomto souboru: WifiRGB5

Zapojení LED modulu

Je to trochu prodrátované, ale jinak to nešlo udělat. Nechápu, proč ty moduly neotočili o 90 stupňů. Pak by to bylo mnohem jednodušší.

Vývojové prostředí

Do vývojového prostředí Arduina je potřeba doinstalovat modul NodeMCU. Návod pro instalaci je zde.

Dále pak je potřeba doinstalovat knihovny:

ESP8266WiFi.h (https://github.com/ThingPulse/esp8266-weather-station )

Adafruit_NeoPixel.h ( https://github.com/adafruit/Adafruit_NeoPixel )

DFMiniMp3.h ( https://github.com/Makuna/DFMiniMp3 )

Ostatní knihovny by měly být ve standardu Arduina.

Program v Arduinu

V podstatě se nejedná o nic složitého. Program provede základní nastavení a čeká na příkazy z Loxone. Mezitím si na analogovém vstupu A0 měří intenzitu osvětlení a podle ní snižuje nebo zvyšuje intenzitu LED diod. Moc jsem se s tím programováním nezdržoval, takže je to napsáno tak, aby to fungovalo a jestli budete mít někdo čas a chuť, tak ho můžete samozřejmě předělat.

Zde je odkaz na program v Arduinu: WiFiRGB5 Arduino V2

Příkazy pro ovládání LED – intenzita

PříkazPočet znakůRozsahPopis
*LED4Příkaz pro zobrazení na LED diodě
111 - 5LED pozice. Textová hodnota.
S1Pouze SSet – nastav barvu.
010 - 255Hodnota červené barvy. Numerická hodnota.
010 - 255Hodnota zelené barvy. Numerická hodnota.
010 - 255Hodnota modré barvy. Numerická hodnota.
\r1CRUkončení řádku
\n1LFUkončení řádku

Příklad: *LED3S\x0F\x0F\x0F\r\n

Příkazy pro ovládání LED – blikání

PříkazPočet znakůRozsahPopis
*LED4Příkaz pro zobrazení na LED diodě
111 – 5LED pozice
B1Pouze BBlink – blikej
110 – 1Zapíná (1) a vypíná (0) blikání. Znaková hodnota.
\r1CRUkončení řádku
\n1LFUkončení řádku

Příklad: *LED3B1\r\n

Příkazy pro ovládání MP3 – výběr skladby

PříkazPočet znakůRozsahPopis
*MP34Přehraj soubor
111 - 255Přehraje /mp3/001.mp3. Numerická hodnota.
\r1CRUkončení řádku
\n1LFUkončení řádku

Příklad: *MP3\x01\r\n

Příkazy pro ovládání MP3 – hlasitost

PříkazPočet znakůRozsahPopis
*VOL4Nastav hlasitost
110 - 30Hlasitost. Numerická hodnota.
\r1CRUkončení řádku
\n1LFUkončení řádku

Příklad: *VOL\x0F\r\n

Programování v Loxone

Programování je také vcelku jednoduché. Jako první je potřeba přidat virtuální výstup. V mém případě WiFiMP3.

Pak je potřeba jej nastavit. Zde se zadá IP adresa a Port, které jsou přednastavené v programu pro NodeMCU. Používám pevnou IP adresu, aby případně nedošlo k její změně po výměně DHCP serveru.

Po nastavení je potřeba přidat virtuální příkazy pro ovládání jednotlivých LED. Tady se nastavuje RGB barva, kdy se jeden příkaz pošle při sepnutí výstupu (červená) a jeden při vypnutí (zelená). Doma to mám trochu složitější, kdy si na WiFi modul posílám jednou za minutu stav všech vstupů, aby po odpojení napětí z WiFi modulu došlo k zobrazení aktuálního stavu vstupů a nečekalo se, až dojde ke změně. Původně jsem to řešil v PicoC, ale z nějakého mi neznámého důvodu se odesílaly všechny výstupy na WiFi modul a to programování bez debugeru v PicoC mi taky vhání slzy do očí, tak jsem to udělal pomocí bloků v Loxone.

Příkaz pro ovládání MP3 přehrávače v Loxone. Zde je možno nastavit číslo skladby.

Příkaz pro ovládání hlasitosti v Loxone. V noci méně hlasitá, protože je od všech klid a přes den hlasitější, protože se děti hádají, žena po nich řve a do toho se vám Loxone snaží říct, že vám přetekla vana.

Zapojení v Loxonu pak může vypadat třeba takto:

Nejedná se o nic složitého, ale svou úlohu to plní a to je důležité. Prozatím to mám bez krabičky, kdy čekám na dlouhé zimní večery a z toho důvodu to mám zatím v pracovně na stole (esteticky to ženě zatím nesedí do konceptu), ale v nejbližší době to dodělám. Pro inspiraci přikládám pár informativních hlášek ze zařízení. Jsou vytvořeny v programu Acapela

DMX pomoci Arduino – nahrada za DMX extension

DMX pomoci Arduino – nahrada za DMX extension

udptesttool

EDIT: Misto “draheho” DMX shieldu lze pouzit modul MAX485, postup jsem doplnil na konci clanku.

Cely UDP DMX je podstate velice jednoduchy, staci koupit 3 veci a mit jen zakladni znalost arduina, tj jak nahrat Scratch.

1 – Arduino UNO / Leonardo

– mne se cinske klony moc neosvedcily, sahl jsem radeji po origo UNO popr Leonardu z CR.

2 – W5100 ETH Shield  ( https://www.aliexpress.com/item/Ethernet-Shield-W5100-R3-UNO-Mega-2560-1280-328-UNR-R3-only-W5100-Development-board/32616109835.html?spm=a2g0s.9042311.0.0.viN7Vc )

3 – DMX shield ( https://www.aliexpress.com/item/DMX-Shield-Expansion-board-module-Compatible-for-Arduino-1-0-for-DMX-Master-device-artwork-into/32841371527.html?spm=a2g0s.9042311.0.0.196MKn )

Cele to vypada takhle:

 

Dale stahnout Scratch pro Arudiono UDP DMX 

https://sourceforge.net/p/udptodmx/code/HEAD/tree/trunk/

z adresare  libraries prekopirovat(pripadne prehrat stavajici) DmxSimple do adresare s vasimi knihovnami.

Pro ty, kdo vidi arduino poprve, navod jak nahrat program je zde: http://navody.arduino-shop.cz/zaciname-s-arduinem/prvni-program.html , staci jen vybrat Vasi vyvojovou desku.

Z adresare source/DmxControl otevrit soubor DMXControl.ino, zmenit IP adresu a nahrat do UNO viz navod.

//STATIC IP, ignored if USE_DHCP is defined
uint8_t myip[4] = { 192, 168, 0, 11 };
const uint8_t mygw[4] = { 192, 168, 0, 1 };// ip of gateway
const uint8_t mymask[4] = { 255, 255, 255, 0 };// subnet mask

Tim je UDP DMX pripraven k pouziti, ted uz jen zalezi, zda mate DMX kabel, od vyroby je DMX prepnuty na posilani prikazu z konektoru(TX/RX  uart). Kdo nema, staci prehodit 2 jumpery na DMX shieldu, aby byly u TX/RX-io. Pak je ridici signal posilan z pinu 3(+) a 4(-) na DMX shieldu.

 

Nastaveni v Loxone config ( prevzato z https://sourceforge.net/p/udptodmx/code/HEAD/tree/trunk/ )

Prikaz:

DMXPww#xx#yy#zz

ww – cislo dmx kanalu

xx – jas ( nemusi byt od 0 do 100, u me napr funguje u bodovek 6-26, kde 6=vypnuto a 26=plny svit. Popsano vice v        https://sourceforge.net/p/udptodmx/code/HEAD/tree/trunk/docu/Protokoll.pdf )

yy – rychlost stmivani ( pokud se vynecha, rozsviti/zhasne hned)

zz – krivka stmivani ( vyzkouset komu se jaka vic hodi, u me je linearni, tedy “zz” vynechavam. Graf  https://sourceforge.net/p/udptodmx/code/HEAD/tree/trunk/docu/dimmkurve.jpg)

Takze napr: DMXP1#26#1

kanal 1, plny svit, jas ihned naplno, bez postupneho nabehu.

Dalsi informace najdete zas v https://sourceforge.net/p/udptodmx/code/HEAD/tree/trunk/docu/Protokoll.pdf

Snad jsem na nic nazapomnel, kdyztak se ozvete, poradim co budu vedet.

 

Vyzkouset lze bez pripojeni k loxone a to pres UDP Test Tool, odkaz  je https://sourceforge.net/p/udptodmx/code/HEAD/tree/trunk/docu/Protokoll.pdf

 

Pripojeni modulu MAX485, misto drazsiho DMX shieldu:

Misto DMX shieldu tedy vzit  https://www.aliexpress.com/item/MAX485-Module-RS-485-TTL-to-RS485-MAX485CSA-Converter-Module-For-Arduino-Integrated-Circuits-Products/32669600197.html?spm=a2g0s.9042311.0.0.rVGoNH

Pripojeni viz obrazek:

Program,prikazy atd zustava jinak stejne.

 

Nemcour vyviji  verzi s vlastni PCB deskou,2 modulovou na DIN, za kterou  predbezne borec pocita cca 100Ecek…

https://www.loxforum.com/forum/faqs-tutorials-howto-s/34948-g%C3%BCnstige-und-bessere-alternative-zur-dmx-extension/page9

(c) David 2018-04-05

Použití NFC po 1-Wire sběrnici (DS2401)

Použití NFC po 1-Wire sběrnici (DS2401)

Další zajímavý projekt postavený na Arduinu, který bych zde rád představil, integruje čtení NFC karet.

Zdrojové kódy

http://jirin.deso.cz/NFC_to_1-Wire/

Video tutoriál

Potřebný hardware

Pro výrobu toho modulu budete potřebovat Arduino, doporučuji Pro Mini či Nano kvůli velikosti (lze je bez problémů strčit do krabice).


Odkazy na zakoupení:
https://www.aliexpress.com/wholesale?SearchText=arduino+pro+mini+5v+atmega328
https://www.aliexpress.com/wholesale?SearchText=arduino+nano

Další důležitá věc je čtečka NFC karet, tento projekt je postaven na PN532:

Odkaz na Aliexpress: https://www.aliexpress.com/wholesale?SearchText=pn532

Zapojení

Arduino je potřeba s čtečkou propojit pomocí 6ti drátů.

  • VCC čtečky jde na 5 V Arduina
  • GND čtečky jde na GND Arduina
  • SS čtečky => pin D9 Arduina
  • MOSI čtečky => pin D10 Arduina
  • MISO čtečky => pin D11 Arduina
  • SCK čtečky => D12 Arduina

Čtečku je nutné přepnout do SPI módu pomocí malých přepínačů:

Dále jsou používány piny D4–D8, ale záleží na tom, jaké módy se rozhodnete používat (zmíněno níže). Zde je standardní stav, pokud jsou povoleny všechny módy a piny nejsou změněny:

  • D8 – 1-Wire výstup (připojit na 1-Wire extension)
  • D7 – pulzní výstup
  • D6 – načtena neznámá karta
  • D5 – načtena validní karta
  • D4 – čtečka je v učícím se režimu + notifikace o nově naučené kartě (připojit na notifikační diodu)

Módy, možnosti použití

Je možné využívat 4 různých módů, které lze libovolně kombinovat.

ONE_WIRE_MODE

Tento mód je víceméně primární, kvůli kterému byla aplikace původně vyvinuta. Pokud je povolen, tak se Arduino po načtení karty vydává za DS1990 / DS2401 1-Wire zařízení. Při použití Mifare Classic (4 byty) se vyplní byty 2 a 3 hodnotou 0x00, pro Mifare Ultralight (7 bytů) je nutné přeskočit jeden byte, takže se vynechá první. Simulované 1-Wire zařízení lze zachytit pomocí Loxone 1-W extension, ale třeba také i pomocí UDP 1-W gateway.

PULSE_MODE

Pokud je tento mód aktivován dochází k pulzu na pinu 7. Důvod proč byl uveden byl požadavek na identifikaci specifické čtečky (při použití více čteček).

DB_MODE

Pomocí tohoto módu si můžete do Arduina definovat svoje karty. Jsou využívány piny 5 a 6, kdy se podle toho, jestli je načtena známá či neznámá karta, pošle pulz na jeden z nich. Takto vydefinované karty lze pak použít v následujícím „učícím se“ módu jako tzv. master karty.

LEARNING_MODE

Tento mód je nutné provozovat s předchozím (DB_MODE). Funguje tak, že je možné Arduino učit nové karty, bez toho, aby bylo nutné pokaždé do modulu nahrát nový sketch s aktualizovaným seznamem karet. Postup učení je následující:

  1. Na čtečku se přiloží master karta (definovaná v DB_MODE)
  2. Po 10ti vteřinách se rozsvítí notifikační dioda (výstup D4)
  3. Během 60 sekund je nutné na čtečku přiložit novou kartu
  4. Dojde k trojbliku diody a v tento okamžik je karta uložena do EEPROM

Vzhledem k limitu velikosti EEPROM je maximální limit 100 karet.

Zapnutí / vypnutí módů

Logiku sketche lze jednoduše ovlivnit pomocí řádků:

#define ONE_WIRE_MODE
#define PULSE_MODE
#define DB_MODE
#define LEARNING_MODE

Pokud chcete použít kupříkladu jen 1-Wire móde upravte tyto řádky na:

#define ONE_WIRE_MODE
//#define PULSE_MODE
//#define DB_MODE
//#define LEARNING_MODE

Použití v Loxone

NFC karty se vydávají za běžné DS1990 / DS2401 1-Wire zařízení a podle toho s nimi i Loxone pracuje. Stačí aktivovat 1-Wire monitor, přiložit kartu a přidat si ji jako nové zařízení.

S pulzními výstupy pak lze pracovat jako s každým jiným digitálním vstupem v Loxonu.

Další vývoj

Do budoucna uvažuji o verzi s rolling codes (do EEPROM a kartu se budou zapisovat náhodná čísla, která musí odpovídat).

Dále se zde určitě objeví i velmi příbuzný projekt, který s systémy řízení přístupů také velmi souvisí – klávesnice, která se také bude vydávat za DS1990 / DS2401. Bude ji tak možné velmi jednoduše integrovat, třeba i v jednom projektu s touto NFC čtečkou.

Autor článku a projektu: Jiří Jaša, http://www.deso.cz

Arduino 1-Wire UDP Gateway – alternativa k Loxone 1-Wire Extension

Arduino 1-Wire UDP Gateway – alternativa k Loxone 1-Wire Extension

Rád bych se vámi podělil o další projekt, na kterém jsem v poslední době pracoval. Jedná se o Arduino sketch, který je schopen pracovat s DS18(B)2X, DS2401 a DS2438 senzory, číst z nich data a posílat je po UDP jako multicast či unicast. Mezi výhody toho řešení patří to, že je možné používat více 1-Wire sběrnic a předejít tak případným problémům s kabeláží apod. Dále je možné určité sběrnice priorizovat (ideální pro využití s iButtony či NFC).

Zdrojové kódy

http://jirin.deso.cz/1-Wire_UDP_Gateway/

Video tutoriál

Potřebný hardware

Pro jeho použití budete potřebovat Arduino UNO či MEGA a k tomu Ethernet shield – mám ozkoušený W5100, který funguje výborně a lze jej sehnat i v 802.3af verzi.

Arduino UNO s W5100

Odkazy na zakoupení:
https://www.aliexpress.com/wholesale?SearchText=arduino+uno+mega328p
https://www.aliexpress.com/wholesale?SearchText=arduino+mega+2560
https://www.aliexpress.com/wholesale?SearchText=arduino+uno+w5100

Zapojení

Pro každou 1-Wire sběrnici je bezpodmínečně nutné použít pull-up rezistory 4,7 kΩ a zapojení je následující:

Ještě přidávám pinout pro DS18B20 samotný:

Hlavně si nepoplést zem a napájení – nedopádá to úplně nejlépe.

Konfigurace 1-Wire sběrnic

Při nastavování lze vydefinovat libovolný počet sběrnic. U každé z nich lze také říct, jestli je prioritní nebo ne – prioritní jsou určené pro čtení iButtonů, kdy je potřeba okamžitá reakce.

Základní nastavení (použita pouze sběrnice na pinu D5 a není prioritní):

ONE_WIRE_BUS ONE_WIRE_BUSES[] = {{5, false},
                                 //{6, false},
                                 //{7, false},
                                 //{8, false},
                                 //{9, false},
};

Pokud chcete ale použít sběrnic více, stačí řádky odkomentovat případně si přidat další. Kupříkladu:

ONE_WIRE_BUS ONE_WIRE_BUSES[] = {{5, false},
                                 {6, false},
                                 {7, false},
                                 {8, false},
                                 {9, true},
};

Kdy je port na pinu D9 prioritní, takže na něm mám třeba čtečku, D5–D8 jsou pak další obyčejné sběrnice.

A jako poslední poznámka, není možné používat piny D4, D10, D11, D12 a D13 jelikož je využívá W5100 (Ethernet shield).

Získávání dat v Loxone

Loxone dostává pakety ve tvaru:
DS2401 – „1W 01000065A43BBE67
DS18(B)2X – „1W 2861641273EA057D TEMP 24187“
DS2438 – „1W 26CABA16020000BD TEMP 23656 VAD 2220 VDD 4700 VSENS 250“
Všechny teploty a voltáže jsou posílány jako celá čísla, která vznikla násobením původní hodnoty číslem 1000.

Dále je možné se potkat s pakety:
1W 28616412704EF007 ERROR“
1W 2861641273E55AFF DETECTED“
Tyto jsou posílány v případě chyby či detekce nového 1-Wire zařízení.

V Loxone je potřeba vytvořit digitální UDP vstup pro daný port:

Dále je nutné vytvořit příkaz pro každé 1-Wire zařízení.

Pro DS2401 je to digitální vstup:

Pro DS18(B)2X je to analogový vstup a je nutné použít korekci (vstupní hodnota 2: „1000“, zobrazená hodnota 2: „1“):

A v případě DS2438 je nutné vytvořit 4 analogové virtuální vstupy, stejně jako v předchozím případě je nutné použít korekci („1000“ => „1“):

Pro instalaci do rozvaděče doporučuji sehnat uchycení na DIN lištu, něco ve stylu:

Autor článku a projektu: Jiří Jaša, http://www.deso.cz