Mundarija:
- Ta'minotlar
- 1 -qadam: Suv sensorini zarrachaga ulang
- 2 -qadam: Signal manbasini Raspberry -ga ulang
- 3 -qadam: Apache serverini sozlang
- 4 -qadam: Apache -da CGI -ni yoqing
- 5 -qadam: veb -sahifani sozlash
- 6 -qadam: Raspi Camera uchun skript yarating
Video: Raspberry Pi va Argon zarrachalari yordamida suv toshqinini aniqlash signalizatsiya tizimini qanday qilish kerak: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Standart suv toshqini sensorlari sizning uyingiz yoki ish joyingizga katta zarar etkazilishining oldini olish uchun juda yaxshi.
Ammo, agar siz uyda bo'lmasangiz, signalga kirishni qiyinlashtirasiz.
Albatta, siz ularni aqlli sotib olishingiz mumkin
Suv toshqini signalizatsiyasi har qanday suyuqlikni aniqlaydi va signalni ishga tushiradi va dunyoning istalgan nuqtasiga kira oladigan suv toshqini haqidagi veb -sahifani yangilaydi, siz dam olayotganingizda yoki ishda bo'lsangiz ham, siz uyingizning holati haqida bilmoqchisiz.
Ta'minotlar
Raspberry pi (men 3 B+modelini ishlataman) raspbian bilan ishlaydi
Argo zarrachasi
Grove suv sensori
Raspi kamera
Buzzer
Jumper simlari
1 -qadam: Suv sensorini zarrachaga ulang
Suv sensori 4 ta pinli, ular GND, VCC, NC va SIG va biz ulardan faqat uchtasini ishlatamiz.
Men SIG pinini Argonda D2 ga ulayman.
Endi siz Argon -ga kod yozish va o'chirish uchun Particle Web IDE -ni ishga tushirishingiz mumkin
Shunday qilib, biz zarracha funktsiyasi suyuqligini ro'yxatdan o'tkazdik va PartFor Console -dan chaqiriladigan isFloodPresent boolean qiymatini olishimiz mumkin bo'lgan isFloodPresent o'zgarmaydiganini aniqladik va shuningdek, toshqin (suv) uchun haqiqiy degan ma'noni anglatuvchi 1 qiymatini oladigan soxta sinov uchun funktsional suyuqlikni chaqirdik..
zarracha qurilmangizning zarracha konsolidan bu funktsiyani va o'zgaruvchini ko'rishingiz mumkinligiga ishonch hosil qiling.
2 -qadam: Signal manbasini Raspberry -ga ulang
Non panelida siz Buzzerni Raspberry GPIO piniga ulashingiz mumkin
Men buzzerning kichik uchini GND (PIN 6) va uzunroq uchini malinaning 7 -piniga uladim.
Endi ko'rish uchun kodni ishga tushiring. Bizga bu python fayli doimo ishga tushishi kerak bo'ladi, shuning uchun u tetiklarni veb -serverdan qabul qilishi va shunga mos ravishda javob berishi mumkin.
Shu bilan bir qatorda, bu faylni malinangizda ishga tushirishda ishga tushirishingiz mumkin, buni /etc /systemd tahrirlash orqali qilishingiz mumkin
va bu fayl apache serveringizning cgi papkasida joylashtiriladi, Men/var/www/html/ichida
3 -qadam: Apache serverini sozlang
sudo apt-get install apache2 yozib apache serverini o'rnatishingiz mumkin
u o'rnatilganda, siz hostname -I ni yozib tekshirishingiz mumkin
va siz mahalliy IP -manzilni olasiz va siz brauzeringizga kirishingiz mumkin va server ishlayotganini ko'rasiz
4 -qadam: Apache -da CGI -ni yoqing
sudo a2enmod cgi yozish orqali cgi -ni yoqishingiz mumkin
Apache-ning cgi_bin sukut bo'yicha/usr/lib/cgi-bin-da joylashgan
bu erda siz cgi -ni yoqgandan so'ng cgi skriptlarini qo'yishingiz mumkin
ta'sir qilish uchun siz apache serverini qayta ishga tushirishingiz kerak
Men cgi skriptlari uchun maxsus katalogni xohladim, shuning uchun
bu katalogni yoqish uchun yozish orqali conf faylini tuzishim kerak edi
sudo nano /etc/apache2/conf-available/flood-cgi.conf
va skrinshotda ko'rsatilgandek buyruqlarni qo'shish
keyin yozish orqali ushbu katalogni yoqing
var/www/html $ sudo a2enconf sel-cgi
Endi siz apache serveringizni qayta ishga tushirishingiz mumkin va bu papkadagi barcha cgi ruxsatdan keyin apache tomonidan o'qiladi.
5 -qadam: veb -sahifani sozlash
Ushbu oddiy veb -xizmat uchun men HTML, Javascript, CSS, jquery va ajaxdan foydalanaman.
Menda bosish mumkin bo'lgan beshta boshqaruv yorlig'i bor, Agar veb -sahifadan suratga olinsa, u tugmachani bosish funktsiyasini ishga tushiradi va bu funksiya shunday ko'rinadi
$ ("#photobutton"). bosing (function () {var FloodDate = new Date ();
var FloodImageName = "Flood_IMG_" + FloydDate.toLocaleTimeString ();
$.ajax ({
url: 'sel-cgi/sel_cgi.py', usul: "post", ma'lumotlar: {name_for_image: FloodImageName}, muvaffaqiyat: funktsiya (ma'lumotlar) {
ogohlantirish (ma'lumotlar, holat)
$ ("#oxirgi rasm"). attr ("src", "sel-cgi/" + selImageName + ".jpg");
}
})
});
bu Flood_cgi.py skriptini suratga olish uchun chaqiradi va rasmni joriy sana va vaqt va ajax sahifaga yuklangan maxsus nom bilan saqlaydi.
signal bo'lsa, biz bu funktsiyadan foydalanishimiz mumkin
callAlarm (signalType) funksiyasi {
$.ajax ({
url: 'sel-cgi/alarm.cgi', usul: "post", ma'lumotlar: {alarm_type: alarmType}, muvaffaqiyat: funktsiya (ma'lumotlar) {ogohlantirish (ma'lumotlar)
}, xato: funktsiya (XMLHttpRequest, textStatus, throwError) {ogohlantirish (throwError)}});
}
callAlarm funktsiyasi qo'ng'iroq belgisi bosilganda chaqiriladi, $ ("#buzzer"). bosing (function () {callAlarm ("test");
})
Quyidagi kod - siz zarba suvini bosmoqchi bo'lsangiz, ya'ni Particle API -ni chaqiring va funktsiyani chaqiring va suyuqlikning qiymatini o'zgartiring va butun tizim kutilganidek ishlayotganini tekshiring.
$ ("#mockFlood"). bosing (function () {console.log ("soxta toshqin talab qilingan");
var selVal = 1;
$ ("#signal2"). css ("shrift o'lchami", "kichik");
var varName = "isFloodPresent";
var deviceID = "SIZNING QURILMA ID";
var accessToken = "KIRISH TOKENINGIZ";
agar (FloodVal) {
$.post ("https://api.particle.io/v1/devices/" + deviceID + "/suyuqlik? access_token =" + accessToken, {suyuqlik: selVal}, funktsiya (ma'lumotlar, holat) {
agar (status == "muvaffaqiyat") {
ogohlantirish ("Mock Flood o'tkazdi !!!");
} boshqa {
ogohlantirish ("Kechirasiz, muammo yuz berdi");
}
});
}
});
Bu sizning zarracha api va malinangiz bilan aloqa o'rnatishingiz kerak bo'lgan asosiy funktsiyalar, shuning uchun siz malina pi va zarracha qurilmasi Argon bilan bog'lana olasiz.
Eslatma: Men barcha kodni yuklamoqchi edim, lekin u menga.html faylini yuklashga ruxsat bermaydi
6 -qadam: Raspi Camera uchun skript yarating
biz tasvirni olish uchun oddiy.py faylini yaratmoqdamiz va unda joriy sana va vaqt izohi bo'ladi.
Keyin biz cgi skriptini Flood_cgi.py yaratamiz, shunda u Internetdan chaqiriladi va bu.py faylini suratga olishni buyuradi.
cgi skriptini #bilan boshlaganingizga ishonch hosil qiling! /usr/bin/env python
va apache -ga ushbu fayllarni ishga tushirishga ruxsat bering.
apache serveri www-data foydalanuvchisida ishlaydi, shuning uchun.py yoki.cgi faylini yaratganimizda, apache fayl egasi bo'lishi kerak.
sudo chown pi: www-ma'lumotlar sel-cgi.py
va bajarishga ruxsat bering
sudo chmod a+x sel-cgi.py
Siz buni apache serveridan ishlashi kerak bo'lgan barcha fayllar uchun qilishingiz kerak bo'ladi.
QAYD: malinani internetga chiqarish va barcha ruxsatnomalarni berish sizning malinangizni xavfsizlik nuqtai nazaridan juda himoyasiz qiladi, shuning uchun qattiq foydalanuvchi va ruxsatlarga rioya qilish va xavfsizlik devorini oddiy xavfsizlik devori kabi o'rnatish kerak (ufw)
Tavsiya:
Z44N MOSFET yordamida suv oqimi signalizatsiya sxemasini qanday qilish kerak: 7 qadam
Z44N MOSFET -dan foydalanib, suv oqimi signalizatorini qanday o'chirish mumkin: Salom do'stim, bugun men suv oqimi signalizatsiyasi sxemasini tuzmoqchiman. Asosan, bu sxemadan biz suv idoramizdagi suv oqimini bilib olamiz. IRFZ44N MOSFET -dan foydalangan holda ushbu loyiha
Uyda 10 dollarlik WiFi xavfsizlik tizimini qanday qilish kerak? Hech qanday joyda to'lovlar va ishlar yo'q!: 3 qadam
Uyda 10 dollarlik WiFi xavfsizlik tizimini qanday qilish kerak? Hech qanday joyda to'lovlar va ishlar yo'q!: Uyda 10 dollarlik Wi -Fi xavfsizlik xabarnomalari tizimini qanday qilish kerak? Hech qanday to'lov yo'q va u hamma joyda ishlaydi! Agar PIR harakat sensori har qanday harakatni aniqlasa, u sizning mobil telefoningizga xabar yuboradi. ESP8266 ESP-01 WiFi moduli, PIR harakat sensori va 3.3
Arduino yordamida avtomatik sug'orish tizimini qanday qilish kerak: 5 qadam
Arduino yordamida avtomatik sug'orish tizimini qanday qilish kerak: Ushbu yo'riqnomada men sizga tuproqdagi suv tarkibini sezadigan va bog'ingizni avtomatik ravishda sug'oradigan avtomatik sug'orish tizimini qanday qurish va joriy qilishni ko'rsataman. Bu tizim har xil ekin talablari uchun dasturlashtirilishi mumkin va
NodeMCU yordamida Firebase uy avtomatlashtirish tizimini qanday qilish kerak - IOT platformasida: 14 qadam
NodeMCU yordamida Firebase uy avtomatlashtirish tizimini qanday qilish kerak | IOT platformasida: BU LOYIHANING MAKSADI Bu loyiha IOT Android ilovasi yordamida foydalanuvchining uyining masofadan boshqariladigan barcha qurilmalarini to'liq boshqarish imkonini beruvchi uy avtomatlashtirish tizimini ishlab chiqishga qaratilgan
Ultrasonik sensor va Funduino suv sensori yordamida Arduino suv sathini aniqlash usullari: 4 qadam
Ultrasonik sensor va Funduino suv sensori yordamida Arduino suv sathini aniqlash usullari: Ushbu loyihada men sizga ikkita usuldan foydalanib, arzon suv detektori qanday yaratilishini ko'rsataman: 1. Ultrasonik sensor (HC-SR04) .2. Funduino suv sensori