Isi kandungan:
- Langkah 1: Pemantauan Suhu
- Langkah 2: Menyiapkan Cloud4Rpi.io
- Langkah 3: Pemantauan UPS
- Langkah 4: Bersedia untuk "produksi"
- Langkah 5: Menyiapkan Panel Kawalan
Video: Pemantauan Rumah DIY Dengan RaspberryPi dan Cloud4Rpi: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Pada suatu hujung minggu musim sejuk, saya pergi ke rumah negara saya, dan mendapati di sana sangat sejuk. Sesuatu telah berlaku dengan elektrik dan pemutus RCD telah mematikannya, dan pemanasan juga mati. Saya bernasib baik kerana saya datang ke sana, jika tidak dalam beberapa hari semuanya akan dibekukan yang sangat buruk untuk paip dan radiator.
Saya mempunyai beberapa alat Raspberry Pi, dan sensor terma, jadi saya berfikir - mengapa saya tidak membuat alat pemantauan yang mudah? Arahan di bawah menganggap anda telah menyediakan Raspberry Pi dengan Raspbian dan sambungan rangkaian. Bagi saya, Raspberry Pi B + dengan Raspbian (2018-06-27-raspbian-stretch-lite).
Langkah 1: Pemantauan Suhu
Bagaimana cara menyambungkan sensor suhu DS18B20? Cuma google bagaimana melakukannya, dan anda akan melihat banyak gambar seperti ini:
Dalam kes saya, saya mempunyai wayar Hitam, Kuning dan Merah. Hitam adalah tanah, pergi ke pin Ground, merah berkuasa - pergi ke pin 3.3v, dan kuning adalah data - harus pergi ke pin GPIO4, dengan perintang 4.7 kOm disambungkan antara data dan kuasa. Perhatikan, anda boleh menyambungkan beberapa sensor secara selari (mereka digital, dan mempunyai alamat yang berbeza), anda hanya memerlukan satu perintang. Selepas menyambungkan sensor anda, anda harus mengaktifkan 1Wire dalam raspi-config:
sudo raspi-config
Pergi ke 5 pilihan Interfacing, aktifkan P7 1-Wire dan reboot.
Kemudian anda boleh menguji jika anda dapat melihat sensor:
sudo modprobe w1-gpiosudo modprobe w1-thermls / sys / bus / w1 / devices /
Anda mesti melihat sesuatu seperti ini:
pi @ vcontrol: ~ $ ls / sys / bus / w1 / devices / 28–00044eae2dff w1_bus_master1
28–00044eae2dff adalah sensor suhu kami.
Perkakasan sudah siap. Sekarang saya perlu menyediakan bahagian pemantauan. Saya memerlukan sesuatu yang akan menunjukkan data kepada saya dan memberitahu saya jika peranti terputus untuk sementara waktu atau tidak ada kuasa, atau suhunya rendah. Jelas ini bukan raspberry pi sendiri, semestinya ada beberapa pelayan atau perkhidmatan di internet yang memantau peranti saya.
Saya boleh membuat pelayan mudah, mendapatkan hosting dan menyiapkan semuanya, tetapi secara tidak langsung, saya tidak mahu. Nasib baik, ada yang memikirkan perkara ini dan membuat cloud4rpi.io - panel kawalan awan untuk peranti anda.
Langkah 2: Menyiapkan Cloud4Rpi.io
Cloud4Rpi menyediakan perkhidmatan yang membolehkan peranti anda mengirim dan menerima data menggunakan protokol MQTT atau HTTP. Mereka mempunyai pustaka pelanggan untuk Python, jadi saya akan menggunakan Python.
Contoh Python yang disertakan dengan perkhidmatan Cloud4Rpi sudah mengandungi kod untuk sensor suhu DS18B20.
Oleh itu, saya pergi ke https://cloud4rpi.io, membuat akaun dan menambah peranti baru di sana. Halaman peranti mempunyai token - tali yang mengenal pasti peranti, dan yang harus ditentukan dalam program yang mengirim data.
Sebagai permulaan, adalah idea yang baik untuk mengemas kini pengurus pakej dan menaik taraf pakej (nota: mungkin memerlukan waktu berjam-jam jika anda belum menaik taraf untuk sementara waktu):
sudo apt-get update && sudo apt-get upgrade
Kemudian, pasang git, Python dan Pip pengurus pakejnya:
sudo apt-get install git python python-pip
Kemudian, pasang pustaka cloud4rpi Python:
sudo pip pasang cloud4rpi
Akhirnya, saya bersedia untuk menulis program kawalan saya. Saya mulakan dari contoh yang terdapat di
git klon https://github.com/cloud4rpi/cloud4rpi-raspberrypi… cloud4rpicd cloud4rpi
Fail program utama adalah control.py - Saya perlu mengubahnya untuk keperluan saya. Pertama, edit program dan tampal token:
sudo nano control.py
Cari baris DEVICE_TOKEN = '…'] dan tentukan token peranti di sana. Selepas itu saya hanya dapat menjalankan program: Ia berfungsi dan melaporkan suhu dalam pemboleh ubah RoomTemp:
sudo python control.py
Ia berfungsi dan melaporkan suhu dalam pemboleh ubah RoomTemp.
Perhatikan bahawa ia menemui semua sensor ds18b20 onewire
ds_sensors = ds18b20. DS18B20.find_all ()
dan menggunakan sensor yang dijumpai pertama:
RoomTemp ': {' type ':' numeric ',' bind ': ds_sensors [0] jika ds_sensors lain Tiada}
Ok, itu mudah, kerana program sampel mempunyai semua yang diperlukan untuk berfungsi dengan sensor ds18b20 pada Raspberry Pi. Sekarang saya perlu mencari cara untuk melaporkan status kuasa.
Langkah 3: Pemantauan UPS
Perkara seterusnya yang ingin saya pantau adalah status UPS, jadi jika berlaku gangguan bekalan elektrik, saya akan mengetahui mengenainya sebelum semuanya terputus.
Saya mempunyai UPS APC dengan kawalan USB, jadi saya cepat-cepat pergi ke Google dan mendapati bahawa saya memerlukan apcupsd. https://www.anites.com/2013/09/monitoring-ups.html… Saya mencuba beberapa kali untuk memasangnya melalui apt-get, dan ia tidak berfungsi untuk saya dengan pelbagai sebab. Saya akan menunjukkan cara memasangnya dari sumber.
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 buat sudo buat pemasangan
Kemudian saya mengedit apcupsd.conf untuk menyambung ke UPS saya melalui usb.
sudo nano /etc/apcupsd/apcupsd.conf# #UPSCABLE pintar UPSCABLE usb # #UPSTYPE apcsmart #DEVICE / dev / ttyS0 PERANTI usb UPSTYPE
Sekarang saya boleh memasang kabel USB dari UPS ke RaspberryPi dan menguji apakah UPS dijumpai.
sudo apctest
Ia tidak akan memberi anda mesej ralat.
Sekarang sevice apcupsd harus dimulakan:
sudo systemctl mulakan apcupsd
Untuk menanyakan status UPS, saya boleh menggunakan arahan status:
status sudo /etc/init.d/apcupsd
Dan ia akan menghasilkan sesuatu seperti ini:
APC: 001, 035, 0855DATE: 2018-10-14 16:55:30 +0300 HOSTNAME: vcontrol VERSION: 3.14.14 (31 May 2016) debian UPSNAME: vcontrol CABLE: USB Cable DRIVER: USB UPS Driver UPSMODE: Berdiri Sendiri STARTTIME: 2018-10-14 16:54:28 +0300 MODEL: Back-UPS XS 650CI STATUS: ONLINE LINEV: 238.0 Volt LOADPCT: 0.0 Percent BCHARGE: 100.0 Percent TIMELEFT: 293.3 Minutes MBATTCHG: 5 Percent MINTIMEL: 3 Minutes MAXTIME: 0 Detik SENSE: Medium LOTRANS: 140.0 Voltan HITRANS: 300.0 Volt ALARMDEL: 30 Detik BATTV: 14.2 Volt LASTXFER: Tiada pemindahan sejak 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
Saya memerlukan status - yang merupakan baris "STATUS:".
Pustaka Cloud4rpi mengandungi modul 'rpy.py' yang mengembalikan parameter sistem Raspberry Pi seperti nama host atau suhu cpu. Oleh kerana semua parameter tersebut adalah hasil menjalankan beberapa perintah dan menguraikan output, ini juga mengandungi fungsi 'parse_output' yang berguna yang melakukan apa yang saya perlukan. Ini adalah cara mendapatkan status UPS saya:
def ups_status (): hasil = rpi.parse_output (r'STATUS / s +: / s + (S +) ', [' /etc/init.d/apcupsd ',' status ']) jika hasil: hasil kembali lain: kembali 'TIDAK DIKETAHUI'
Untuk menghantar status ini ke cloud4rpi, saya perlu menyatakan UPSStatus pemboleh ubah dan mengikatnya ke fungsi ups_status saya: Sekarang saya dapat menjalankan program saya:
pemboleh ubah = {'RoomTemp': {'type': 'numeric', 'bind': ds_sensors [0]}, 'UPSStatus': {'type': 'string', 'bind': ups_status}}
Dan saya dapat melihat pemboleh ubah saya dengan segera di halaman peranti cloud4rpi.
Langkah 4: Bersedia untuk "produksi"
Everyting berfungsi, dan sekarang saya perlu menyediakan peranti saya ke mod tanpa pengawasan.
Sebagai permulaan, saya akan menyesuaikan selang waktu. Selang undian menentukan seberapa kerap program memeriksa suhu dan status UPS - tetapkan pada satu saat.
Hasil dihantar ke cloud setiap 5 minit, dan maklumat diagnostik - setiap jam.
# PemalarDATA_SENDING_INTERVAL = 300 # saat DIAG_SENDING_INTERVAL = 3600 # saat POLL_INTERVAL = 1 # saat
Apabila status UPS berubah - saya tidak mahu peranti saya menunggu selama 5 minit, dan saya segera menghantar data. Oleh itu, saya telah sedikit mengubah gelung utama dan kelihatan seperti ini:
data_timer = 0diag_timer = 0 prevUPS = 'ONLINE' sedangkan True: newUPS = ups_status () if (data_timer <= 0) atau (newUPS! = prevUPS): device.publish_data () data_timer = DATA_SENDING_INTERVAL prevUPS = newUPS jika diag_t device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL tidur (POLL_INTERVAL) diag_timer - = POLL_INTERVAL data_timer - = POLL_INTERVAL
Ujian: menjalankan skrip:
sudo python control.py
Dan saya dapat melihat status UPS di halaman peranti saya.
Sekiranya saya mematikan kuasa UPS, status berubah dalam beberapa saat, jadi semuanya berfungsi. Sekarang saya perlu memulakan apcupsd dan control.py saya pada permulaan sistem. Perkhidmatan apcupsd sudah lama dan untuk memulakannya pada raspbian moden, saya harus mengubah fail /etc/init.d/apcupsd, dengan menambahkan baris-baris ini di suatu tempat di bahagian atas:
### BEGIN INIT INFO # Menyediakan: apcupsd # Required-Start: $ all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: daemon UPS APC… ### END INIT INFO #
Kemudian aktifkan perkhidmatan:
sudo systemctl mengaktifkan apcupsd
Kemudian mulakan perkhidmatan:
sudo systemctl mulakan apcupsd
Sekarang apcupsd akan dimulakan pada permulaan sistem.
Untuk memasang control.py sebagai perkhidmatan, saya menggunakan skrip service_install.sh yang disediakan:
sudo bash service_install.sh ~ / cloud4rpi / control.py
Kini perkhidmatan dimulakan dan ia masih perlu dijalankan semula.
Langkah 5: Menyiapkan Panel Kawalan
Cloud4rpi membolehkan saya menyediakan panel kawalan untuk peranti saya. Anda dapat menambahkan "widget" dan mengikatnya ke pemboleh ubah peranti.
Peranti saya menyediakan dua pemboleh ubah baca sahaja - RoomTemp dan UPSStatus:
pemboleh ubah = {'RoomTemp': {'type': 'numeric', 'bind': ds_sensors [0]}, 'UPSStatus': {'type': 'string', 'bind': ups_status}}
Saya menambah 3 widget - Nombor untuk RoomTemp, Teks untuk UPSStatus dan Carta untuk RoomTemp.
Saya boleh menetapkan amaran, jadi saya menerima e-mel apabila suhu berada di luar jangkauan yang ditentukan, UPS pergi ke luar talian atau peranti itu sendiri tidak menghantar data apabila sepatutnya. Sekarang saya dapat memastikan rumah negara saya baik-baik saja, dan saya dapat diberitahu apabila ada yang tidak kena, jadi saya dapat menghubungi jiran dan meminta mereka untuk memeriksa apa yang sedang berlaku. Inilah kod sebenar control.py.
Disyorkan:
Kawal Pintu Gelongsor Automatik Anda Dengan Pembantu Rumah dan ESP Rumah: 5 Langkah (dengan Gambar)
Kawal Pintu Gelongsor Automatik Anda Dengan Pembantu Rumah dan ESPRumah: Artikel berikut adalah beberapa maklum balas mengenai pengalaman peribadi saya mengendalikan pintu gelangsar automatik yang telah saya pasangkan di rumah saya. Pintu gerbang ini, berjenama " V2 Alfariss ", telah dilengkapi dengan beberapa alat kawalan jauh Phox V2 untuk mengawalnya. Saya juga ada
Pemantauan Suhu dan Kelembapan Jauh Dengan Aplikasi ESP8266 dan Blynk: 15 Langkah
Pemantauan Suhu dan Kelembapan Jauh Dengan Aplikasi ESP8266 dan Blynk: Ini adalah projek pertama saya dengan cip ESP8266. Saya baru sahaja membina rumah hijau baru berhampiran rumah saya dan menarik bagi saya apa yang berlaku di sana selama sehari? Maksud saya bagaimana suhu dan kelembapan berubah? Adakah rumah hijau cukup berventilasi? Jadi saya dek
Sistem Pemantauan dan Kawalan Rumah Hijau Hidroponik: 5 Langkah (dengan Gambar)
Sistem Pemantauan dan Kawalan Rumah Hijau Hidroponik: Dalam petunjuk ini, saya akan menunjukkan kepada anda bagaimana membina sistem pemantauan dan kawalan rumah hijau hidroponik. Saya akan menunjukkan kepada anda komponen yang dipilih, rajah pendawaian bagaimana litar itu dibina, dan lakaran Arduino yang digunakan untuk memprogram
Automasi dan Pemantauan Rumah yang Dikawal Suara / Internet DIY Menggunakan ESP8266 dan Google Home Mini: 6 Langkah
Automasi dan Pemantauan Rumah yang Dikawal Suara / Internet DIY Menggunakan ESP8266 dan Google Home Mini: Hai !! Setelah berehat panjang, saya di sini kerana kita semua mesti melakukan sesuatu (pekerjaan) yang membosankan. Selepas semua artikel RUMAH AUTOMASI yang saya tulis dari BLUETOOTH, IR, Local WIFI, Cloud iaitu yang sukar, * SEKARANG * datanglah paling mudah tetapi paling berkesan
Pemantauan Rumah Pintar Menggunakan Alexa dan Arduino: 9 Langkah (dengan Gambar)
Pemantauan Rumah Pintar Menggunakan Alexa dan Arduino: Di dunia sekarang orang menghabiskan lebih banyak masa di tempat kerja dan bukannya di rumah mereka. Oleh itu terdapat keperluan sistem pemantauan rumah di mana orang dapat mengetahui keadaan rumah semasa mereka bekerja. Akan lebih baik lagi jika seseorang