Re: ultrazvukové čidlo HC-SR04
To jsem pak zkoušel a nic.
:-(
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz
Network Monitoring System - SDS - Síťový Dohledový Systém
Nejste přihlášen. Přihlaste se, nebo se zaregistrujte.
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz » SDS periferie » ultrazvukové čidlo HC-SR04
Chcete-li přispívat, musíte se přihlásit nebo projít procesem registrace.
To jsem pak zkoušel a nic.
:-(
Tohle je už více než spíše škola programování
Pokud tedy client.print neumí brát parametry tak jako třeba printf(), ale jen jediný text jak svůj jediný parametr, tak to stále lze řešit.
// co
int h1;
// pamet
char text[128]; // tohle je potreba spravne nastavit - ne malo, ne moc
// cely HTTP GET vcetne ukonceni hlavicky
snprintf((char *)text, 128, "GET /sdscep?p=6&sys140=%d HTTP/1.1\r\nHost: 192.168.1.49\r\n\r\n", h1);
// poslat cele v jedinem TCP paketu
client.print((char *)text);
Hotovo.
Tedy pokud existuje ve vašem prostředí funkce snprintf(). Ale to já už těžko vyřeším . . .
Hele tohle už funguje! Aspoň podle prvních hodnot :-) Arduino odeslalo tak 15 hodnot a SDS to zobrazilo bez chyb v sys140.
Díky. :-)
Ale je zajímavé, že SDS všechny ty GET ignorovalo, ale PHP script to vzal.
Takže posílám zatím data z čidla vlhkosti DHT22 a atmosférického tlaku BMP 180:
int vlhkost = (dht.readHumidity()*100); // x100
int tlak = (bmp.readPressure()/100);
........
snprintf((char *)text, 128, "GET /sdscep?p=6&sys140=%d%d HTTP/1.1\r\nHost: 192.168.1.10\r\n\r\n", vlhkost, tlak);
Data se pošlou z arduina do SDS sys140 ve formátu: 6330990 (kde vlhkost je 63,30% a tlak je 990hPa).
Data ze sys140 pošle SDS na PHP soubor a teprve tam je rozděluji:
$raw_udaje["t"] = htmlspecialchars($_GET['t'], ENT_QUOTES, "UTF-8");
.........
$t = $raw_udaje["t"]; // načte hodnotu ze sys140
$vlhkost100=substr($t, 0, 4); // vezme první 4 čísla ze sys140
$tlak100=substr($t, 4); // vezme zbytek čísel od 5. čísla až po konec
$vlhkost = ($vlhkost100)/100; // dělění vlhkosti
$tlak = $tlak100; //tlak v hP
Následně je ukádám do DB.
Stejným způsobem by šlo zpracovat i to ultazvukové čidlo. Mám ho taky, ale ještě jsem ho netestoval.
Teď řeším jak do tohoto řetězce vložit rychlost větru a srážky. Vlhkost je totiž "pevná" XXXX, ale tlak je možný od YYY do YYYY. To stejné by bylo i u rychlosti a srážek.
SIDBINe díky za prošlapání cestičky :-) Včera mi dorazilo NODEMCU tajk to zkusím ultrazvukové čidlo propojit se SDS pomocí http_get přes wifi - stále jsem se nedokopal k tomu abych natáhl dráty od SDS k místu umístění čidla a použil jiný způsob komunikace.
ADAMNe můžete prosím alespoň naznačit jaký čip je použit v SDS Micro - alespoň rámcově frekvence, ram,..? Jde mi o to, že pokud budu na SDS napojovat Arduina či NODEMCU jak balancovat rozdělení aplikací - např. zda web server na SDS nebo raději jinde,....
Hlavně nám pomohl adamn, tomu děkujme :-)
Já mám doma jen ESP8266 ESP-01 co je na tom NODEMCU. Koupil jsem to na test, když to sojí 60Kč.
Rychle jsem zkoukl i to NODEMCU a za 150Kč to nevypadá zle, Je to ESP-07 s elektronikou a převodníkem navíc.
U toho odeslání více hodnot do sys140 pozor na to, když nastane nějaká chyba (např. porucha senzoru) Proto raděj možná odeslat chybovou hodnotu ve stejné délce (např. 66,50% = 6650, chybová hodnota bude 0000). Ten PHP script by to potom jinak celé rozhodil když by dostal nižší hodnotu, např jen jednu nulu.
Ten php sccript nepozná co je co, jen počítá znaky. Rozdělit by to šlo určitě i v SDS a odeslat pak skrze RAM.
To NODEMCU mě vyšlo levněji než ethernet rozšíření pro Arduino, které navíc nedorazilo. Zároveň mi dorazily dva kousky od různých dodavatelů - dražší Lolin od Werco s přidávnou deskou s knektory a zdrojem a nejlevnější od Amica či Arnica. Každá má jiný USB ovladač. Ta první fungovala hned bez problémů a Werco má i "extensiom" do Arduina IDE se spoustou užitečných příkladů (takže lze programovat stejně jako Arduino a netřeba se učit interpreter LUA) tak ta druhá bude potřebovat asi přeflashovat.
Jen nerozumím tomu proč vůbec data běhají do SDS když se v něm nezpracovávají a hned tečou dál ...
U těch ovladačů předpokládám, že jde o problém s CH340, na které přešly všechny tyto levnejší věci s převodníky (je to i adruino klonů).
Tak DHT22 a BMP180 mám zatím položeny na stole a testuji dobu běhu. Zatím se to neseklo.
Mám to i kvůli zápisu do jedné DB ve stejný čas. Ta jedna zabraná sys nevadí.
ADAMNe můžete prosím alespoň naznačit jaký čip je použit v SDS Micro - alespoň rámcově frekvence, ram,..? Jde mi o to, že pokud budu na SDS napojovat Arduina či NODEMCU jak balancovat rozdělení aplikací - např. zda web server na SDS nebo raději jinde,....
Každé SDS má jiný ARM SoC (system on chip), takže přijde na to jaké SDS. Konkrétně Micro běží jako jedno z posledních na tuším 50MHz, všechny novější už jsou na 150MHz (nové ARM SoC).
Jen nerozumím tomu proč vůbec data běhají do SDS když se v něm nezpracovávají a hned tečou dál ...
Pro tento konkrétní případ, pokud se data přes SDS pouze přeposílají, tak by se skutečně mohly posílat rovnou na server do PHP skriptu. Ale tady tuším že je zájem je i na SDS zpracovat, i když to tu ještě nevidím napsané...
Já mám doma jen ESP8266 ESP-01 co je na tom NODEMCU.
Tyhle malé věci nikdy nebyly navrženy jako náhrada toho, co představuje SDS. Samozřejmě, jsou vhodné pro bastlení, spousta lidí se tak sama donutí naučit se C, já jsem jenom rád že pak bude více znalých lidí kolem nás.
SDS je navrženo jako robustní zařízení, co vydrží fungovat roky v kuse, bez přerušení, a s scriptovacím jazykem, který nezatěžuje uživatele tím, jak věci fungují (chci poslat email = zavolám jedinou funkci) a s navázáním na přenos dat přes síť, už od svého začátku. Zkrátka plug-and-play krabička, která se zapojí a funguje, bez pájení a programování aby vůbec začala fungovat.
Tohle vše "designed and made in Czech Republic", už osm let zpět...
Teď řeším jak do tohoto řetězce vložit rychlost větru a srážky. Vlhkost je totiž "pevná" XXXX, ale tlak je možný od YYY do YYYY. To stejné by bylo i u rychlosti a srážek.
Viz formátovací příkazy pro printf a podobné.
int q;
q = 12;
printf("%04d",q); -> 0012
Tak se mi s uvedenými kódy s drobnými změnami podařilo rozchodil odesílání vzdálenosti z ultrazvukového čidla do DO SDS sys[145] přez WIFI z toho NODEMCU - nedělal jsem to však přes LUA ale prostřednictvím Arduina IDE.
Ovladače mají obě NODEMCU rozdílné ale to nebyl ten problém. To levnější NUDEMCU potřebovalo přeflashovat a už taky funguje bez problémů.
ADAMNe svou otázkou na výkon jsem nemínil nahrazovat funkcionalitu SDS, ale šlo mi o to jak moc se snažit data předzpracovat (např. klouzavý průměr) než je odešlu do SDS. Přeci jen udělat na NODEMCU nějaký základ, někam to umístit a pak zpracování dat dolaďovat na SDS programovatelného přes Ethernet je mnohem pohodlnější než tahat USB pro dolaďování programu na NODEMCU, z hlediska rozdělení zátěže je však vhodnější udělat to obráceně.
Můžu poprosit o odkaz na to NODEMCU? ideálně varianta co má extension na IDE arduina...
To Clousea: Jasně, v minulém přísěvku jsem firmu popletl. Popsáno na http://www.wemos.cc/wiki/Hardware/Pin, extension http://www.wemos.cc/d1/Getting_Started. Na webu je to sice zařazeno pod jejich jiným výrobkem D1 ale doma mám ten Lolin a funguje to na něm :-)
Zakoupeno na http://www.aliexpress.com/item/3-ESP8266-kit-NodeMcu-NodeMcu-base-40P-wires-testing-DIY-Breadboard/32416466077.html
Škoda, že čidlo DHT22 nejde napojit do SDS přímo. Přjde mi to jako skvělé čidlo za pár kaček. Hlavně to vlhkostní čidlo. Do Arduina jich mám připojeno celkem 6 a běží už asi rok bez poruchy.
V backlogu, hluboku vzdau, je ticket na připojení DHT22 přes LOGIC-S0 vstup do SDS zařízení.
Až to bude hotové, tak bude stačit firmware update.
Do té doby, je potřeba použít kombinaci dvou vnějších čidel (teplota na 1-W, a vlhkost přes A/D vstup).
Škoda, že čidlo DHT22 nejde napojit do SDS přímo. Přjde mi to jako skvělé čidlo za pár kaček. Hlavně to vlhkostní čidlo. Do Arduina jich mám připojeno celkem 6 a běží už asi rok bez poruchy.
Všechno "zlé" je pro něco dobré:-) Díky tomu že podobná čidla nejdou připojit přímo jsem poznal Arduino a díky němu zase NODEMCU a jeho wifi. A tak teď vím, že do míst kde jsem neměl kabely pro čidla a musel bych je složitě tahat tak jsem schopen to nahradit čidly v místě připojenými na NODEMCU s wifi přenosem do SDS a ještě s bonusem další web stránky pro monitoring, která nebude zatěžovat SDS.
Kromě připojení ultrazvukového čidla pro měření hladiny, čidla DHT22 a klasických DS18B20 (v místech kde nemám kabely) se teď chystám vestavět NODEMCU do pohonu brány k jejímu monitoringu a vzdálenému ovládání. K bráně vede pod dlažbou jen napájení a několikrát jsem si vyčítal že jsem nepřidal žádný kabel pro připojení alarmu a ovládání z domu- takto mám možnost to elegantně vyřešit a za cenu možná ještě nižší než by stál samotný kabel :-)
Souhlasím s Tebou. Ale jsem zastáncem toho, když je vše v jednom.
Dělám teď trochu něco v Arduinu. Tam jsem ale omezen pamětí.
SDS je v tomto super. Až na ten počet vstupů a výstupů. :-(
Zase je to o tom, připojovat "něco" přes 485. A mít další věc k porouchání.
Ale chápu že je SDS zřejmě primárně stavěné k monitorování energií.
Nicméně stále rozrůstá a to je super. Samozřejmě za super cenu.
Ahoj, podařilo se někomu propojit ultrazvukové čidlo přímo na SDS ? popřípadě s nějakou jednoduchou elektronikou ? Děkuji
Chcete-li přispívat, musíte se přihlásit nebo projít procesem registrace.
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz » SDS periferie » ultrazvukové čidlo HC-SR04