Мазмуну:

Raspberry Pi жана бөлүкчө аргонун колдонуп, топон суусун табуунун сигнализация системасын кантип жасоо керек: 6 кадам
Raspberry Pi жана бөлүкчө аргонун колдонуп, топон суусун табуунун сигнализация системасын кантип жасоо керек: 6 кадам

Video: Raspberry Pi жана бөлүкчө аргонун колдонуп, топон суусун табуунун сигнализация системасын кантип жасоо керек: 6 кадам

Video: Raspberry Pi жана бөлүкчө аргонун колдонуп, топон суусун табуунун сигнализация системасын кантип жасоо керек: 6 кадам
Video: 11-класс | Физика | Элементардык бөлүкчөлөр жана алардын касиеттери 2024, Ноябрь
Anonim
Image
Image
Raspberry Pi жана бөлүкчө аргонун колдонуп, топон суусун табуунун акылдуу тутумун кантип жасоо керек
Raspberry Pi жана бөлүкчө аргонун колдонуп, топон суусун табуунун акылдуу тутумун кантип жасоо керек

Стандарттык сел сенсорлорунун болушу үйүңүзгө же жумуш ордуңузга чоң зыян келтирбөө үчүн эң сонун.

Бирок, эгер сиз үйдө болбосоңуз, ойготкучка катышууңузду кыйындатат.

Албетте, бул акылдуу адамдарды сатып алсаңыз болот

Бул сел сигнализациясы ар кандай суюктукту аныктайт жана ойготкучту коет жана дүйнөнүн каалаган жерине кирүүгө боло турган сел жөнүндө веб баракчаны жаңыртат, сиз эс алып жатасызбы же жөн эле жумуштасыз жана үйүңүздүн абалы жөнүндө билгиңиз келет.

Жабдуулар

Raspberry pi (мен 3 B+моделин колдонуп жатам) raspbian иштейт

Аргон бөлүкчөсү

Grove суу сенсору

Raspi Camera

Коңгуроо

Өткөргүч зымдар

1 -кадам: Суу сенсорун бөлүкчөгө туташтырыңыз

Суу сенсорун бөлүкчөгө туташтырыңыз
Суу сенсорун бөлүкчөгө туташтырыңыз
Суу сенсорун бөлүкчөгө туташтырыңыз
Суу сенсорун бөлүкчөгө туташтырыңыз

суу сенсорунда 4 пин бар, алар GND, VCC, NC жана SIG жана биз алардын үчөөнү гана колдонобуз

Мен SIG пинди D2ге Аргондо туташтырып жатам.

Эми, сиз Particle Web IDE кодун жаза аласыз жана Аргонго жаркылдай аласыз

Ошентип, биз Бөлүкчөлөрдүн функционалдык суюктугун каттадык жана PartFor Consoleдон чала турган isFloodPresent өзгөрмөсүн аныктадык жана isFloodPresent логикалык маанисин алалы, ошондой эле фокустук тестирлөө үчүн функционалдык суюктукту чакырабыз, бул 1 маанисин киргизүү катары билдирет, бул сел (суу) үчүн чыныгы маанини билдирет.

Бул функцияны жана өзгөрмөнү бөлүкчөлөрүңүздүн бөлүкчөлөрүнүн консолунан көрө алышыңыз керек.

2 -кадам: Ойготкуч булагын Raspberry менен туташтырыңыз

Ойготкуч булагын Raspberry менен туташтырыңыз
Ойготкуч булагын Raspberry менен туташтырыңыз

Нан тактасында Buzzerди Raspberry GPIO пинине туташтырсаңыз болот

Мен ызылчактын кичине башын GNDге (PIN 6) жана узагыраагын малинанын 7 -пинине туташтырдым.

Эми кодду көрүү үчүн иштетиңиз. Бизге бул python файлы дайыма иштеп турушу керек, ал триггерлерди веб -серверден алат жана ошого жараша жооп берет.

Же болбосо, бул файлды малинаңыздын башталышында иштете аласыз, аны /etc /systemd менен түзөтө аласыз

жана бул файл сиздин apache серверинин cgi папкасына жайгаштырылат, Мен/var/www/html/ичинде жаңы каталог сел-cgi кылдым жана бул менин cgi скрипти менен байланышкан.py файлын жайгаштырдым

3 -кадам: Apache Serverди конфигурациялоо

Apache Serverди конфигурациялоо
Apache Serverди конфигурациялоо

sudo apt-get install apache2 терүү менен apache серверин орното аласыз

ал орнотулганда, сиз хосттун атын терүү менен текшере аласыз -I

жана сиз жергиликтүү IP дарегиңизди аласыз жана браузериңизге баш багып, сервердин иштеп жатканын көрөсүз

4 -кадам: Apacheде CGI иштетүү

Apacheде CGI иштетүү
Apacheде CGI иштетүү

sudo a2enmod cgi терүү менен cgi иштете аласыз

Демейки боюнча apache cgi_bin/usr/lib/cgi-bin ичинде жайгашкан

бул жерде cgi иштетилгенден кийин cgi скрипттерин коюуга болот

күчүнө кирүү үчүн, apache серверин кайра баштооңуз керек

