Luke_CZ
Vytvořené odpovědi
-
AutorPříspěvky
-
Luke_CZÚčastník
To je nutné vyzkoušet, ačkoliv jsou i 3.3V LCD moduly. Zrovna jich tu pár mám 🙂
L.
Luke_CZÚčastníkto posjirka:
Použitý IC backpacku PCF8574 má rozsah napájení 2.5 – 6V, tož jde jen o to, aby se s 3,3V popral LCD. Ty levné to zvládají.L.
Luke_CZÚčastníkMě jede I2C lcd i na 3,3V, tož to taky vyzkoušej. Jen budeš muset poladit trimrem kontrast.
L.
Luke_CZÚčastníkV lokální síti – no problem, stačí ti znát přidělenou IP
Na webu – bez veřejné IP, celkem problémLuke_CZÚčastníkPokud tím myslíš například:
Zjisti na serveru kolik je hodin a podle toho zapni/vypni osvětlení (zjednodušeně)
1, klient si vyžádá RTC data ze serveru
2, server zpracuje dotaz, tj. načte data z RTC
3, server pošle vyžádaná data do klienta, tj. pošle jednoduchý html, či pouze string do klienta
4, klient rozparsuje data a tato vyhodnotí, pokud je RTC > 19.00 zapne osvětleníTak to samozřejmě jde, ideálně však popiš tvůj případ pro diskuzi.
L.
Luke_CZÚčastníkLuke_CZÚčastníkAsi takhle:
a, alespoň bez základů AJ toho nikde moc nezjistíš
b, tvůj WiFi shield má na sobě odkaz na elecshop.ml, tož bych kouknul tam 🙂
c, pokud chceš dělat s WiFi, tak použij rovnou něco s ESP8266(NodeMcu, WeMos). To je jak vozit v autě druhej motor v kufru.L.
Luke_CZÚčastníkSouhlasím s Vojtou,
pro menší komplikaci bych šel třeba do NodeMcu, či WeMos. Cenově cca 3USD, a pro WeMos jsou i shieldy, třebas relé(ovládání motorku), SD karta(pokud bys chtěl větší stránky, či logování) atd…Oboje má na sobě rovnou převodník USB <> RS232, pozor však na logickou úroveň 3,3V!
L.
Luke_CZÚčastníkJednou jsem to řešil, problém byl ten, že se serial neměl rád s funkcí snprintf(), zkus posílat data jako pole, mě to vyřešilo problém.
L.
Luke_CZÚčastník1, a co raději vyhodnocovat, zda ke změně stavu došlo? Tedy jednoduše dát globální boolean proměnnou (výchozí FALSE), pokud dojde ke změně stavu, pak nastavit tuto proměnnou na TRUE (přímo ve proceduře). V případě, že je proměnná TRUE tak změnit text na LCD a nastavit proměnnou zpět na FALSE, pokud je FALSE, tak nic na displeji neměnit.
Tedy přepisovat jen tehdy, kdy je potřeba a co je potřeba.
Delay je sice řešení, ale takové kostrbaté, navíc delay v tomto případě jen brzdí běh programu.
2, lze jen souhlasit, navíc jde, pokud použiješ char jako pole, krásně text zarovnat na střed displeje, je to opticky mnohem výraznější, než vše psát od kraje.
Jen malé doporučení: Texty vypisuj na LCD přes makro F(), ušetříš si SRAM
3, na LCD lze udělat pouze 8 vlastních znaků pro jedno zobrazení(TO posjirka: ty umíš víc?). Nic proti ikonám, ale na rastru 5×7 moc zázraků nepředvedeš.L.
Luke_CZÚčastníkA, nahrej do arduina i2c_scanner, ten ti ukáže na terminálu připojená zařízení na I2C sběrnici, pokud tam máš jen ten LCD, tak uvidíš jeho adresu ve tvaru 0xXX (pokud ho máš tedy dobře připojený). Tuto adresu musíš zadat ve skeči v části LiquidCrystal_I2C lcd(0xXX, 20, 4)
B, piny A0, A1, A2 jsou právě určeny ke změně adresy zařízení viz zde
L.
Luke_CZÚčastníkA, píšeš cosi o přerušení som to napojil na pin prerusenie napriklad D2 + na GND , ale nikde v loop nepřerušuješ běh programu. Pokud dáš, jako ve tvém skeči, vše do loop, tak arduino zpracovává tuto smyčku a nic jiného ho nezajímá.
B, tvůj skeč v loopu hlídá změnu na D2 a přičítá pulsy do proměnné REEDCOUNT, žádná jiná čidla, jak zmiňuješ ked chcem pridat dalsie cidla tak uz to nereaguje tam nevidím…
Luke_CZÚčastníkPro doplnění:
A, jde o přeplnění SRAM paměti vloženými obrázky a HTML kódem, autor skriptu řeší vše pouze v rámci SRAM. V jeho případě je to MEGA s 8kB SRAM vs tvoje UNO s 2kB SRAM 🙁Toto jde řešit:
1, větším arduinem, přístup autora = s kanonem na vrabce
2, nahráním obrázků na SD a loadovat je z ní = v případě opravdu velkých obrázků, či skriptů (java apod)
3, místo obrázků použít tag <button>, ten tolik paměti nezabere viz.
http://www.w3schools.com/tags/tag_button.asp
4, celkově optimalizovat zápis HTML viz F() macro
https://playground.arduino.cc/Learning/Memory
a PROGMEM
https://www.arduino.cc/en/Reference/PROGMEML.
Luke_CZÚčastníkA, nerozumím
B, mega != wifi
C, „Učit se, učit se, učit se! VIL“
D, ESP8266 zvládne vše, tj. server, měření teploty a vlhkosti i ovládání IRL:
Luke_CZÚčastníkA, proč by to normální arduino nezvládlo?
B, nemáš možnost WiFi? ESP8266(NodeMcu) by bylo ideální, napájet by šlo rovnou v klimě a nikde by nelezly dráty
C, kód je jednoduchýL.
-
AutorPříspěvky