Více zařízení v síti a komunikace


Alda
Příspěvky: 12
Registrován: 16 kvě 2020, 07:23
Reputation: 0

Re: Více zařízení v síti a komunikace

Příspěvek od Alda » 25 kvě 2020, 10:00

Díky. Taky možnost. Nejdřív opravdu musím vymyslet vlastní protokol a systém komunikace, abych ho implementoval do všech arduino zařízení.
Zatím mi připadá jako nejlepší, aby se zařízení "registrovalo". Při registraci předá informace o sobě a zpět obdrží potvrzení registrace. Pak už bude jen posílat aktuální data. No a teď přemýšlím nad protokolem. Rozhodně musím při registraci předat tyto informace : Co jsem zač a kde se nacházím, Co snímám, co mohu ovládat, jaké mám limity, jestli data posílám automaticky sám nebo na vyžádání....

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Více zařízení v síti a komunikace

Příspěvek od KamilV » 25 kvě 2020, 10:23

Já bych se nesnažil udělat to tak moc otevřené, později se z toho zblázníš.
Máš zařízení několika typů a webová aplikace je může dopředu znát. Při "registraci" zařízení už pak stačí poslat jen nějaké ID zařízení a jeho Typ.
Pokud bude typ např. "rele1ch", webová aplikace ví, že je to jednokanálové relé, že má vstupní pin LOW, HIGH, výstup žádný.
Pokud bude typ "rele8ch", tak je 8 vstupů LOW, HIGH, výstup žádný.
Pokud je typ "teplomer", tak je vstup žádný, výstup teplota a případně vlhkost.

Když vyrobíš nové zařízení, jen si rozšíříš ve webové aplikaci číselník těchto typů. Každý typ navíc budeš chtít i jinak ovládat (jiné GUI), takže ta obecnost by stejně dostala na frak.

Zda se data posílají na vyžádání nebo sama si myslím, že vědět nepotřebuješ. Webové API musí umět je kdykoliv přijmout.

Ad protokol: asi bych nevymýšlel kolo a sáhl po něčem, co se už roky používá, je to odladěné, standardizované a prostě to funguje. XML nebo JSON...

Alda
Příspěvky: 12
Registrován: 16 kvě 2020, 07:23
Reputation: 0

Re: Více zařízení v síti a komunikace

Příspěvek od Alda » 25 kvě 2020, 11:05

No pro začátek si říkám by to mohlo být takto :
arduino zařízení bude posílat na stránku data_php informace : regulátor/kotelna/cidlo_teploty/24/cidlo_vlhkosti/65/cidlo_vetru/5
php to dá do MYSQL :
1.regulátor/kotelna datum a čas cidlo teploty 24
2.regulátor/kotelna datum a čas cidlo vlhkosti 65
3.regulátor/kotelna datum a čas cidlo vetru 5
když bude další zařízení tak bude třeba zasílat: snimac teploty/půda/cidlo teploty/60
a php to dá jako další řádek :
4.snimac teploty/půda datum a čas cidlo teploty 60
atd....
no a výstupy by mohla zařízení posílat na stránku třeba vystupy.php a informaci : regulátor/kotelna/rele cerpadlo/0/rele svetlo/1
na a v MYSQL by to bylo :
1.regulátor/kotelna datum a čas rele cerpadlo 0
2.regulátor/kotelna datum a čas rele svetlo 1
Tady by možná ani nemusela databáze přidávat řádky, ale pouze přepisovat aby se dal zobrazit aktuální stav
Jaké jsou nejlepší oddělovací znaky pro PHP ?

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Více zařízení v síti a komunikace

Příspěvek od KamilV » 25 kvě 2020, 15:46

Jaký je důvod, aby URL simulovala adresářovou strukturu? (cidlo_teploty/24/cidlo_vlhkosti/65)
Proč to nepředáš rovnou jako GET parametr: data_php.php?cidlo_teploty=24&cidlo_vlhkosti=65
?

Odpadne tím otázka "jaký je nejlepší oddělovač v php?" Odpadne tím nutnost nějak tu URL parsovat.
Vím, že někdy je nutné vymyslet vlastní protokol, ale zrovna u IoT bych prostě využil HTTP tak jak je. Jednak nic lepšího nevymyslíš a také si ušetříš hromadu práce...

Alda
Příspěvky: 12
Registrován: 16 kvě 2020, 07:23
Reputation: 0

Re: Více zařízení v síti a komunikace

Příspěvek od Alda » 25 kvě 2020, 15:51

to máš pravdu. Určitě to je jednoduché. Předám to jak píšeš

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti