Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Mirek Prýmek

Stran: 1 ... 112 113 [114] 115 116 ... 618
1696
Sítě / Re:UDP komunikace: Raspberry <-> Arduino
« kdy: 21. 06. 2018, 16:09:05 »
reagovat se dá různě, třeba dotazem na všechny stavy
No a to je právě ten "reset komunikace", co jsem psal výš.

Navíc persistenci to taky vyžaduje, protože klient i server si musí pamatovat 1) které atributy už poslal 2) jaké má aktuální sekvenční číslo.

Na serveru to nebývá problém, ale na klientovi může být. Třeba takové ESP8266-01 si neumí nic zapamatovat po deep sleepu, takže jakékoliv udržování stavu je opruz. ESP32 už si umí pamatovat v RTC SLOW MEM, takže tam by to problém nebyl.

Něco jako:
Aha, takže to myslíš tak, že vynecháváš opakované atributy u hodnot? Jasný, to je určitě dobrá cesta. A ještě lepší je nedávat tam metadata vůbec ;)

1697
Sítě / Re:UDP komunikace: Raspberry <-> Arduino
« kdy: 21. 06. 2018, 15:11:57 »
záleží čeho potřebujete dosáhnout (to je jasné) - jaké spolehlivosti
co jste napsal vyznělo jako obava o nedetekování ztráty zpráv(y)
No nejlepší je to prostě nepotřebovat. Jakmile zavedu stavový protokol, tak to začnu potřebovat. A pak mám i ty další důsledky. Takže jsem chtěl říct, že stojí za zvážení, jestli to, kvůli čemu jsem zaváděl ten stavový protokol, stojí za ty důsledky.

no a ten uvedený postup nepotřebuje ani potvrzování ani znovunavázání komunikace a persistenci taky ne
A jak by to mělo fungovat? Mám atributy A,B,C, v první zprávě pošlu A, ve druhé B (ta se ztratí) a ve třetí posílám C. Přijímač přijme třetí zprávu,  zdetekuje, že mu druhá chybí - a udělá co? Musí mě o tom informovat. A ten informační paket se taky může ztratit... At least once delivery se přece bez nějakého druhu potvrzování implementovat nedá.

1698
Sítě / Re:UDP komunikace: Raspberry <-> Arduino
« kdy: 21. 06. 2018, 14:16:40 »
klasické řešení je v každé zprávě přenášet čítač a na straně přijímače kontrola jestli v každé následující zprávě roste o jedničku (modulo), minimum je jeden bit, použije se tolik bitů kolik si můžete dovolit
Jasně, jenže to už právě přináší netriviální režii: potvrzování doručení nebo restart komunikace, případně i potřebu nějaké persistence...

U těch jednoduchých bateriových sensorů se většinou vyplatí použít co nejjednodušší komunikaci, ideálně i přijmout nějaké ty ztráty atd. Komplexní komunikační protokol nestojí za to, aby to místo roku vydrželo na baterku měsíc...

1699
Sítě / Re:UDP komunikace: Raspberry <-> Arduino
« kdy: 21. 06. 2018, 12:11:13 »
Přesně tak, na rádiu používám MQTT-SN a předdefinované topiky.
Respektive teda ne předdefinvoané, ale registrované (zprávy REGISTER a REGACK). Předdefinované jsou trochu těžkopádné, protože musí být hardwired na obou koncích...

