DS18B20 wireless senzor
-
Zdravím,
Potřebuji poradit jak vyřešit tento požadavek:Ve sklepě mám rpi s instalovaným sw rexygen. Pomocí 1-wire snímám teplotu na 4x pds18b20 a data zpracovávám přímo v sw rexygen.
Problém je, ale v tom, že potřebuji snímat i teplotu v přízemí a ideálně v prvním patře a napadlo mě, abych nemusel tahat datový kabel, využít nedomcu esp8266, na které bych senzor připojil a data odesílal na rpi. (To bych nějak i vyřešil, ale potřebuji, aby byla data zpracovatelná pro rpi a proto bych rád aby se výstup přijímacího nodemcu choval adekvátně pro napojeni na 1-wire rpi). (Nedělá mi problém vzít jedno nodemcu jako vysílač a druhý přijímač s výstupem do rpi.)
Má tento problém nějaké adekvátní řešení nebo mám prostě natáhnout utp ke každému čidlu?
Děkuji za rady, popř nasměrování. -
@jackobocze Dobrý den,
pokud to správně chápu, chcete posílat data z esp8266 do RPi přes WiFi. Pokud je RPi přístupné ve Vaší místní síti, můžete údaje o teplotě zapisovat z esp8266 pomocí HTTP requestů a REST API (dokumentace zde). Případně můžete z esp8266 odesílat UDP packety a v REXYGENu je číst pomocí bloku REXLANG nebo PYTHON. Nejjednodušší mi přijde využití REST API. Python blok má tu výhodu, že můžete využít zdrojové kódy a knihovny dostupné na internetu. Pro REXLANG blok naleznete příklad UDP Receiveru v knihovně příkladů pod jménem 0502_Generic_I2C_Communication.S pozdravem,
Reitinger -
@jackobocze Ještě doplním, že existuje příklad přímo na použití ESP8266 - "0302-11 ESP8266 REST API"
Jak jednoduše začít s příkladem viz zde: https://www.rexygen.com/example-projects-rexygen/
Hezký den,
Tomáš -
@reitinge Dobrý den, díky za radu. Vyřešil jsem to tedy tak, jak posílám v příloze. Teplotu snímám na nodemcu tu nahrávám na web a poté pomocí bloků získám žádanou hodnotu teploty. Pokud je nějaké lepší řešení, uvítám ho.
-
@jackobocze Dobrý den, nemáte zač. Hodnotu teploty můžete posílat z nodemcu přímo na zařízení, na kterém Vám běží REXYGEN a nemusíte využívat žádné webové uložiště. Určitě koukněte na příklad, který zmiňoval @cechurat . Je tam připravený sketch pro ESP8266 v Arduino IDE. Ve sketchi je potřeba změnit IP adresu na adresu Vašeho zařízení (Raspberry Pi) a případně přihlašovací údaje do REXYGENu. Po spuštění sketche a úspěšném připojení ESP k Wifi by se Vám měly změnit hodnoty v běžícím REXYGEN projektu na Raspberry. Samozřejmě je potřeba na RPi spustit přiložený REX projekt v příkladu, případně upravit sketch. Napoprvé bych ale vyzkoušel zprovoznit připravený příklad s co nejméně změnami.
S pozdravem,
Reitinger -
@reitinge Dobrý den, používám rexygen teprve chvilku, takže až díky vám mě nějak napadlo otevřít příklady přímo ve studiu. Zkusil jsem tedy jak píšete nahrát program do esp8266 což mi poprvé fungovalo, ale jakmile jsem se snažil přepsat program v Arduinu, aby vzal teplotu senzoru a nahrál ji do programu v rexygenu, vyskytl se mi tento problém, se kterým si nevím rady.
-
@jackobocze Dobrý den, zřejmě došlo při aktualizaci nějaké Arduino knihovny ke změně syntaxe. Postup co s tím např. zde: https://codeutility.org/arduino-esp8266-error-call-to-httpclientbegin-declared-with-attribute-error-obsolete-api-use-beginwificlient-url-stack-overflow/
Chybu v příkladech samozřejmě opravíme a oprava bude součástí další verze.
Hezký večer,
Tomáš -
@jackobocze Omlouvám se, netestoval jsem, zda vše stále funguje a mezi tím se změnily parametry některých funkcí v knihovně ESP8266HTTPClient. Posílám upravený sketch, který jsem právě otestoval a funguje mi pro daný příklad. REXYGEN_REST_API_example.ino
-
Dobrý den, vše již funguje. Děkuji za Vaši ( @cechurat @reitinge) pomoc.
V příloze posílám jak jsem si program upravil přímo pro ds18s20. Takto mi aktuálně stačí, popřípadě bych chtěl v budoucnu číst teplotu dle adresy sensoru. Akorát jsem musel změnit "short tries = 300;" na "short tries = 500;" jelikož se mi nechtělo esp8266 připojit k wifi (stále psalo připojování znovu a znovu, jinou hodnotu jsem nezkoušel prostě jsem původní zvýšil).
Mnou upravený program: sensor_jackobocze.ino -
@jackobocze Dobrý den, díky za zpětnou vazbu. Jsem rád, že vše funguje. Pro čtení dat z více senzorů stačí přidat do REXYGENu víc bloků, do kterých bude zapisovat další čidlo. Já si do sketche pro ESP ještě přidal deep sleep funkci kvůli úspoře energie a čídla napájím z akumulátoru.
-
Hello, @jackobocze.
REXYGEN Community Forum is predominantly an english speaking forum.
Please, refrain from using languages other than english. By doing so your comments and contributians can be useful to much larger field of users of this forum.
In the future we would like to keep this forum english only and that could cause comments and contributions written in other languages to be deleted without prior notice.