Мен cgi сценарийлери үчүн ыңгайлаштырылган каталогду кааладым, ошондуктан/var/www/html/каталогун сел-cgi деп түздүм

Бул каталогду иштетүү үчүн, конф файлын терүү менен түзүшүм керек болчу

sudo nano /etc/apache2/conf-available/flood-cgi.conf

жана скриншотто көрсөтүлгөндөй буйруктарды кошуу

андан кийин терүү менен бул каталогду иштетүү

var/www/html $ sudo a2enconf сел-cgi

Эми сиз apache сервериңизди кайра өчүрүп күйгүзө аласыз жана бул папкадан бардык cgi уруксаат алгандан кийин apache тарабынан окулат.

5 -кадам: Web баракчасын орнотуу

Желе баракчасын орнотуу
Желе баракчасын орнотуу

Бул жөнөкөй веб кызматы үчүн мен HTML, Javascript, CSS, jquery жана ajaxти колдонуп жатам.

Менде чыкылдатуучу беш көзөмөл этикеткасы бар, Веб -баракчадан сүрөт тартуу чыкылдатылган учурда, ал сүрөт баскычын басуу функциясын иштетет жана бул функция мындай көрүнөт

$ ("#photobutton"). чыкылдатуу (function () {var FloodDate = new Date ();

var FloodImageName = "Flood_IMG_" + FloodDate.toLocaleTimeString ();

$.ajax ({

url: 'сел-cgi/sel_cgi.py', ыкма: 'пост', маалыматтар: {name_for_image: FloodImageName}, ийгилик: функция (маалыматтар) {

эскертүү (маалыматтар, абал)

$ ("#latestpic"). attr ("src", "сел-cgi/" + FloodImageName + ".jpg");

}

})

});

Бул сүрөткө тартуу үчүн Flood_cgi.py скриптин чакырат жана учурдагы дата жана убакыт жана ajax баракчасына жүктөлгөн колдонуучунун аты менен сүрөттү сактайт.

Ойготкуч болгон учурда, биз бул функцияны колдоно алабыз

callAlarm (alarmType) функциясы {

$.ajax ({

url: 'сел-cgi/alarm.cgi', ыкма: 'пост', маалыматтар: {alarm_type: alarmType}, ийгилик: функция (маалыматтар) {эскертүү (маалыматтар)

}, ката: функция (XMLHttpRequest, textStatus, throwError) {alert (throwError)}});

}

callAlarm функциясы ызылдагыч энбелгиси басылганда чакырылат, $ ("#buzzer"). click (function () {callAlarm ("test");

})

Төмөндөгү код - бул жасалма суу баскычын чыкылдатуу, башкача айтканда, Particle APIге чалуу жана функцияны чакыруу жана суюктуктун маанисин 1 өзгөртүү жана системанын текшерилиши

$ ("#mockFlood"). чыкылдатуу (function () {console.log ("жасалма сел талап кылды");

var FloodVal = 1;

$ ("#signal2"). css ("font-size", "small");

var varName = "isFloodPresent";

var deviceID = "СИЗДИН ТҮЗМӨК ID";

var accessToken = "СИЗДИН КИРҮҮ ТОКЕНИҢИЗ";

if (FloodVal) {

$.post ("https://api.particle.io/v1/devices/" + deviceID + "/liquid? access_token =" + accessToken, {суюк: FloodVal}, функция (маалыматтар, абал) {

if (status == "ийгилик") {

эскертүү ("Mock Flood өткөрдү !!!");

} башка {

эскертүү ("Кечиресиз, көйгөй чыкты");

}

});

}

});

Бул сиздин бөлүкчө Апи жана малинаңыз менен байланыш түзүшүңүз керек болгон негизги функциялар, ошондуктан сиздин малина пи жана бөлүкчөлөрүңүз Аргон байланыша алат.

Эскертүү: Мен бардык кодду жүктөгүм келди, бирок ал мага.html файлын жүктөөгө уруксат бербейт

6 -кадам: Raspi Camera үчүн скрипт түзүңүз

Биз сүрөттү тартуу үчүн жөнөкөй.py түзүп жатабыз жана анда учурдагы датасы жана убактысы бар.

анда cgi скриптин Flood_cgi.py түзөбүз, андыктан ал интернеттен чакырылат жана бул.py файлды сүрөткө тартууга буйрук берет.

cgi скриптин #менен баштоону унутпаңыз! /usr/bin/env python

жана ошондой эле apacheге бул файлдарды иштетүүгө уруксат бериңиз.

apache сервери www-data колдонуучусунда иштейт, ошондуктан.py же.cgi файлын түзгөндөн кийин, апаче файлдын ээси болушу керек

sudo chown pi: www-маалымат сел- cgi.py

жана аткарууга уруксат берүү

sudo chmod a+x сел- cgi.py

Сиз муну apache серверинен иштеши керек болгон бардык файлдар үчүн жасашыңыз керек болот.

ЭСКЕРТҮҮ: малинаңызды интернетке чыгаруу жана бул уруксаттардын бардыгын берүү сиздин малинаңызды коопсуздук үчүн өтө аялуу кылат, андыктан катаал колдонуучу жана уруксаттар сакталууга жана фейерверкти татаал эмес файрволго (ufw) орнотуу керек.

Сунушталууда: