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.
Luke_CZÚčastníkJeště pro doplnění, ten SW520s je na principu kuličky v pouzdře, která spíná kontakty, jistě si na videu všimneš, že pokud se natočí senzor do limitní pozice, tak ta výchylka pro sepnutí/rozepnutí již tak velká není. Jsou i citlivější snímače otřesů, třebas 801s, SW-420, prostě ty, co jsou na principu pružiny, nebo piezzo (ty ale fungují na změnu zatížení). Jde mi o proudovou spotřebu zapojení, páč s mechanickým senzorem můžeš vypnout mimo ADC všechny periferie.
Luke_CZÚčastníkTak to potem ja, na tak maličkou záležitost ti bude stačit i:
https://www.aliexpress.com/item/Smart-Electronics-GY-Digispark-Kickstarter-Miniature-Minimal-Development-Board-TINY85-Module-for-Arduino-USB-DIY-Starter/32315722719.html?ws_ab_test=searchweb0_0,searchweb201602_2,searchweb201603_1&btsid=2077f23c-b5c2-4dfd-b250-6177129c8b87Pro měření teploty by ti stačil i obyčejný termistor(ten opravdu moc nežere):
https://www.aliexpress.com/item/20pcs-Thermistor-NTC-MF52-103-3950-10K-ohm-B-Value-3950k-5-Thermal-Resistor/32738569518.html?ws_ab_test=searchweb0_0,searchweb201602_2,searchweb201603_1&btsid=cd682224-fc3b-4f7a-a012-14f67d67b2dbCo se týče 433MHz RX TX, tak raději nějaké kvalitnější, ty hodně levné jsou nic moc 🙁
Tyhle mi jedou do cca 50m bez výpadků:
https://www.aliexpress.com/item/433-Mhz-Superheterodyne-RF-Receiver-and-Transmitter-Module-ASK-low-power-kits-For-Arduino-ARM-MCU/32728352611.html?ws_ab_test=searchweb0_0,searchweb201602_2,searchweb201603_1&btsid=a8636d2d-da5c-48a0-af17-4825ddc91b5dPro pokusy bych vzal třeba tuhle krabičku, dáš jen jednu 18650 a do druhé půlky dáš mcu, (dole je místo na TX)a spol(máš to i s nabíjecím modulem :-))
https://www.aliexpress.com/item/hot-Portable-Universal-USB-2X-2-18650-Battery-Charger-DIY-Power-Bank-Box-Case-5600mAh-5V/32756814681.html?ws_ab_test=searchweb0_0,searchweb201602_2,searchweb201603_1&btsid=d8b1d595-0e0d-4dfb-899a-81f6fafb964aCelkově bych to směřoval do 3.3V logiky a napájení jedním LiPol 18650 (či podobným).
L.
Kdyžtak Skype: velky_ujezdLuke_CZÚčastníkTož, hlavně když se podařilo. Těžko radit, když toho švába nemáš… 🙂
Luke_CZÚčastníkTakže, abychom si to ujasnili:
Máš centrální jednotku a jí posílají jednotlivé satelity (úly) signál v případě inicializace čidla.
Já bych navrhoval následující:
HW – stanice
A, určitě nepoužívat WiFi – tvůj návrh přepokládá trvalé připojení klienta (úlu) k serveru (centrální jednotce), což baterií neuživíš, tedy ne na dlouho
B, jako čidlo pohybu bych dal jednoduché otřesové, na mechanickém principu fungující, čidlo, třeba (je i s debounce obvodem): https://www.aliexpress.com/item/1pcs-lot-Tilt-Switch-Module-Angle-Sensor-Module-for-Arduino-SW520D-Free-Shipping/32753355271.html?spm=2114.01010208.3.18.KKwaKO&ws_ab_test=searchweb0_0,searchweb201602_3_10065_10068_10069_10084_10083_10086_10017_10080_10082_10081_10060_10061_10062_10056_10055_10054_10059_10078_10079_10073_10070_10052_10053_422_10050_10051,searchweb201603_9&btsid=193be5ad-a605-4259-bff0-af44ec715b03
C, coby mcu pro úl bych dal malé arduino (nano, nebo pro mini)
D, k němu 433MHz TX
E, volitelně třeba nějaký levný snímač vlhkosti a teploty (může jich být víc) třeba DHT-11 (pro tvoji potřebu bude stačit)
F, do budoucna třeba i ten tvůj RFID, či cokoliv jiného
G, co se týká napájení, tak co dát na střechu úlu FV panel a tím nabíjet akumulátor?HW – centrála
A, 433MHz RX
B, GPRS modul
C, cokoliv dalšího, na co si vzpomeneš (TFT, LCD, buzzer)
D, coby mcu může být jakékoliv arduinoSW – stanice
A, snímat
– stav otřesového čidla
– napětí akumulátoru
– teplotu a vlhkost z čidla
B, v případě normálního stavu posílat ve zvoleném čase data do centrály
třebas:
UL01;OK;07,14;20,2;60 (číslo úlu;stav otřes.čidla;napětí aku;teplota;vlhkost)
C, v případě aktivace otřesového čidla poslat ihned
UL01;AL; (číslo úlu;stav otřes.čidla;)SW – centrála
A, čekat na data ze stanic a dle potřeby posílat přes GPRS info
B, dělat cokoliv jiného (zobrazení stavů na displeji, siréna, osvětlení, odpálení náloží…)Určitě je klíčové vědět maximální vzdálenost stanice – centrála a podle toho zvolit vhodný TX RX
L.
Luke_CZÚčastníkJediný na netu?
http://henrysbench.capnfatz.com/henrys-bench/arduino-voltage-measurements/ltc2400-arduino-voltmeter-module-user-manual/
http://www.eevblog.com/forum/projects/ppmgeek!-5-5-digit-dvm-volt-ref-cal-%28for-arduino-or-any-uc-w-spi%29/A tady máš diskuzi k tvému zdrojáku:
http://forums.netduino.com/index.php?/topic/1831-netduino-with-24bit-adc-ltc2400-help/Luke_CZÚčastníkTO Leo:
Fóra jsou i od toho, aby se v nich dala najít řešení problémů, nebylo by tedy od věci, pokud jsi ten TFT rozchodil, napsat v jakém zapojení a SW jsi ho rozchodil…
Jistě by to pomohlo i dalším kolegům, ono prohlášení „Už funguje“ je dost na nic 🙁L:
Luke_CZÚčastníkTo:Kice
Abych jen nehanil 1-wire, tak je přesné,jednoduché na zapojení a má dobrou podporu.
Pokud jde o negativa 1-wire (MicroLAN):
1, nutnost konverze přijímaných dat, samozřejmě čím nižší přesnost, tím vyšší rychlost konverze, příklad:
12bit – 750ms
9bit – 94ms
Ta je nutná pro každé jednotlivé čidlo.
Řešeno zde.
2, maximální délka sběrnice dle výrobce cca 200m, ale to samozřejmě platí v ideálním prostředí.
Řešeno zde.Tedy, pokud budeš měřit teplotu v jedné místnosti, či nedaleko, tak je 1-wire OK, pokud však potáhneš dráty na delší vzdálenost, či v zarušeném prostředí (stačí nabíječka na mobil, či dráty souběžně s AC), tak se ohlédni raději po odolnější sběrnici např. RS485 (převodník stojí pár korun).
L.
Luke_CZÚčastníkTakže:
1, odrušení elektromotoru – ano řeší se RC členem
2, napájení arduina – jak to máš řešený? Bez schématu ti těžko někdo poradí, vypadává to při sepnutí, nebo vypnutí?
3, spínání AC – určitě dej galvanické oddělení (optočlen, relé)Luke_CZÚčastníkA co to oddělit optočlenem a tím spínat ten MOSFET?
Luke_CZÚčastníkA co Google?
BTW: uTFT není pro UNO dobrá, bere příliš mnoho SRAM, no on ani ten displej s tím rozlišením pro UNO není to pravé ořechové
L.
Luke_CZÚčastníkTo, co popisuješ, lze vyřešit:
a, rychlejším komunikačním protokolem např. SPI namísto I2C
b, optimalizací programu
c, rychlejším HW
Problém může být i zápisem na SD, Arduino v tomhle není žádný Ferrari.Na okraj, co potřebuješ tak často sledovat, respektive logovat?
Luke_CZÚčastníkJo, to je dnešní trend, vše poskládat z knihoven. Ono je vlastně ve finále i o výběru desky, pokud neoptimalizuješ program, tak v naprostém klidu zahltíš již tak malou SRAM. Ano každý chce mít co největší displej(nejraději >=7″), hromadu čidel atd., aby ve finále stačila jedna LED a dvě čidla 🙂
Výsledkem jsou zvěrstva typu Raspi s DHT22(nebo nedejbože DS18B20) coby skvělá meteostanice, což se dá nahradit esp8266 + SD karta(celkem za max. 10USD).
Vždy je nutno si položit otázku, a tím navazuji na tvůj příspěvek, co od daného zařízení očekávám.Luke_CZÚčastníkTO posjirka:
Tak to se omlouvám, mě šlo hlavně o začínající, aby potom nebyli zmatení jak lesní včela.Tohle je od nasránka perla:
Když chceš použít Barometr tak se dá použít třeba BMP280 (měří barometrický tlak + teplotu ještě nemám doma tak nemám odskoušen), ale co jsem o něm četl tak je nejlepší ho použít s analogu tedy A4,A5 pin na I2C a pak bez shieldu nepoužiješ LCD16x2/4, ale s Nokia displejem to není problém (trošku je co se správné knihovny týče,ale to neřešíme).Já nic nevědět o mcu, tak bych byl v řiti!
Luke_CZÚčastníkTO: Nasranek
A, DCF je zbytečně drahé.
Nejde ani tak o cenu, jako o zarušený DV
B, Jedno z řešení je RTC modul postavený na DS1203 nebo 1207.
Tyhle dva „zázraky“ mají přesnost jak přesýpací hodiny, pokud tedy nechceš nastavovat RTC co hodinu.
C, Nejpřesnější je DS3231. Jednorázově jej nastavíš a pak používáš.
SouhlasTO:posjirka
A, No abych to zhrnul pro DHT11(může být i DHT22, ale ten je jednou tak dražší a na meteo. zbytečný) potřebuješ jeden digitální pin.
Pokud ti stačí, že to ukazuje nějaký údaj, tak jo, ale DHT11 je fakt shit. DHT22 je o dvě třídy jinde, už jenom tím, že je kalibrovaný z výroby. Bohužel má napevno I2C adresu, takže bez přepínání jede na sběrnici jen jeden 🙁
B, Na LCD 16×2 A4 a A5 analogové.
Prosím tě, ano A4 a A5 jsou analogové piny, ale v tomto případě je to I2C sběrnice, tak ji tak nazývej. Pokud bys někdy chtěl použít jiný mcu, tak věz, že I2C bude i jinde, než na A4 a A5, nehledě na fakt, že nemusí být jen jedna…Pro všechny, nikdy jsem nezpozoroval rozdíl mezi klonem a originálem, rozdíl je jen v tom, že pokud odhulíš originál, tak je to cca 7x dražší, než odhulenej klon.
Jo, a při výběru desky nezapomínejte s jakou úrovní logiky budete pracovat, ono je rozdíl 3,3 nebo 5V 🙂Luke_CZÚčastníkKaždý znalý věci nakupuje na Aliexpress.
-
AutorPříspěvky