Turinys:
- Prekės
- 1 žingsnis: prijunkite vandens jutiklį prie dalelių
- 2 veiksmas: prijunkite aliarmo šaltinį prie aviečių
- 3 veiksmas: sukonfigūruokite „Apache“serverį
- 4 veiksmas: įjunkite CGI „Apache“
- 5 veiksmas: nustatykite tinklalapį
- 6 veiksmas: sukurkite „Raspi Camera“scenarijų
Video: Kaip sukurti išmaniąją potvynių aptikimo signalizacijos sistemą naudojant Raspberry Pi ir argono daleles: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Standartiniai potvynių jutikliai yra puikūs, kad būtų išvengta didelės žalos jūsų namams ar darbo vietai.
Tačiau sunku, jei nesate namuose, apsilankyti žadintuve.
Žinoma, jūs galite nusipirkti protingus
Ši potvynių aliarmo sistema aptinka bet kokį skystį ir suaktyvina aliarmą ir atnaujina tinklalapį apie potvynį, kurį galima pasiekti bet kurioje pasaulio vietoje, nesvarbu, ar atostogaujate atostogų metu, ar tiesiog dirbate, ir norite sužinoti apie savo būsto būklę.
Prekės
Raspberry pi (naudoju 3 B+modelį), kuriame veikia raspbian
Argono dalelės
Grove vandens jutiklis
„Raspi“kamera
Garsinis signalas
Jumperio laidai
1 žingsnis: prijunkite vandens jutiklį prie dalelių
vandens jutiklis turi 4 kaiščius, kurie yra GND, VCC, NC ir SIG, ir mes ketiname naudoti tik tris iš jų
Aš jungiu SIG kaištį prie Argon D2.
Dabar galite paleisti „Particle Web IDE“, kad parašytumėte kodą ir paleistumėte „Argon“
Taigi mes užregistravome dalelių funkcinį skystį ir apibrėžėme kintamąjį isFloodPresent, kurį galima iškviesti iš dalelių konsolės ir gauti loginę isFloodPresent vertę, taip pat iškviesti funkcinį skystį bandomajam bandymui, kurio vertė 1 kaip įvestis, o tai reiškia, kad esama potvynio (vandens).
įsitikinkite, kad galite matyti šią funkciją ir kintamąjį savo dalelių įrenginio dalelių konsolėje.
2 veiksmas: prijunkite aliarmo šaltinį prie aviečių
Duonos lentoje galite prijungti „Buzzer“prie „Raspberry“GPIO kaiščio
Mažesnį garsinio signalo galą prijungiau prie GND (PIN 6), o ilgesnį - prie avinėlio 7 kaiščio.
Dabar paleiskite kodą, kad pamatytumėte. Mums reikės, kad šis „python“failas veiktų visą laiką, kad jis galėtų gauti aktyviklius iš žiniatinklio serverio ir atitinkamai reaguoti.
Arba galite paleisti šį failą paleisdami savo avietę, kurią galite padaryti redaguodami /etc /systemd
ir šis failas bus patalpintas jūsų apache serverio cgi aplanke, Sukūriau naują katalogą „flood-cgi“/var/www/html/ir įdėjau šį.py failą, kuris bendrauja su mano cgi scenarijumi
3 veiksmas: sukonfigūruokite „Apache“serverį
apache serverį galite įdiegti įvesdami sudo apt-get install apache2
kai ji įdiegta, galite patikrinti įvesdami kompiuterio pavadinimą -I
ir jūs gausite savo vietinį IP adresą ir galėsite eiti į savo naršyklę ir pamatyti, kaip veikia serveris
4 veiksmas: įjunkite CGI „Apache“
galite įjungti cgi įvesdami sudo a2enmod cgi
Pagal numatytuosius nustatymus apache cgi_bin yra/usr/lib/cgi-bin
čia galite įdėti savo cgi scenarijus įjungę cgi
norėdami pasiekti efektą, turite iš naujo paleisti „apache“serverį
Norėjau pritaikyti savo cgi scenarijų katalogą, todėl sukūriau katalogą/var/www/html/pavadinimu „flood-cgi“
norėdamas įjungti šį katalogą, turėjau padaryti conf failą įvesdamas
sudo nano /etc/apache2/conf-available/flood-cgi.conf
ir pridėti komandas, kaip parodyta ekrano kopijoje
tada įjunkite šį katalogą įvesdami
var/www/html $ sudo a2enconf flood-cgi
dabar galite iš naujo paleisti apache serverį ir visi cgi iš šio aplanko bus skaitomi apache po leidimo.
5 veiksmas: nustatykite tinklalapį
Šiai paprasta žiniatinklio paslaugai naudoju HTML, Javascript, CSS, jquery ir ajax.
Turiu penkias valdomas etiketes, kurias galima spustelėti, Jei iš tinklalapio spustelėjama fotografuoti, ji suaktyvina nuotraukos mygtuko paspaudimo funkciją ir ši funkcija atrodo taip
$ ("#photobutton"). spustelėkite (funkcija () {var floodDate = new Date ();
var floodImageName = "Flood_IMG_" + floodDate.toLocaleTimeString ();
$.ajax ({
url: 'flood-cgi/flood_cgi.py', metodas: „post“, duomenys: {name_for_image: floodImageName}, sėkmė: funkcija (duomenys) {
įspėjimas (duomenys, būsena)
$ ("#Recentpic"). attr ("src", "flood-cgi/" + floodImageName + ".jpg");
}
})
});
tai iškvies scenarijų „flood_cgi.py“, kad nufotografuotų ir išsaugotų vaizdą pagal pasirinktą pavadinimą, sukurtą pagal dabartinę datą ir laiką, o „ajax“įkeliamas į puslapį.
aliarmo atveju galime naudoti šią funkciją
funkcija callAlarm (alarmType) {
$.ajax ({
URL: „flood-cgi/alarm.cgi“, metodas: „post“, duomenys: {alarm_type: alarmType}, sėkmė: funkcija (duomenys) {įspėjimas (duomenys)
}, klaida: funkcija (XMLHttpRequest, textStatus, throError) {alert (throError)}});
}
funkcija callAlarm bus iškviesta, kai bus spustelėta garsinio signalo etiketė, $ ("#buzzer"). spustelėkite (funkcija () {callAlarm ("test");
})
žemiau esantis kodas yra tada, kai norite spustelėti netikrą potvynį, t. y. paskambinus „Particle API“, iškviesti funkciją ir pakeisti skysčio vertę 1 ir patikrinti, ar visa sistema veikia taip, kaip tikėtasi, atlikdami bandomąjį potvynio įvykį
$ ("#mockFlood"). click (function () {console.log ("juokingas potvynis paprašė");
var potvynisVal = 1;
$ ("#signal2"). css ("šrifto dydis", "mažas");
var varName = "isFloodPresent";
var deviceID = "JŪSŲ ĮRENGINIO ID";
var accessToken = "JŪSŲ PRIEIGA PATIKRINTA";
if (floodVal) {
$.post ("https://api.particle.io/v1/devices/" + deviceID + "/liquid? access_token =" + accessToken, {skystis: floodVal}, funkcija (duomenys, būsena) {
if (status == "sėkmė") {
įspėjimas ("įvykdytas netikras potvynis !!!");
} Kitas {
įspėjimas („Atsiprašome, kilo problema“);
}
});
}
});
Tai yra pagrindinės funkcijos, kurių reikia norint užmegzti ryšį su dalelėmis Api ir jūsų avietėmis, kad jūsų aviečių pi ir dalelių įrenginys Argon galėtų bendrauti.
pastaba: norėjau įkelti visą kodą, bet jis neleidžia įkelti.html failo
6 veiksmas: sukurkite „Raspi Camera“scenarijų
mes kuriame paprastą.py vaizdą ir jame bus dabartinės datos ir laiko komentarai.
tada mes sukursime cgi scenarijų flood_cgi.py, todėl jis bus iškviestas iš žiniatinklio ir tai lieps fotografuoti.py failą.
būtinai paleiskite cgi scenarijų su #! /usr/bin/env python
taip pat duokite apache leidimą paleisti šiuos failus.
„apache“serveris veikia naudotojo „www“duomenimis, todėl kai sukuriame.py arba.cgi failą, apache turi būti failo savininkas
sudo chown pi: www-data flood-cgi.py
ir duoti leidimą vykdyti
sudo chmod a+x flood-cgi.py
turėsite tai padaryti visiems failams, kuriuos reikia paleisti iš apache serverio.
PASTABA: veikiant avietėms internete ir suteikiant visus šiuos leidimus, avietės dėl saugumo priežasčių tampa labai pažeidžiamos, todėl reikia laikytis griežtų naudotojų ir leidimų ir įdiegti ugniasienę kaip nesudėtingą užkardą (ufw)
Rekomenduojamas:
„Pasidaryk pats“judesio aptikimo SMS signalizacijos sistema: 5 žingsniai (su paveikslėliais)
„Pasidaryk pats“judesio aptikimo SMS signalizacijos sistema: Šiame projekte aš sujungsiu pigų PIR judesio jutiklį su TC35 GSM moduliu, kad sukurtų signalizacijos sistemą, kuri atsiųs jums „INTRUDER ALERT“. SMS, kai kas nors bando pavogti jūsų daiktus. Pradėkime
„Arduino“dujų aptikimo signalizacijos sistema: 6 žingsniai
„Arduino“dujų aptikimo signalizacijos sistema: Sveiki, visi! Šiuo metu aš paaiškinsiu, kaip sukurti „Arduino“dujų aptikimo signalizacijos sistemą tinkercad. Ši grandinė naudoja dujų jutiklį, kad nustatytų, ar netoliese yra gaisras, dūmai ar dujų nuotėkis. Naudojant LCD ir aliarmą, ši grandinė taip pat
Kaip sukurti judesio aptikimo sistemą naudojant „Arduino“: 7 žingsniai
Kaip sukurti judesio aptikimo sistemą naudojant „Arduino“: sukurkite judesio ir buvimo gamybos skaitiklį naudodami „Feather HUZZAH“, užprogramuotą naudojant „Arduino“ir maitinamą „Ubidots“. Veiksmingas fizinio judesio ir buvimo aptikimas išmaniuosiuose namuose ir išmaniojoje gamyboje gali būti labai naudingas programose nuo
Judesio aptikimo signalizacijos sistema: 11 žingsnių (su nuotraukomis)
Judėjimo aptikimo signalizacijos sistema: Pastaba! Reaktyvių blokų nebegalima atsisiųsti. Pagrindinė USB kamera gali būti naudojama judesiui kambaryje aptikti. Tolesniuose veiksmuose parodysime, kaip galite naudoti reaktyvius blokus, kad užprogramuotumėte paruoštą paleisti „Java“programą, siunčiančią SMS
Kaip sukurti autonominį krepšinio žaidimo robotą, naudojant „IRobot“, sukurti kaip pagrindą: 7 žingsniai (su paveikslėliais)
Kaip sukurti autonominį krepšinio žaidimo robotą naudojant „IRobot“sukurti kaip pagrindą: tai mano įrašas, skirtas iššūkiui „iRobot Create“. Sunkiausia viso šio proceso dalis buvo nuspręsti, ką robotas ketina daryti. Norėjau pademonstruoti puikias „Create“savybes, kartu pridėdamas šiek tiek robo nuojautos. Visas mano