BTW, když jsme u toho, jakou máte zkušenost s mqtt-sn brokery? Já ještě pořád používám RSMB (fork https://github.com/MichalFoksa/rsmb.git s podporou forwarder encapsulation, která je na gatewayi superpraktická) a funguje to, ale moc spokojenej s ním teda nejsem, občas má tendenci se dostat do stavů, ze kterých se neumí vymotat i když by mohl...

1700
Sítě / Re:UDP komunikace: Raspberry <-> Arduino
« kdy: 21. 06. 2018, 11:57:11 »
Co se kódování topiců týče, předpokládám, že nepřenášíte celé stringy vzduchem (MQTT-SN třeba umí předdefinované).
Přesně tak, na rádiu používám MQTT-SN a předdefinované topiky. Posílat topic jako string v každé zprávě by bylo zoufalé plýtvání a někdy by to ani moc nešlo (např. http://zkemble.github.io/nRF905/n_r_f905_8h.html#a8fb4745dd928b0021fd7ad49b558cfe2 )

ISM má v některých pásmech omezení na duty-cycle (1%, 0,1%), takže zprávy musí být časově co nejkratší.
I kvůli baterce se hodí být co nejúspornější...

proto jsem rád za každý zdroj inspirace.
Já taky. Je hezké zjistit, že někdo nezávisle přišel na stejné řešení a ještě lepší je vidět, že vymyslel něco lepčího :)

Já třeba v tuto chvíli uvažuji nad protokolem se stavovým automatem (něco jako dělá třeba OpenGL). Tj typ a modifikátory se nastaví jednou a pak se už jen posílají data, případně změny. Ale musím vyzkoušet, jak se s tím bude pracovat. Cílem je úzkopásmový rádiový protokol s krátkými pakety, odolností proti chybám (CRC, FEC, interleaving, vyvážení 0/1) a tím i delším dosahem a menší spotřebou.
To je rozhodně inspirativní nápad. Akorát to chce hodně dobře pohlídat, aby se ta informace neztratila, páč to by se to pak celý nepěkně rozbilo...

Já používám něco podobného, ale v opačném směru - pro konfiguraci sensorů, tj. od gatewaye k sensoru. Používám retained mqtt zprávy, takže sensor má "zadarmo" persistentní storage konfigurace a pracuje se s tím nádherně.

Např. teď jsem do jednoho sensoru implementoval možnost nastavení periody vysílání úplně jednoduše:
Kód: [Vybrat]
$ mosquitto_pub -t 'sensors/NODE_ID/cfg/meas_freq' -m 180 -r
To samý používám i pro persistenci těch překládacích map phys->log pro NodeRed (existuje sice node-red-contrib-persist, ale proč nepoužít stejnej mechanismus a neusnadnit si život? :) )

1701
Sítě / Re:UDP komunikace: Raspberry <-> Arduino
« kdy: 20. 06. 2018, 23:27:34 »
doporučuju juknout na normu IEC61850 resp. komunikační protokoly, které definuje (hlavně ten na bázi MMS), modelování/pojmenovávání řeší dost do hloubky, pro účely normálních smrtelníků by to byl overkill, ale jako inspirace je může být zajímavé
Přiznám se, že od té doby, co jsem relativně detailně studoval EEBus jsem nad těmahle meganormama zlomil hůl. Člověk se týden vůbec snaží zorientovat v té záplavě dokumentů, druhej týden studuje ten dokument, kterej se jedinej týká toho, o co mu fakt jde, následně zjistí, že pro jeho účely je použitelná jenom jedna tabulka s dvaceti položkama a ta ještě stejně nepokrývá všechno, co by potřeboval, takže by si beztak musel zavést nějaké uživatelské atributy, což je složitý jak autobus :)

Jo, kdybysme se bavili o něčem konkrétním, někdo řekl "nevím, jak popsat měření elektřiny" a někdo doporučil "hele, koukni se na tuhle tabulku na straně 24, to je hezkej výčet", tak to jo. Ale jinak do toho fakt nejdu, je to pro tohle naše domácí hraní si nesmyslný overkill...

1702
Sítě / Re:UDP komunikace: Raspberry <-> Arduino
« kdy: 20. 06. 2018, 22:23:25 »
Tohle by mě opravdu zajímalo. I slepé uličky :)
Zkusím teda aspoň naťuknout, jak o tom uvažuju já. Pokud bude mít někdo jinou zkušenost, bude jedině super je porovnat a pokecat si o tom :) Možná vám to bude připadat triviální, jasně, však na nobelovku to není :) Budu psát ve zkratce, snad to bude srozumitelný.

