Përmbajtje:
- Hapi 1: Monitorimi i temperaturës
- Hapi 2: Konfigurimi i Cloud4Rpi.io
- Hapi 3: Monitorimi i UPS -it
- Hapi 4: Përgatitja për "prodhim"
- Hapi 5: Vendosja e një paneli kontrolli
Video: Monitorimi i shtëpisë DIY me RaspberryPi dhe Cloud4Rpi: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
Një fundjavë dimri shkova në shtëpinë time dhe zbulova se atje ishte shumë ftohtë. Diçka kishte ndodhur me energjinë elektrike dhe ndërprerësi RCD e kishte fikur atë, dhe ngrohja gjithashtu u fik. Isha me fat që erdha atje, përndryshe brenda disa ditësh gjithçka do të ishte ngrirë, gjë që është shumë e keqe për tubat dhe radiatorët.
Unë kisha disa Raspberry Pi përreth, dhe një sensor termik, kështu që mendova - pse nuk bëj një pajisje të thjeshtë monitorimi? Udhëzimet më poshtë supozojnë se keni një Raspberry Pi me Raspbian dhe lidhje rrjeti të konfiguruar. Në rastin tim është Raspberry Pi B+ me Raspbian (2018–06–27-raspbian-stretch-lite).
Hapi 1: Monitorimi i temperaturës
Si të lidhni një sensor të temperaturës DS18B20? Thjesht google si ta bëni këtë dhe do të shihni shumë fotografi si kjo:
Në rastin tim kisha tela të Zi, të Verdhë dhe të Kuq. E zeza është e bluar, shkon në pin Ground, e kuqja është fuqi - shkon në pin 3.3v, dhe e verdha është e dhëna - duhet të shkojë në pin GPIO4, me rezistencë 4.7 kOm të lidhur midis të dhënave dhe fuqisë. Shënim, mund të lidhni disa sensorë paralelisht (ato janë dixhitale dhe kanë adresa të ndryshme), ju nevojitet vetëm një rezistencë. Pas lidhjes së sensorit tuaj, duhet të aktivizoni 1Wire në konfigurimin raspi:
sudo raspi-config
Shkoni te 5 opsionet e ndërlidhjes, aktivizoni P7 1-Wire dhe ristartoni.
Pastaj mund të provoni nëse mund ta shihni sensorin:
sudo modprobe w1-gpiosudo modprobe w1-thermls/sys/bus/w1/pajisje/
Ju duhet të shihni diçka si kjo:
pi@vcontrol: ~ $ ls/sys/bus/w1/devices/28–00044eae2dff w1_bus_master1
28–00044eae2dff është sensori ynë i temperaturës.
Hardware është gati. Tani më duhet të krijoj pjesën e monitorimit. Kam nevojë për diçka që do të më tregonte të dhënat dhe do të më njoftonte nëse pajisja është shkëputur për një kohë ose nuk ka energji, ose temperatura është e ulët. Natyrisht që kjo nuk mund të jetë mjedër pi vetë, duhet të ketë një server ose shërbim në internet që monitoron pajisjen time.
Unë mund të krijoj një server të thjeshtë, të marr një host dhe të vendos gjithçka, por me honezi, nuk dua. Për fat të mirë, dikush ka menduar tashmë për këtë dhe krijoi cloud4rpi.io - një panel kontrolli cloud për pajisjen tuaj.
Hapi 2: Konfigurimi i Cloud4Rpi.io
Cloud4Rpi siguron një shërbim që lejon pajisjen tuaj të dërgojë dhe të marrë të dhëna duke përdorur protokollet MQTT ose HTTP. Ata kanë një bibliotekë klienti për Python, kështu që unë do të përdor Python.
Shembujt Python që vijnë me shërbimin Cloud4Rpi tashmë përmbajnë kod për sensorin e temperaturës DS18B20.
Kështu që unë shkova në https://cloud4rpi.io, krijova një llogari dhe shtova një pajisje të re atje. Faqja e pajisjes ka një shenjë - një varg që identifikon pajisjen, dhe i cili duhet të specifikohet në programin që dërgon të dhëna.
Për të filluar, është gjithmonë një ide e mirë të përditësoni një menaxher të paketave dhe të azhurnoni paketat (vini re: mund të duhen orë nëse nuk jeni azhurnuar për një kohë):
sudo apt-merrni përditësim && sudo apt-merrni përmirësim
Pastaj, instaloni git, Python dhe menaxherin e tij të paketave Pip:
sudo apt-get instaloni git python python-pip
Pastaj, instaloni bibliotekën cloud4rpi Python:
sudo pip instaloni cloud4rpi
Më në fund, jam gati të shkruaj programin tim të kontrollit. Filloj nga shembulli i disponueshëm në
git klon https://github.com/cloud4rpi/cloud4rpi-raspberrypi… cloud4rpicd cloud4rpi
Skedari kryesor i programit është control.py - më duhet ta modifikoj për nevojat e mia. Së pari, redaktoni programin dhe ngjisni një shenjë:
sudo nano kontroll.py
Gjeni një linjë DEVICE_TOKEN = '…'] dhe specifikoni një shenjë të pajisjes atje. Pas kësaj unë thjesht mund të ekzekutoj programin: Punon dhe raporton një temperaturë në ndryshoren RoomTemp:
sudo python control.py
Punon dhe raporton një temperaturë në ndryshoren RoomTemp.
Vini re se ai zbulon të gjithë sensorët ds18b20
ds_sensors = ds18b20. DS18B20.find_all ()
dhe përdor sensorin e parë të gjetur:
RoomTemp ': {' type ':' numerike ',' bind ': ds_sensors [0] nëse ds_sensors tjetër Asnjë}
Ok, ishte e lehtë, sepse programi mostër ka gjithçka që kërkohet për të punuar me sensorin ds18b20 në Raspberry Pi. Tani më duhet të gjej mënyrën për të raportuar statusin e energjisë.
Hapi 3: Monitorimi i UPS -it
Gjëja tjetër që dua të monitoroj është statusi i UPS -it, kështu që nëse ka ndërprerje të energjisë, do të di për të para se të shkëputet gjithçka.
Unë kam një APC UPS me kontroll USB, kështu që unë shpejt në Google dhe zbulova se më duhej apcupsd. https://www.anites.com/2013/09/monitoring-ups.html… U përpoqa disa herë ta instaloja përmes apt-get, dhe nuk po funksiononte për mua për arsye të ndryshme. Unë do të tregoj se si ta instaloj atë nga burimet.
wget https://sourceforge.net/projects/apcupsd/files/ap…tar xvf apcupsd-3.14.14.tar.gz cd apcupsd-3.14.14./configure --enable-usb sudo make sudo make install
Pastaj redaktoj apcupsd.conf për t'u lidhur me UPS -in tim përmes usb.
sudo nano /etc/apcupsd/apcupsd.conf# #UPSCABLE smart UPSCABLE usb ##UPSTYPE apcsmart #DEVICE/dev/ttyS0 UPSTYPE usb Pajisje
Tani mund të lidh kabllon USB nga UPS në RaspberryPi dhe të provoj nëse do të gjendet UPS.
sudo apctest
Nuk duhet t'ju japë asnjë mesazh gabimi.
Tani shërbimi apcupsd duhet të fillojë:
sudo systemctl filloni apcupsd
Për të pyetur statusin e UPS mund të përdor një komandë statusi:
sudo /etc/init.d/apcupsd status
Dhe do të dalë diçka si kjo:
APC: 001, 035, 0855DATE: 2018-10-14 16:55:30 +0300 HOSTNAME: vcontrol VERSION: 3.14.14 (31 maj 2016) debian UPSNAME: vcontrol CABLE: USB Cable Driver: USB UPS Driver UPSMODE: Stand Alone FILLIMI: 2018-10-14 16:54:28 +0300 MODEL: Back-UPS XS 650CI STATUS: ONLINE LINEV: 238.0 Volt LOADPCT: 0.0 Përqind BACARGE: 100.0 Përqindje KOHA: 293.3 Minuta MBATTCHG: 5 Përqindje MINTIMEL: 3 Minuta MAX 0 Sekonda SENSE: LOTRANS të Mesëm: 140.0 Volt HITRANS: 300.0 Volt ALARMDEL: 30 Seconds BATTV: 14.2 Volt LASTXFER: Asnjë transferim që nga turnon: 2014-06-10 NOMINV: 230 Volt NOMBATTV: 12.0 Volt NOMPOWER: 390 Watt FIRMWARE: 892. R3. I USB FW: R3 END APC: 2018-10-14 16:55:38 +0300
Më duhet një status - i cili është rreshti "STATUS:".
Biblioteka Cloud4rpi përmban një modul ‘rpy.py’ që kthen parametrat e sistemit Raspberry Pi siç është emri i hostit ose temperatura e CPU. Meqenëse të gjitha ato parametra janë rezultat i ekzekutimit të disa komandave dhe analizimit të prodhimit, ai gjithashtu përmban një funksion të dobishëm ‘parse_output’ që bën pikërisht atë që më nevojitet. Kjo është mënyra se si të marr statusin tim UPS:
def ups_status (): result = rpi.parse_output (r'STATUS / s+: / s+( S+) ', [' /etc/init.d/apcupsd ',' status '])) nëse rezultati: ktheje rezultatin tjetër: kthim 'E PANJOHUR'
Për ta dërguar këtë status në cloud4rpi, më duhet të deklaroj një ndryshore UPSStatus dhe ta lidh atë me funksionin tim ups_status: Tani mund të ekzekutoj programin tim:
variables = {'RoomTemp': {'type': 'numerike', 'bind': ds_sensors [0]}, 'UPSStatus': {'type': 'string', 'bind': ups_status}}
Dhe unë menjëherë mund ta shoh ndryshoren time në faqen e pajisjes cloud4rpi.
Hapi 4: Përgatitja për "prodhim"
Gjithçka po funksionon, dhe tani më duhet ta përgatis pajisjen time në modalitetin e pambikëqyrur.
Për të filluar, unë do të rregulloj intervalet kohore. Intervali i sondazhit përcakton sa shpesh programi kontrollon temperaturën dhe gjendjen e UPS - vendoseni në një sekondë.
Rezultatet dërgohen në re çdo 5 minuta, dhe informacion diagnostikues - çdo orë.
# KonstantetDATA_SENDING_INTERVAL = 300 # sek. DIAG_SENDING_INTERVAL = 3600 # sek POLL_INTERVAL = 1 # sek.
Kur ndryshon statusi i UPS - nuk dua që pajisja ime të presë 5 minuta, dhe dërgoj të dhëna menjëherë. Kështu që unë kam modifikuar pak lakun kryesor dhe duket kështu:
data_timer = 0diag_timer = 0 prevUPS = 'ONLINE' ndërsa E vërtetë: newUPS = ups_status () nëse (data_timer <= 0) ose (newUPS! = prevUPS): device.publish_data () data_timer = DATA_SENDING_INTERVAL prevUPS = new_t = 0: pajisje.publish_diag () diag_timer = DIAG_SENDING_INTERVAL fle (POLL_INTERVAL) diag_timer -= POLL_INTERVAL kohëzgjatja e të dhënave -= POLL_INTERVAL
Testimi: ekzekutoni skriptin:
sudo python control.py
Dhe unë mund të shikoj statusin e UPS në faqen e pajisjes sime.
Nëse e fik fuqinë e UPS -it, statusi ndryshon në disa sekonda, kështu që gjithçka po funksionon. Tani më duhet të filloj apcupsd dhe kontrollin tim.py në fillimin e sistemit. Shërbimi Apcupsd është i vjetër dhe për ta filluar atë në raspbian modern, duhet të modifikoj /etc/init.d/apcupsd, duke shtuar këto rreshta diku në krye:
### FILLIMI I INFORMACIONIT # Siguron: apcupsd # Kërkohet-Filloni: $ all # Kërkohet-Ndaloni: # Default-Start: 2 3 4 5 # Default-Stop: # Përshkrim i Shkurtër: Demoni APC UPS… ### FILLIMI FITIM INFO#
Pastaj aktivizoni shërbimin:
sudo systemctl aktivizoni apcupsd
Pastaj filloni shërbimin:
sudo systemctl filloni apcupsd
Tani apcupsd do të fillojë në fillimin e sistemit.
Për të instaluar control.py si shërbim, kam përdorur skriptin e ofruar service_install.sh:
sudo bash service_install.sh/cloud4rpi/control.py
Tani shërbimi ka filluar dhe do të mbijetojë gjatë rindezjes.
Hapi 5: Vendosja e një paneli kontrolli
Cloud4rpi më lejon të krijoj një panel kontrolli për pajisjen time. Mund të shtoni "widget" dhe t'i lidhni ato me ndryshoret e pajisjes.
Pajisja ime siguron dy ndryshore vetëm për lexim - RoomTemp dhe UPSStatus:
variables = {'RoomTemp': {'type': 'numerike', 'bind': ds_sensors [0]}, 'UPSStatus': {'type': 'string', 'bind': ups_status}}
Shtova 3 widget - Numër për RoomTemp, Tekst për UPSStatus dhe një Grafik për RoomTemp.
Unë mund të vendos alarmet, kështu që marr një email kur temperatura është jashtë intervalit të caktuar, UPS -i doli jashtë linje ose vetë pajisja nuk dërgon të dhëna kur duhet. Tani mund të jem i sigurt se shtëpia ime e vendit është në rregull dhe mund të njoftohem kur diçka nuk është në rregull, kështu që unë mund të telefonoj fqinjët dhe t'i kërkoj që të kontrollojnë se çfarë po ndodh. Këtu është kodi aktual i control.py.
Recommended:
Monitorimi i temperaturës dhe lagështisë në dhomë Me ESP32 dhe AskSensors Cloud: 6 hapa
Monitorimi i temperaturës dhe lagështisë në dhomë Me ESP32 dhe AskSensors Cloud: Në këtë tutorial do të mësoni se si të monitoroni temperaturën dhe lagështinë e dhomës ose tryezës tuaj duke përdorur DHT11 dhe ESP32 të lidhur me re. Përditësimet e mësimeve tona mund të gjenden këtu. DHT11 Karakteristikat: Sensori DHT11 është në gjendje të masë temperaturën
Monitorimi i Shtëpisë së Gjelbër me IOT: 5 hapa
Monitorimi i Green House Me IOT: Kur bëhet fjalë për bujqësinë, monitorimi i temperaturës & lagështia e bimëve është një faktor i rëndësishëm për mbijetesën e tyre. Aktualisht, njerëzit përdorin termometra të bashkangjitur në një serë, në mënyrë që fermerët të mund të matin temperaturën. Sidoqoftë, ky aplikacion manual
Monitorimi i lagështisë dhe temperaturës së shtëpisë: 11 hapa
Monitorimi i lagështisë dhe temperaturës së shtëpisë: Përshëndetje djema! Për të filluar në mënyrën më të mirë, një histori të vogël për projektin. Kohët e fundit u diplomova dhe u transferova në Austri për pozicionin tim të parë si inxhinier. Vendi është i bukur, por shumë i ftohtë & i lagësht në stinën e dimrit. Fillova shpejt
Automatizimi dhe monitorimi i shtëpisë i kontrolluar nga zëri/interneti duke përdorur ESP8266 dhe Google Home Mini: 6 hapa
Automatizimi dhe monitorimi i shtëpisë i kontrolluar nga zëri/interneti duke përdorur ESP8266 dhe Google Home Mini: Hej !! Pas një pushimi të gjatë unë jam këtu pasi të gjithë duhet të bëjmë diçka të mërzitshme (punë) për të fituar. Pas të gjithë artikujve të AUTOMATITS SOM SHTPIS kam shkruar nga BLUETOOTH, IR, Local WIFI, Cloud dmth ato të vështirat, * TANI * vjen më e lehtë por më efikase
Monitorimi i zgjuar i shtëpisë duke përdorur Alexa dhe Arduino: 9 hapa (me fotografi)
Monitorimi i Shtëpisë së Zgjuar duke Përdorur Alexa dhe Arduino: Në botën e tanishme njerëzit kalojnë më shumë kohë në vendin e punës sesa në shtëpitë e tyre. Prandaj ka nevojë për një sistem monitorimi në shtëpi ku njerëzit mund të njihen me kushtet e shtëpisë ndërsa janë në punë. Do të ishte edhe më mirë nëse një c