-
GAMEPOD.hu
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
vargalex
félisten
válasz ratkaics #7625 üzenetére
Hasonló elképzeléssel valósítottam meg a low power ESP8266 alapú hőmérőt. A cél a minél alacsonyabb fogyasztás volt. Az eszköz (jelenleg 2 példányt raktam le a lakásban) egyetlen Li-Ion celláról működik, ami így 42 nap folyamatos működés után 3.8 V-on áll. A pencenkénti hőmérést figyelembe véve azt gondolom, hogy eddig elégedett lehetek. Természetesen mindenképpen beszámolok, hogy meddig bírta (az ESP8266 miatt kb. 3V-ig hagyhatom merülni).
A kódot itt találod. A DS18B20 kiolvasása egyszerűen cserélhető bármilyen másik szenzorra.[ Szerkesztve ]
Alex
-
vargalex
félisten
Én a különböző eszközök mérését egymással nem szinkronizálom, csak azt akartam elérni, hogy egy mérő lehetőleg mindig ugyan abban a másodpercben küldjön értéket (ne legyen olyan, hogy 1 percben 2 mérést küld, vagy 1 perc kimarad). A megjelenítésnél viszont percre kerekítek, így látszólag minden eszköz azonos időpontban mér, a szerverre küldés viszont eloszlik, így nem egyszerre kapcsolódnak.
[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz DrojDtroll #7636 üzenetére
Jelenleg 9664778 rekord van a fő táblában, ennek mérete 1,2 GB. Ezen kívül trigger tölti a 10 percenkénti, óránkénti, 4 óránkénti, 12 óránkénti és napi összesítő táblákat, amiket a gyors megjelenítés miatt hoztam létre. A teljes adatbázis mérete 1,4 GB.
Fokozatosan jöttek a szenzorok (most sincs sok, csak 8). Az első tárolt mérés 2014.04.30 11:22:02-kor történt.Persze, ha nem szükségesek teljes részletességgel a régi adatok, akkor inkább RRD adatbázist érdemes készíteni. Nekem az egész MySQL-ben van. Így bármelyik időszeletre rá tudok nagyítani percenkénti részletességig.
[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz DrojDtroll #7638 üzenetére
Lehet, hogy valamit töröltem a percenkénti részletességet tartalmazó táblából (ami ugye fizikailag nem szabadít fel helyet), mert a 10 perces felbontást tartalmazó tábla csak 92 MB. Ezek alapján kicsit kisebb lehetne a teljes...
Alex
-
vargalex
félisten
Mit tárolsz te 19 oszlopon? Nálam összesen 4 oszlop van, amiből 1 (unix timestamp) csak a group by gyorsítására van (és egy trigger tölti):
CREATE TABLE temperatures (
sensor_id mediumint(9) NOT NULL,
datum timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
temperature decimal(5,3) NOT NULL,
u_timestamp int(11) DEFAULT NULL,
KEY idx_temp_date (datum),
KEY idx_temp_sensor (sensor_id),
KEY idx_sens_date (sensor_id, datum),
KEY idx_sens_u_ts (u_timestamp, sensor_id),
CONSTRAINT temperatures_ibfk_1 FOREIGN KEY (sensor_id) REFERENCES sensors (id) ON DELETE CASCADE ON UPDATE CASCADE)
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci;Esetleg nálad egy rekord az egy időpont az összes szenzor által mért adattal?
[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz Janos250 #7927 üzenetére
Szintén fehér panelra forrasztott ESP-12F-el oldottam meg a low power hőmérőt. Az alacsony fogyasztás miatt nem is lehet megoldani Wemos/NodeMCU-val. Jelen pillanatban már 88 napja megy mindkét példány folyamatosan, hiba nélkül. Lassan viszont cserélnem kell a cellát, mert már az ESP-n mért feszültség 3 V környékén van.
Viszont mindenképpen elégedett vagyok, szerintem teljesen korrekt lett ez az üzemidő egyetlen cellával percenkénti hőméréssel.[ Szerkesztve ]
Alex
-
vargalex
félisten
Szia!
Mindhárom eszközön ugyan az a kód fut? Ezt a doksit érdemes egyébként elolvasni. Konkrétan arra a részre gondolok, hogy az ESP8266-on alapban engedélyezett a Modem sleep mode kliens módban, ami ugye lekapcsolja a WiFi modult 2 DTIM Beacon intervallum között, ha nincs rajta forgalom. Nyilván, ha ilyen állapotban ping-eled, akkor előbb fel kell, hogy ébressze...
[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz ngabor2 #8319 üzenetére
A p2 értékének vizsgálata véletlenül értékadás lett. Helyesen:
ora = t.hour();
Serial.println(ora, DEC);
if (ora > 5 && ora < 16 ){
p2 = 1;
}
else{
p2 = 0;
}
if (p2 == 1){
digitalWrite(2, LOW);
}
else{
digitalWrite(2, HIGH);
}
Serial.println(p2, DEC);[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz Teasüti #8613 üzenetére
Látom, meglett a megoldás. Az ok pedig szerintem az, hogy C-ben változó (így ugye a buff tömböd esetében is) deklaráláskor nincs inicializálás. Egyszerűen egy memória területre fog mutatni, amiben valamilyen érték lesz. Érdemes kézzel inicializálni akár az általad használt módon, akár a
bzero(buff, sizeof(buff));
hívással.
Szerk: Látom, ezt már megbeszéltétek. Én azt gondolom, hogy bootkor inicializálja a memória területeket (vagy ugye teljes áramtalanításkor elveszti úgyis a tartalmát), amiből serial print-kor fog még felhasználni (majd felszabatítani úja inicializálás nélkül), míg debug nélkül nem. Azaz debug esetén más lesz ugyan azon a RAM területen, mint nélküle.
[ Szerkesztve ]
Alex
-
vargalex
félisten
-
vargalex
félisten
-
-
vargalex
félisten
válasz Tankblock #8748 üzenetére
Én a hőmérőmnél éppen a második megoldást alkalmazom. Így le tudom dobni itthon/édesanyámnál/cégnél és mindhárom helyen működni fog.
Persze, mivel deep sleep megoldást használok, így csak a nem deep sleep-ből történő ébresztéskor scannelek és letárolom, hogy melyik SSID került kiválasztásra. De nem kell hozzá AP mód...[ Szerkesztve ]
Alex
-
vargalex
félisten
Nem. Azt jelenti, hogy amíg privát IP címet kapsz a router WAN oldalára, addig felejts el bárminemű szolgáltatás kívülről történő elérését a belső hálózaton.
Telefonálj be a digihez és mondd meg, hogy neked publikus IPv4 címre van szükséged belső eszközök elérése miatt.Alex
-
vargalex
félisten
Nem teljesen értem a különbséget. Nyilván, Arduino alatt megnézed egy bemenet állapotát, majd csinálsz valamit. Miért foglalkozna vele, ha közben változott, hiszen a további programkódban már nem függ tőle semmi. Ha neked mégis úgy kellene, akkor mindig nézd meg az állapotot, ahol a futás függ tőle (esetleg használj megszakításokat).
Bár ezt a ciklus elején vs. beolvasás témát kifejthetnéd...
Alex
-
vargalex
félisten
Vannak, akik rendelkeznek ilyen műszerrel, ők mérték. Youtube-on is lehet róla videót találni. Nekem sincs, így én elhiszem. És természetesen a lényeg, hogy deepSleep hívás után ne húzd semmivel LOW-ra az RST lábat. Majd a timer lejártakor a GPIO16 LOW-ra állításával reset-eli a boardot.
Tuti működik, hiszen a percenként hőmérsékletet mérő cucc 1 Li-Ion cellával (notebookból bontott) elmegy 90+ napot.
[ Szerkesztve ]
Alex
-
vargalex
félisten
Ahogy írtam, amiről a képet készítetted az a WAN, azaz Wide Area Network (tehát a routered külső lába, amin az internet felől látszik). Az most más kérdés, hogy a Digi a WAN oldalra is privát IP címet adott neked (100.x.x.x tartomány), tehát ezt az internet felől sehogy nem fogod elérni (lehet, hogy nem is akarod, tehát nem biztos, hogy gond neked).
A belső kliensek (legyen az vezetékes, vagy vezeték nélküli) a LAN, azaz Local Area Network-hoz kapcsolódnak, azaz abból a tartományból kapnak IP-t.
Ezek egy része a wifi kliensek, WLAN
A Wifi kapcsolat a WLAN, azaz Wireless Local Area Network, ahogy írtam a LAN része.
Remélem így tisztább lesz.
Alex
-
vargalex
félisten
Elbénázták a redirect-et. A http://jlcpcb.com át van irányítva a https://jlcpcb.com-ra, ami pedig a https://jlcpcb.com:443-ra, ami ugye önmaga. Innentől végtelen rekurzió...
Szerk.: Úgy látszik, éppen javítják, már bejön CSS nélkül.
[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz ZTE_luky #9167 üzenetére
"Tehát akkor nem probléma hogy arduinón fut a szalag árama is? tehát hogy csak usbről kap áramot az arduino, is minden azon fut át? mert ugye a rajz elcsal annyit hogy a szalag nem közvetlen az áramforráshoz van kötve hanem az arduinóról kapja az 5V-ról"
Most lehet, hogy félreértek valamit, de a rajzon az arduino és a szalag is közvetlenül az áramforrásra van kötve. Az arduino is az 5V-os lábon van megtáplálva, nem USB-n. USB-n táplált arduino 5V-os lábáról nem valószínű, hogy számodra elegendő teljesítmény vehető ki.
[ Szerkesztve ]
Alex
-
vargalex
félisten
Ezzel az a baj, hogy a saját fogyasztása néhány nagyságrenddel nagyobb, mint az ESP8266-é deep sleep-ben (kb. 20 microAmper).
Egyébként mérések szerint az ESP8266 megáll 170 mA-nél, úgyhogy nincs gond a HT7333-al...
Alex
-
vargalex
félisten
Új hozzászólás Aktív témák
- Milyen CPU léghűtést vegyek?
- Xiaomi Pad 6S Pro 12.4 - Kína (válasza az) iPad(r)e
- Milyen billentyűzetet vegyek?
- MIUI / HyperOS topik
- Kerékpárosok, bringások ide!
- Apple asztali gépek
- Xbox Series X|S
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Revolut
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Ozeki Kft.
Város: Debrecen