Celkem asi zjevný je, že člověk v tom modelu musí mít nějaká zařízení (konkrétní "krabička", uzel sítě) na která jsou napojeny nějaké sensory a nějaké aktuátory. Pokud zpracování dat má být nějak sjednocené, pak se dá předpokládat, že data chodí do nějakých oddělených topiků (kanálů, http endpointů, to je jedno). Pro jednoduchost budu předpokládat, že topiky jsou identifikované stringy (v MQTT to tak i je a v HTTP může být).

Dejme tomu, že člověk má třeba krabičku měřící teplotu a vlhkost. První věc, co ho napadne, je pojmenovat si zařízení třeba "kuchyň" a data posílat na topiky "kuchyn/teplota" a "kuchyn/vlhkost" podle schematu ZARIZENI/MERENI. Na první jednoduché pokusy je to super, ale imho je to slepá ulička, protože člověk rychle narazí. Např. krabička je nějaká nestabilní a člověk si z ní chce začít posílat uptime. Ok, takže topic kuchyn/uptime. Fakt? Kuchyn ma uptime? :)

Nebo ho napadne, ze by chtel krabicku prenaset. Jenze topic je v ni napevno. Takze s kazdym prenesenim preflashovat? Hm, dost opruz.

Takže na základě tohodle foukání kouře do vody jsem dospěl k názoru, že nejlepší model je rozlišovat fyzické ID a logické ID a mapovat mezi nima na backendu, kde se mapování dá snadno měnit. Je to podobný jako MAC adresa <-> IP adresa.

Takže krabička má nějaké nevýznamové ID (12345) a data posílá třeba na topiky "12345/teplota", "12345/vlhkost" a "12345/uptime" (což už dává lepší smysl). Na backendu pak chceme mapovat:

1. meření, která se týkají krabičky, na nějaké ID krabičky (klidně to může být to samé co fyzické)
2. ostatní měření mapovat pomocí mapy id_krabicky -> lokace

Takže pak mám třeba mapu

let physLocMap = {
 '12345': 'kuchyn',
}

a po mapování dostávám data do nových "logických" topiků takhle:

kuchyn/temp <- 25
kuchyn/vlhkost <- 75
12345/uptime <- 24


...no a tohle je jenom taková jedna hloupost. Podobné kapitoly pak jsou ještě třeba:

1. jak označovat vícenásobná měření (třeba krabička měří tři teploty a umí ovládat dva ventily) - buď můžu použít jenom indexy podle typu měření/aktuátoru: temp1, temp2, temp3, valve1, valve2. Anebo můžu mít nějaké "porty", které sdružují funkce - tj. port1/temp, port1/valve. To se může hodit, protože pak vím, že port1/valve zavírá tu trubku, jejíž teplota je port1/temp.

2. Úplná věda je jak označovat význam měření. Podle mě na to žádná stříbrná kulka není. Ze začátku vám třeba přijde úplně jednoznačný označit měření jako "výkon" - dokud nezačnete měřit činný a jalový :) Pak zkusíte třeba OBIS kódy. Ale zas začnete chtít měřit něco, co nepokrývají (aktuální cena Bitcoinu ;) )

3. chci, aby zařízení posílala s daty i nějaká metadata, nebo je budu mít autoritativně na backendu? Tj. zařízení může posílat jenom třeba "25.4,62,346" a na backendu mám záznam, že je to sensor veličin X,Y,Z. Nebo může krabička posílat něco ve stylu "{temp: 25.4,  hum: 62, uptime: 346}" Oboje má svoje pro a proti.

4-n různé další zapeklitosti zajímavé intelektuální výzvy ;)

Abych to moc nenatahoval, prozatím jsem dospěl k tomu, že když chce člověk model, který opravdu dobře pokrývá prakticky jakýkoli use case, chce to minimálně tyhle atributy (pro sensory, obdobně pro aktuátory):

1. kdo - identifikace subjektu měření (jaké zařízení to naměřilo)
2. koho - objekt měření ("koho měřím")
3. co - veličina, kterou měřím
4. naměřená hodnota
5. jednotka

...přičemž minimálně 1 a 2 neškodí mít hierarchizovatelné (např. kdo="wifi_nody:esp_1", koho="mistnosti:kuchyn"). Když cokoli z 1-5 chybí, existuje use-case, kterej je pak opruz pokrývat.

