- A régi node-okra koncentrál a szankciók miatt Kína
- 5.1, 7.1 és gamer fejhallgatók
- Hogy is néznek ki a gépeink?
- Processzorra való vizesblokk az ASUS ROG-os portfóliójában
- TCL LCD és LED TV-k
- Május 7-én lesz az új iPadek bemutatója
- VR topik (Oculus Rift, stb.)
- AMD GPU-k jövője - amit tudni vélünk
- Blu-ray lejátszók
- Azonnali informatikai kérdések órája
Hirdetés
-
Nyár közepén jön az AOC 540 Hz-es gaming monitora
ph Az Agon Pro szériás, kellemes felszereltségű újdonság lényegesen olcsóbb lesz a jelenleg kapható ellenlábasánál.
-
Lenovo Essential Wireless Combo
lo Lehet-e egy billentyűzet karcsú, elegáns és különleges? A Lenovo bebizonyította, hogy igen, de bosszantó is :)
-
Friss előzetesen a Destiny 2: The Final Shape
gp Érkezik az utolsó nagy kiegészítő, azonban a fejlesztők szerint ettől még nem lesz vége a franchise-nak.
-
PROHARDVER!
Okos Otthon összefoglaló
Új hozzászólás Aktív témák
-
vargalex
félisten
Sziasztok!
Én is jó dolognak tartom, hogy indult egy ilyen topic is. Én 2014 májusában kezdtem foglalkozni a dologgal és idő hiányában sajnos megakadt a dolog a hőmérséklet mérésnél. Egy Raspberry Pi-re van kötve 4 db DS18B20 szenzor, illetve magának a Raspberry-nek a CPU/GPU hőmérésékletét mérem. Az értékeket percenként olvassa, mySQL adatbázisba rögzíti. MySQL-ben egy trigger összesítő táblákba számolja az értékeket a gyors megjelenítés miatt. A szenzorok adatait shell script olvassa ki és hajtja végre az insert-et:
#!/bin/bash
HOST=db_host
USER=db_user
PASSWORD=db_user_pass
DATABASE=database_name
MYSQL=/usr/bin/mysql
W1_SLAVES_COUNT=0
W1_SLAVES=/sys/devices/w1_bus_master1/w1_master_slaves
W1_SLAVES_DIR=/sys/bus/w1/devices/
SQLFILE=/tmp/temperature.sql
DATUM=$(date '+%Y-%m-%d %H:%M:%S')
CPUTEMP=$(cat /sys/class/thermal/thermal_zone0/temp | awk '{ print $1/1000}')
GPUTEMP=$(/opt/vc/bin/vcgencmd measure_temp | cut -f 2 -d "=" | cut -f 1 -d "'")
PIDFILE=/run/lock/gettemps.sh.pid
if [ -r $PIDFILE ]; then
exit
fi
echo "$$" > $PIDFILE
for w1_slave in $(cat $W1_SLAVES)
do
((W1_SLAVES_COUNT++))
W1_SLAVE_CONTENT=$(cat $W1_SLAVES_DIR/$w1_slave/w1_slave)
while [ "$(echo "$W1_SLAVE_CONTENT" | head -n 1 | cut -f 12 -d " ")" != "YES" ]
do
sleep 1
W1_SLAVE_CONTENT=$(cat $W1_SLAVES_DIR/$w1_slave/w1_slave)
done
TEMPERATURE=$(echo "$W1_SLAVE_CONTENT" | tail -1 | cut -f 2 -d "=" | awk '{ print $1/1000}')
TEMPNAMES[$W1_SLAVES_COUNT]=$w1_slave
TEMPERATURES[$W1_SLAVES_COUNT]=$TEMPERATURE
done
rm -rf $SQLFILE
for i in $(seq 1 $W1_SLAVES_COUNT)
do
echo "insert into temperatures(sensor_id, temperature, datum) select id, ${TEMPERATURES[$i]}, '$DATUM' from sensors where name='${TEMPNAMES[$i]}';" >> $SQLFILE
done
#Inserting CPU temperature
echo "insert into temperatures(sensor_id, temperature, datum) select id, $CPUTEMP, '$DATUM' from sensors where name='cpu_sensor';" >> $SQLFILE
#Inserting GPU temperature
echo "insert into temperatures(sensor_id, temperature, datum) select id, $GPUTEMP, '$DATUM' from sensors where name='gpu_sensor';" >> $SQLFILE
echo "quit" >> $SQLFILE
$MYSQL --host=$HOST --user=$USER --password=$PASSWORD $DATABASE < $SQLFILE
rm $PIDFILEA megjelenítéshez a szerver oldal php-ban készült, grafikonhoz pedig highchart-ot használok:
A grafikonba természetesen dinamukusan bele lehet nagyítani, egy ajax kéréssel a szerver oldalról lekéri a részletesebb adatokat, így a percenkénti értékek bármikor visszanézhetőek:
Most éppen várok néhány ESP8266-ot (ESP-12F-et) és van még elfekvőben DS18B20-am, így a terv szerint kicsit kiterjesztem további vezetékelés nélkül a mérést.
[ Szerkesztve ]
Alex
-
vargalex
félisten
Én éppen úgy tervezem, hogy az ESP8266-ok kliensek, és legfeljebb csak az SSID/password config-hoz fut rajtuk web szerver (ilyenkor természetesen AP módban az ESP akár DHCP szerverrel). Egyébként a szerveremen futó webszerverre post-olják majd a szenzorok értékeit, illetve esetlegesen onnan tölthetnek le konfigurációt.
Az biztos, hogy a kódot is én írom majd hozzá, mert számomra ez a lényege az egésznek.[ Szerkesztve ]
Alex
-
vargalex
félisten
A mySQL nem a Pi-n van. A Pi-t (először még 256 MB-os Pi1 volt, majd 512MB-os, a megjelenése óta pedig Pi2) csak a szenzorok olvasására és média lejátszásra (Kodi-val) használom. Az adatbázis a Home szerveremen van (régebben egy Seagate GoFlex Net-en volt), ami természetesen egy csomó más dolgot is végez. A GoFlex Net teljesítményben gyengébb, mint egy Pi2, de annak sem megterhelő. Ahogy írtam, nálam a percenkénti érték beszúráskor összesítő táblák is töltődnek, így a lekérdezés sokkal kevesebb erőforrásigénnyel jár.
Alex
-
vargalex
félisten
Nyilván könnyen előfordulhat olyan helyzet, hogy túl mélyen kellene belenyúlni, esetleg nem is megvalósítható. Kezdjük ott, hogy ahogy írtam, nekem egyébként is van egy mySQL szerverem, tehát szeretném, ha a mért értékek/config-ok/stb. abban lenne tárolva. A domoticz pedig sqlite-ot használ.
Másrészt, ha már egyszer logolom az értékeket, akkor én szeretem az eredeti részletességgel megtartani azokat, így bármikor vissza tudom nézni, hogy pl. 2014.06.05-én 11:21-kor hol milyen volt pontosan a hőmérséklet. A domoticz-ban - ha jól olvasom - 5 perces mintavételezés van, és maximum 7 napra tudod kitolni ezen részletesség megtartását.
Szóval, igenis lehetnek olyan igények, amikor egyszerűbb egy saját alkalmazást írni. De továbbra is tartom, hogy nálam az egyik fő cél az, hogy saját magam írja. Nyilván különbözőek vagyunk...Alex
-
vargalex
félisten
Szerintem központnak az Arduino sem való. Arra pont jó egy Linuxot futtatni képes bármi (Pi, PC, stb.), ahol lehet normális adatbázis, web server webes felülettel, stb.
Egyébként a NodeMCU (igazából maga az ESP8266) éppen úgy programozható (jobban mondva úgy is), mint az Arduino.[ Szerkesztve ]
Alex
-
vargalex
félisten
Nekem közben megjöttek az ESP-im (2 db Wemos D1 mini, illetve 5 db ESP-12F). Én azt mondom, hogy teljesen felesleges NodeMcu firmware-t tenni rá és lua-ban bohóckodni (egy kollégám próbálta, a tapasztalatai szerint nem volt túl stabil). Simán Arduino IDE-ből pillanatok alatt összerakható a teljes funkció és szerintem nagyobb a közösségi támogatása is (már csak az Arduino miatt is).
Néhány perc alatt összedobtam a programot, ami csatlakozik kliensként az otthoni routeremre, percenként kiolvassa a DS18B20 szenzor által mért értéket, és a saját szerveremre HTTP POST-olja a szenzor azonosítóját és az értéket.Egyébként a fogyasztáson szerintem kár aggódni. A Wemos D1 mini-t mértem egy USB Charger doctor-al (természetesen a DS18B20 szenzor is csatlakoztatva volt, és wifi-n kommunikált az eszköz). 5.07V kimenő feszültség mellett 0,04A-t vett fel, ami ráadásul a nagyjából 1 perces delay-ban 0.00-0.01A között mozgott. Azaz a csúcsfogyasztás kemény 0,2W.
[ Szerkesztve ]
Alex
-
vargalex
félisten
Nem ismerem a Domoticz-ot, de egy webserver-nek nem okozhat gondot 10 párhuzamos hívás. Mondjuk az ESP-ken, ha nem szinkronizálod az időt és nem azt vizsgálod, hanem egyszerű késleltetést használsz, akkor kicsi az esélye, hogy együtt induljanak (jó, áramszünet esetén előfordulhat). Persze akkor kell valahova egy kicsi random delay, ha ez mégis probléma lenne.
Alex
-
vargalex
félisten
válasz polyszi2013 #218 üzenetére
Szia!
ESP8266-ot is tudsz Arduino IDE-ben programozni. Én is ezt teszem.
OpenWrt-t szerintem leginkább a jobb tűzfal, az open source mivolta, illetve akár a teljes hálózati leválasztás miatt lehet ajánlani.
Alex
-
vargalex
félisten
Múlt pénteken megjöttek a 128*64 pixeles OLED kijelzőim. Szépen mennek ESP8266-al. Arra gondoltam, hogy néhány hőmérésre használt ESP-re teszek kijelzőt is, így akár központi egység nélkül is megnézhetőek a hőmérsékletek/egyéb adatok.
Alex
-
vargalex
félisten
válasz polyszi2013 #248 üzenetére
Jelenleg még semmilyen dobozban nincsenek, viszont kollégám felajánlotta, hogy ha megtervezem, akkor szívesen nyomtat nekem.
Alex
-
vargalex
félisten
Még egy szavazat a pushbullet-re. Igaz nem Domoticz-ból, hanem saját scriptből, de azt használom. Böngésző plugin is van (legalábbis Chrome-hoz biztosan), így akár PC-re is megjönnek az értesítések.
Ha jól emlékszem, csoportokba lehet szervezni az eszközöket és a csoportnak lehet értesítést küldeni. Bár ebben nem vagyok teljesen biztos, de ha gondolod, szívesen megnézem.[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz balibatyo78 #431 üzenetére
Én d1 mini-t használok, de sem a flash-eléssel kapcsolatos problémádat (pedig már biztos, hogy több, mint 50 íráson túl van az a példány, amin fejlesztek), sem a wifi-s problémádat nem tapasztaltam.
Wifi megszakadás ellenőrzését érdemes szerintem a kódba betenni, és hiba esetén újra csatlakozni. Nálam is benn van egy ilyen rutin. A web szerver elérhetőségét vizsgálja POST előtt. De a logok szerint nem történik újracsatlakozás. Nem lehet, hogy te deep sleep-be teszed?Alex
-
vargalex
félisten
válasz balibatyo78 #433 üzenetére
Soros porton sem látsz semmit? Mit mond, ha a sketch-et fel akarod tölteni? Ugye ott elvileg a led a GPIO2-re van kötve egy felhúzó ellenállással. Azaz GPIO2 low állapota mellett világítani fog.
[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz balibatyo78 #438 üzenetére
Én mondjuk Linux-ot használok. Szívesen ránéznék, de sajnos elég messze vagyunk egymástól. Az is lehet, hogy magának az ESP-nek semmi baja rajta.
Sőt, lehet hogy a d1 mini-nek sincs. Nekem van egy olyan ch340-es USB-TTL adapterem, ami a kollégám Windows-os gépét csontra fagyasztja, nekem viszont Linux alatt gond nélkül üzemel.
Úgyhogy inkább ne dobd ki, küldd el nekem.[ Szerkesztve ]
Alex
-
vargalex
félisten
Pontosan melyik Pi-d van? Ha nem Pi3, akkor érdemes lehet az USB áramerősséget megemelni a config.txt-ben 1.2A-re. Egyébként csak 500 mA-el megy.
Illetve a tápot mindenképpen nézd meg. Szerintem ezzel kapcsolatos problémára utal az, hogy eddig is csak ki-be után működött rendesen.
Linux-on sincs semmi gond a Kodi-val, úgyhogy nem kell tőle félni. Én mindenhol linuxot használok, sehol semmi gond vele. Raspberry-n is futtatom a Kodi-t (Arch linux-on) és mellette 5 db DS18B20 szenzort olvas percenként, post-olja az értékeket egy web szerverre.Alex
-
vargalex
félisten
válasz itanczos #575 üzenetére
Konkrétan a shield-et nem ismerem, de a DHT22-höz 1 db GPIO szükséges. A 2db relének és a 2db nyomógombnak szintén. Azaz összesen 5. Ennek azért a duplája rendelkezésre áll.
Alex
-
vargalex
félisten
válasz itanczos #725 üzenetére
Tudsz adni esetleg linket ilyen árú sonoffhoz? Vagy valami egyedi ajánlat volt? A sonoff-on van nyomógomb?
Szerk.: Ja, hogy önálló AP módban történő indításhoz. Ezt még lehet szépen oldani software-ből is, illetve ott a reset gomb a Wemos-on. Egyébként én legutóbb $2.13-ért vettem NodeMCU-t.
[ Szerkesztve ]
Alex
-
vargalex
félisten
Az a gond, hogy az elvárásaid nem egyeznek a gyártó által ígért specifikációtól. Vásárlás előtt érdemes megnézni a szenzor adatlapját. Pl.:
1. DS18B20 (± 0.5 °C)
2. BMP280 (± 1 °C)
3. DHT22 (± 0.5 °C)Ugye ez még csak a gyártó által ígért pontosság. A tapasztalat azért mást mutat és nem árt kalibrálni sem (offset, esetleg szorzó, stb.) .Egyébként én is a DS18B20-akat használok, a BMP280-aim a fiókban pihennek.
Alex
-
vargalex
félisten
Ez csak attól függ, hogy mi az igény. Nálam az ESP post-olja a mért hőmérsékletet és eddig egész jól bírja egyetlen Li-Ion cellával.
Alex
-
vargalex
félisten
válasz Norby-007 #2823 üzenetére
Szia!
Ha nem tudod kinyitni a szükséges portokat (én sem szerettem volna), akkor van még más lehetőséged is. Én pl. DNS challenge-t használtam (nem okos otthon kapcsán, de ez mindegy). Ehhez mondjuk TXT rekordot kell, hogy tudj rögzíteni a domain-odhoz...
Saját generált tanúsítvánnyal is el tudsz érni belső webszervert, csak a böngészők azt fogják mondani, hogy nem biztonságos. Illetve nyilván tanúsítvány https eléréshez kell, http-hez nem.
De ez lényegében nem a topic témájához tartozik, hanem web szerver üzemeltetés.Alex
-
vargalex
félisten
válasz itanczos #3070 üzenetére
Nem. Hanem ha kikapcsolod a wifi-t, akkor mobilnetet használ ami jóval nagyobb energiaigényű. Azaz összességében bekapcsolt wifivel kevesebbet fogyaszt a készülék. Alvó módban a wifi-t is egy alacsony energiaállapotra kapcsolja, minimális fogyasztással. Ilyenkor az első ping-re is jóval később válaszol, hiszen először újra teljes működésre kell állítani.
[ Szerkesztve ]
Alex
-
vargalex
félisten
Elolvastam az eredeti hozzászólásod. Értem a módszert, de ugye az egész módszerből az is következik, hogy minél "hosszabb" adatot kell kiszivárogtatni, annál több frame-ot kell küldenie az AP-ra, tehát annál tovább tart. SSID-re és jelszóra valószínűleg kivárható idő lehet (ha nem túl hosszú sem az SSID, sem a jelszó), de nagyobb adat szivárogtatására valószínűleg nem.
Abban viszont szinte biztos vagyok, hogy egy mobilon futó alkalmazás nem férhet hozzá a telefonon beállított wifi kapcsolat jelszavához csak úgy. Nem ismerem magát a konkrét megoldást (így az alkalmazást), de azt gyanítom, hogy ott külön meg kell adni a wifi jelszót.Mindent összefoglalva, szerintem ez nem igazán mond el semmit a wifi security-ről.
[ Szerkesztve ]
Alex
-
vargalex
félisten
Akkor pontosabban fogalmazok: az alkalmazásnak először a kiküldendő adatot kell ismernie. Akkor pedig már egyszerűbb neki, ha kiküldi egyszerűen a neten valahová, ha már úgyis van kapcsolata... Tűzfalról beszélhetünk, de a legtöbb otthoni hálózatban kifelé minden engedélyezett...
Mondom ezt azért, mert a hozzászólásom egyik lényegi részére nem válaszoltál: jól sejtem, hogy az alkalmazásnak meg kell mondanod a wifi jelszót, nem tudja kinyerni az androidból?
[ Szerkesztve ]
Alex