---
Takže tak no, jako taková malá ilustrace, že se fakt vyplatí nad tím datovým modelem trochu předem podumat, než to tam člověk nafláká :) Snad to někomu pro nějakou inspiraci poslouží...

Ale zas na druhou stranu se s tím taky člověk nesmí úplně mořit, protože úplně stopro dobře to imho snad ani vymyslet nejde a vždycky člověk až v praxi narazí na use case, se kterým nepočítal. Takže nepřemýšlet zas moc dlouho, aby se člověk vůbec k tomu hraní si s tím dostal :)

1703
Sítě / Re:UDP komunikace: Raspberry <-> Arduino
« kdy: 20. 06. 2018, 13:33:17 »
clanek pro root?!
takovy rozcestnik co ano, co ne.
co je kdy lepsi, co je jindy lepsi, ruzne technologie.
Mno... Spíš než na článek by to bylo na pořádný seriál :) Ale minimálně co se týče hw nejsem profík ale nadšený amatér, takže moje zkušenosti jsou typu "X se mi nepodařilo uspokojivě rozjet, přesnou příčinu jsem nezjistil, ale když jsem přešel na Y, bylo to lusknutím prstu". Takže pokud bych se někdy dokopal k tomu, nějak ty zkušenosti shrnout, bylo by to spíš na blog než na seriál na Root, který by někdo nedejmatkopřírodo mohl brát vážně ;)

Tohle by mě opravdu zajímalo. I slepé uličky :) Ten myšlenkový proces za návrhem protokolů je totiž strašně důležitou informací pro pochopení těch rozhodnutí a nikde se moc neučí ani nepopisuje.
Ok, zkusím něco napsat, ale asi až odpoledne/večer.

1704
Sítě / Re:UDP komunikace: Raspberry <-> Arduino
« kdy: 20. 06. 2018, 09:55:03 »
Souhlas. Nevim, jak presne funguje ethernet shield u Arduina, ale z principu bych se drzel UDP. TCP je oproti tomu ukrutny monstrum.
Wiznet má TCP stack v hw, takže tohle neřešíš. ENC28J60 iirc hw IP nemá, proto je lepší ho nepoužívat.

1705
Sítě / Re:UDP komunikace: Raspberry <-> Arduino
« kdy: 20. 06. 2018, 09:03:19 »
Čau, s domácími sensory si hraju už několik let a částečně mě to živí, takže už jsem si vyzkoušel všelijaké slepé i neslepé cesty :) Kvituju záměr si hrát právě s tímhle, protože je to fakt zábava a člověk si vyzkouší širokou paletu technologií (od hw a komunikace přes backend sw až k webu).

K tvýmu dotazu: na tyhle otázky nebývá jedna správná odpověď, protože záleží na tom, 1) o co ti vlastně jde (s čím si chceš primárně hrát a s čím spíš nechceš ztrácet čas) 2) jak máš ten systém rozmyšlený, co všechno má umět a jaké má mít parametry, např. spolehlivost.

Jenom takových pár podnětů, jak to vidím já. Nic z toho není dogma, všechno si zaslouží diskusi:

  • drátové připojení tě dřív nebo později začne limitovat a prudit - zvlášť pokud je to ethernet (zaváděj si doma strukturku pro dvacet sensorů po celým baráku... nechceš). Ethernet je nejkomplikovanější a nejdražší. Když už drát, tak existují lepší alternativy (RS485, onewire, ...)
  • možností bezdrátového spojení je hodně - od nejjednoduššího 433MHz/ASK až po wifi
  • různé způsoby komunikace mají různé limity, ale u žádného z nich (kromě wifi) nechceš používat IP. Bezdrát vždycky znamená nějak chytře zakódovat zprávu do několika málo bajtů
  • další obrovskou limitací je baterka (problematika low power je příběh sám o sobě)
  • nakonec teda pravděpodobně skončíš u nějaké gatewaye, která umí víc způsobů komunikace, nějak ji sjednocuje a jednotně zpracovává
  • pokud tě to v téhle fázi už nezajímá (chceš si hrát jenom s hw), tak je fakt dobrý použít existující věci, třeba ten Domoticz, Openenergymonitor, ... je jich docela hodně
  • pokud tě zajímá i tohle, tak na téhle úrovni bych hodně doporučoval stack mqtt+NodeRed+InfluxDB+{Chronograf|Grafana} - rozjede se to snadno, funguje to skvěle, dává ti to velkou volnost a je to uživatelsky velice příjemný řešení
  • velice dobře si rozmysli strukturu dat (atributy, číselníky, sémantiku) - to je naprosto klíčová věc, rozlezlá po celém systému a když ji navrhneš blbě, dá hodně (otravné) práce ji pak změnit. Na první pokus, bez zkušenosti, se to prakticky nedá navrhnout dobře. Pokud chceš, můžu krátce napsat nějaký zkušenosti.

1706
Nicméně mi to připomnělo...

:)

1707
obrazky “zakazniku” ze shutterstock... https://www.tineye.com/search/86b5e1ed5f4ee1e40e3dd94bf825ed80dee94873/ a
To by si zasloužilo beze srandy flastr za klamavou reklamu.

1708
Dobrý den, váš dotaz je sice staršího data, ale odpovídám pro případ, že by někdo řešil podobný problém a zabrousil do diskuze. Jsme startup v oblasti IoT ZOOCO a nabízíme licence pro připojení k Sigfox sít (v libovolném množství).

Konečná cena se liší dle počtu odesílaných zpráv, ale obecně se tarif platí na jeden rok. Spolu s licencí poskytujeme i přístup do aplikace, ve které můžete data o zařízení snadno spravovat. Pokud byste měli dotazy, napište na info@zooco.io a rádi vám ať už s licencí či informacemi o Sigfox síti poradíme.

https://www.zooco.io/licence/
Takze nejlevnejsi tarif umoznuje jenom 2 zpravy denne a jedna zprava prijde na cca 0.25Kc. To neni zrovna levny. A SigFox rozhodne neni "nejmodernejsi" sit.

1709
Když jsem na začátku zjišťoval jaké jsou možnosti, tak bohužel o komerčních LoRa jsem se nedozvěděl prakticky nic, cenu ani pokrytí. U SigFoxu to bylo lepší, ale tam mě hned odradila cena modulů.
Zajímavou alternativou je The Things Network (komunitní LoRa síť). Bohužel v ČR má oproti komerčním sítím slabší pokrytí.

1710
Díky všem za příspěvky.

Já jsem si už jedním semestrem a necelou polovinou druhého prošel přímo na matematice na přírodovědecké fakultě a bavilo mě to, tak bych se toho rád držel co nejvíc a dělal něco zajímavého právě s matematikou a nejen tou aplikovanou, takže proto tyto dva obory. Na FI MUNI mě láká víc čistě matematických předmětů (ovšem ty základní - Lineární modely B, Diferenciální a integrální počet B, Spojité modely a statistika B, Diskrétní matematika B - mne odrazují kvůli ne tak striktnímu syllabu, který většinou obsahuje vždy nějaký mix matematických disciplín a není to čistě analýza, lineární algebra atd. jako na OI), ale OI celkově na mne působí lépe, prestižněji, jsou tam špičky v oboru, obzvlášť v oblasti Umělé inteligence, kde je jejich magisterský obor fakt pěkný. Ale jsou to takové subjektivní pocity, s programováním jsem se nikdy moc nesetkal, jen s matematikou.
A jakou máš vlastně motivaci jít na informatiku, jestli je pro tebe úroveň matiky hlavní kritérium? Jestli pak není lepší zůstat přímo na té matice. Matika na IT fakultách bude vždycky o řád horší, protože je tam prostě hafo jiné látky, která se musí probrat...

Pokud ti jde o zaměstnatelnost (která u čistého matematika není úplně slavná), nestálo by za zvážení si to "praktické informatické minimum" doplnit pár předměty z informatiky + samostudiem a praxí?

Stran: 1 ... 112 113 [114] 115 116 ... 618