Cuprins:
- Pasul 1: Marele Plan
- Pasul 2: Lista de cumpărături
- Pasul 3: Configurați Raspberry Pi
- Pasul 4: Configurați OpenCV
- Pasul 5: Configurați TensorFlow
- Pasul 6: Detectarea mișcării folosind OpenCV
- Pasul 7: Detectați obiecte folosind TensorFlow
- Pasul 8: configurați un server web pe Raspberry Pi
- Pasul 9: notificări mobile de la Raspberry Pi folosind IFTTT
- Pasul 10: Adăugați un releu HAT la Raspberry Pi și conectați-l la o electrovalvă
- Pasul 11: Conectați un senzor de nivel al apei
- Pasul 12: Scrieți codul pentru a-l lega împreună
Video: Pool Pi Guy - Sistem de alarmă controlat de AI și monitorizarea piscinei folosind Raspberry Pi: 12 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
A avea piscină acasă este distractiv, dar vine cu o mare responsabilitate. Cea mai mare îngrijorare a mea este monitorizarea dacă cineva este lângă nesupravegheat (mai ales copiii mai mici). Cea mai mare enervare a mea este să mă asigur că linia de apă a piscinei nu intră niciodată sub intrarea pompei, ceea ce ar face pompa uscată și ar distruge-o costând $ $ $ în reparații.
Recent am aflat cum să folosesc un Raspberry Pi cu OpenCV și TensorFlow, împreună cu un senzor de nivel al apei și o electrovalvă pentru a rezolva ambele probleme - și distrează-te făcând asta!
Se pare că este și un sistem de alarmă excelent - activat prin mișcare, controlat de AI, infinit personalizabil.
Hai să ne scufundăm.
Pasul 1: Marele Plan
În acest instructable vom arăta cum să:
- Configurați un Raspberry Pi cu OpenCV și TensorFlow
- Conectați o cameră web printr-un cablu USB lung
- Scrieți un algoritm OpenCV pentru a detecta mișcarea
- Utilizați TensorFlow pentru detectarea obiectelor
- Configurați un server web pe Raspberry Pi pentru a afișa imaginile interesante
- Integrarea cu IFTTT pentru a declanșa alerte mobile în cazul în care o persoană este detectată
- Atașați un releu HAT la Raspberry Pi și conectați-l la o electrovalvă care ar adăuga apă în piscină
- Atașați un senzor de nivel de apă la Raspberry Pi și interfațați cu acesta utilizând GPIO-ul Pi
- Scrieți un cod pentru a-l lipi împreună
Pasul 2: Lista de cumpărături
Toate componentele sunt disponibile de la Amazon. Simțiți-vă liber să experimentați și să schimbați componente - asta este jumătate din distracție!
- Raspberry Pi
- Sursă de alimentare Raspberry Pi (nu economisiți aici)
- Card de memorie (mai mare este mai bine)
- Carcasă (acesta este suficient de mare pentru a găzdui atât Pi, cât și HAT)
- Cameră web USB (orice cameră web va funcționa, dar doriți una care să obțină imagini bune și să echilibreze bine iluminarea)
- Cablu prelungitor USB (dacă este necesar - măsurați distanța dintre Pi și locul în care ați plasa camera)
- Placă de releu HAT (acesta are 3 relee și avem nevoie doar de unul, dar veți găsi o utilizare pentru celelalte în curând!)
- Solenoid
- Racordul solenoid 1 și racordul 2 (depinde într-adevăr de ceea ce vă potriviți solenoidul, dar acestea au funcționat pentru mine)
- Sursa de alimentare cu solenoid (orice 24V AC ar face)
- Cablu (din nou, aproape orice cablu cu 2 fire ar face - curentul este minim)
- Comutator plutitor la nivel de apă (acesta este doar un exemplu, verificați ce poate fi ușor conectat la piscina dvs.)
- Unele fire Jumper și conectori Wire
Pasul 3: Configurați Raspberry Pi
Raspberry Pi este un mic computer excelent. Costă doar 35 USD, rulează constant și are o mulțime de software și hardware compatibile. Configurarea este destul de ușoară:
- Formatați cardul SD. Acest lucru necesită o îngrijire specială - Raspberry Pi poate porni doar de pe un card SD formatat FAT. Urmați aceste instrucțiuni.
- Conectați Raspberry Pi la o tastatură și un mouse USB, plus un afișaj HDMI și urmați instrucțiunile din tutorialul Raspberry Pi NOOBS. Asigurați-vă că configurați WiFi și activați accesul SSH. Nu uitați să configurați o parolă pentru contul implicit pi.
- În configurarea rețelei dvs. de domiciliu, un IP static pentru Raspberry Pi - ar face mult mai ușor accesul la SSH.
- Asigurați-vă că aveți un client ssh instalat pe desktop / laptop. Pentru un PC aș recomanda Putty, pe care îl puteți instala de aici.
- Deconectați USB-ul și HDMI-ul de la Raspberry Pi, reporniți-l și conectați-l - dacă totul a funcționat, ar trebui să vedeți așa ceva:
Linux raspberrypi 4.14.98-v7 + # 1200 SMP Mar 12 Feb 20:27:48 GMT 2019 armv7l
Programele incluse în sistemul Debian GNU / Linux sunt programe gratuite; termenii exacți de distribuție pentru fiecare program sunt descriși în fișierele individuale din / usr / share / doc / * / copyright. Debian GNU / Linux vine cu ABSOLUT FĂRĂ GARANȚIE, în măsura permisă de legea aplicabilă. Ultima autentificare: luni 13 mai 10:41:40 2019 de la 104.36.248.13 pi @ raspberrypi: ~ $
Pasul 4: Configurați OpenCV
OpenCV este o colecție uimitoare de funcții de manipulare a imaginii pentru viziunea computerizată. Ne va permite să citim imagini de pe camera web, să le manipulăm pentru a găsi zone de mișcare, să le salvăm și multe altele. Configurarea pe Raspberry Pi nu este dificilă, dar necesită o îngrijire.
Începeți prin instalarea virtaulenvwrapper: vom folosi python pentru a face toate programările noastre, iar virtualenv ne va ajuta să păstrăm dependențele separate pentru OpenCV și TensorFlow vs. Flask sau GPIO:
pi @ raspberrypi: ~ $ sudo pip instala virtualenvwrapper
Acum puteți executa „mkvirtualenv” pentru a crea un mediu nou, „workon” pentru a lucra la acesta și multe altele.
Deci, să creăm un mediu pentru manipularea imaginii noastre, cu python 3 ca interpret implicit (este anul 2019, nu există niciun motiv să rămânem cu python 2 mai vechi):
pi @ raspberrypi: ~ $ mkvirtualenv cv -p python3
… (Cv) pi @ raspberrypi: ~
Acum suntem gata să instalăm OpenCV. Vom urmări în cea mai mare parte tutorialul excelent din Learn OpenCV. Urmați în mod specific pașii 1 și 2:
sudo apt -y updatesudo apt -y upgrade ## Instalare dependențe sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm sudo apt-get -y install git gfortran sudo apt-get -y install libjpeg8-dev libjasper- dev libpng12-dev sudo apt-get -y install libtiff5-dev sudo apt-get -y install libtiff-dev sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev sudo apt-get - y instalați libxine2-dev libv4l-dev cd / usr / include / linux sudo ln -s -f../libv4l1-videodev.h videodev.h sudo apt-get -y install libgstreamer0.10-dev libgstreamer-plugins-base0. 10-dev sudo apt-get -y install libgtk2.0-dev libtbb-dev qt5-default sudo apt-get -y install libatlas-base-dev sudo apt-get -y install libmp3lame-dev libtheora-dev sudo apt-get -y install libvorbis-dev libxvidcore-dev libx264-dev sudo apt-get -y install libopencore-amrnb-dev libopencore-amrwb-dev sudo apt-get -y install libavresample-dev sudo apt-get -y install x264 v4l-utils sudo apt-get -y instalați libprotobuf -dev protobuf-compilator sudo apt-get -y install libgoogle-glog-dev libgflags-dev sudo apt-get -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen sudo apt-get install libqtgui4 sudo apt-get install libqt4- Test
Acum putem instala doar OpenCV cu legături python în interiorul cv virtualenv (sunteți încă în el, nu?) Folosind
pip instalează opencv-contrib-python
Si asta e! Avem instalat OpenCV pe Raspberry Pi, gata să surprindă fotografii și videoclipuri, să le manipuleze și să fie cool.
Verificați acest lucru deschizând un interpret python și importând opencv și verificați dacă nu există erori:
(cv) pi @ raspberrypi: ~ $ python
Python 3.5.3 (implicit, 27 septembrie 2018, 17:25:39) [GCC 6.3.0 20170516] pe linux Tastați „ajutor”, „drepturi de autor”, „credite” sau „licență” pentru mai multe informații. >>> import cv2 >>>
Pasul 5: Configurați TensorFlow
TensorFlow este un cadru de învățare automată / AI dezvoltat și întreținut de Google. Are un suport extins pentru modele de învățare profundă pentru o varietate de sarcini, inclusiv detectarea obiectelor în imagini, iar acum este destul de simplu de instalat pe Raspberry Pi. Performanța modelelor sale ușoare pe micul Pi este de aproximativ 1 cadru pe secundă, ceea ce este perfect adecvat pentru o aplicație ca a noastră.
Vom urma practic tutorialul excelent de la Edje Electronics, cu modificări făcute posibile de distribuțiile mai recente TensorFlow:
pi @ raspberrypi: ~ $ workon cv
(cv) pi @ raspberrypi: ~ $ pip install tensorflow (cv) pi @ raspberrypi: ~ $ sudo apt-get install libxml2-dev libxslt-dev (cv) pi @ raspberrypi: ~ $ pip install pillow lxml jupyter matplotlib cython (cv) pi @ raspberrypi: ~ $ sudo apt-get install python-tk
Acum trebuie să compilăm protobuful Google. Doar urmați instrucțiunile din pasul 4 al aceluiași tutorial excelent
În cele din urmă, clonați și configurați definițiile modelului TensorFlow - urmați pasul 5 din tutorialul Edje Electronics
Nu ezitați să urmați exemplul lor și la pasul 6, este o introducere excelentă pentru detectarea obiectelor pe Raspberry Pi.
Pasul 6: Detectarea mișcării folosind OpenCV
Să începem prin a testa că OpenCV se poate interfața cu camera noastră web: ssh în Raspberry Pi, treceți la cv virtualenv (workon cv), deschideți un interpret python (introduceți doar python) și introduceți următoarele comenzi python:
import cv2
cap = cv2. VideoCapture (0) cap.set (cv2. CAP_PROP_FRAME_WIDTH, 1920) cap.set (cv2. CAP_PROP_FRAME_HEIGHT, 1080) ret, frame = cap.read () print ('Citește dimensiunea cadrului: {} x {}'.format (frame.shape [1], frame.shape [0])
Cu puțin noroc, veți vedea că OpenCV a reușit să citească un cadru HD de pe cameră.
Puteți utiliza cv2.imwrite (cale, cadru) pentru a scrie acel cadru pe disc și sftp-l înapoi pentru a avea un aspect real.
Strategia de detectare a mișcării este destul de simplă:
- Lucrați pe cadre cu rezoluție mai mică - nu este nevoie să operați pe full HD aici
- Mai mult, estompați imaginile pentru a asigura cât mai puțin zgomot posibil.
- Păstrați o medie de rulare a ultimelor N cadre. Pentru această aplicație, unde rata de cadre este de aproximativ 1 FPS (doar pentru că TensorFlow durează ceva timp pe cadru), am constatat că N = 60 dă rezultate bune. Și întrucât o implementare atentă nu necesită mai mult CPU cu mai multe cadre care este OK (necesită mai multă memorie - dar acest lucru este neglijabil atunci când lucrăm cu cadre cu rezoluție mai mică)
- Scadeți imaginea curentă din media de rulare (trebuie doar să aveți grijă la tastare - trebuie să permiteți valori pozitive și negative [-255.. 255], deci cadrul trebuie convertit în int)
- Puteți efectua scăderea pe o conversie la scară de gri a cadrului (și a mediei) sau o puteți face separat pentru fiecare dintre canalele RGB și apoi puteți combina rezultatele (care este strategia pe care am ales-o, făcându-l sensibil la schimbările de culoare)
- Folosiți un prag pe deltă și eliminați zgomotul prin eroziune și dilatare
- În cele din urmă, căutați contururile zonelor cu o deltă - aceste zone sunt locul în care s-a întâmplat mișcarea, iar imaginea actuală este diferită de media imaginilor anterioare. Dacă mai este nevoie, putem găsi cutii de delimitare pentru aceste contururi.
Am încapsulat codul pentru a face acest lucru în clasa python DeltaFinder pe care o puteți găsi în github-ul meu aici
Pasul 7: Detectați obiecte folosind TensorFlow
Dacă ați urmat procedura de instalare TensorFlow, ați testat deja că aveți TensorFlow instalat și funcțional.
În scopul detectării oamenilor într-o scenă generală în aer liber, modelele care sunt pregătite în prealabil pe setul de date COCO au performanțe destul de bune - care este exact modelul pe care l-am descărcat la sfârșitul instalării TensorFlow. Trebuie doar să-l folosim pentru deducere!
Din nou, am încapsulat încărcarea și inferența modelului în clasa python TFClassify pentru a ușura lucrurile, pe care le puteți găsi aici.
Pasul 8: configurați un server web pe Raspberry Pi
Cel mai simplu mod de a accesa rezultatele detectării obiectelor este un browser web, așa că haideți să configurăm un server web pe Raspberry Pi. Apoi îl putem configura pentru a difuza imagini dintr-un anumit director.
Există mai multe opțiuni pentru un cadru de server web. Am ales Flask. Este extrem de configurabil și ușor de extins cu Python. Întrucât „scara” de care avem nevoie este banală, a fost mai mult decât suficientă.
Vă sugerez să îl instalați într-un nou virtualenv, deci:
pi @ raspberrypi: ~ $ mkvirtualenv webserv
(webserv) pi @ raspberrypi: ~ $ pip instala Flask
Rețineți că, cu o configurare normală a rețelei, acesta va fi accesibil numai atunci când browserul dvs. se află pe aceeași rețea LAN wireless ca Raspberry Pi. Ați putea crea o configurație de cartografiere a porturilor / NAT pe routerul dvs. de internet pentru a permite accesul extern - dar vă recomand să nu faceți acest lucru. Codul pe care l-am scris nu încearcă să ofere securitatea de care ați avea nevoie atunci când permiteți accesul general la Internet la Raspberry Pi.
Testați-vă instalarea urmând ghidul de pornire rapidă Flask
Pasul 9: notificări mobile de la Raspberry Pi folosind IFTTT
Îmi doresc foarte mult să primesc notificări mobile atunci când apar evenimente. În acest caz, când este detectată o persoană și când nivelul apei scade. Cea mai simplă modalitate pe care am găsit-o să fac asta, fără a fi nevoie să scriu o aplicație mobilă personalizată, este folosirea IFTTT. IFTTT înseamnă „If This Then That” și permite multor tipuri de evenimente să declanșeze mai multe tipuri de acțiuni. În cazul nostru, suntem interesați de declanșatorul IFTTT Maker Webhook. Acest lucru ne permite să declanșăm o acțiune IFTTT făcând o cerere HTTP POST către serverul IFTTT cu o cheie specială atribuită contului nostru, împreună cu date care specifică ce s-a întâmplat. Acțiunea pe care o luăm poate fi la fel de simplă precum crearea unei notificări pe dispozitivul nostru mobil utilizând aplicația mobilă IFTTT sau orice altceva mai complex decât acesta.
Iată cum puteți face acest lucru:
- Creați un cont IFTTT pe ifttt.com
- În timp ce sunteți conectat, accesați pagina de setări a serviciului Webhook și introduceți adresa URL în browserul dvs. (ceva de genul https://maker.ifttt.com/use/. Această pagină web vă va arăta cheia și adresa URL de utilizat pentru a declanșa acțiuni.
-
Creați un applet IFTTT care va genera o notificare mobilă atunci când Webhook-ul este declanșat cu detaliile evenimentului:
- Faceți clic pe „Appletele mele” și apoi pe „Applet nou”.
- Faceți clic pe „+ acest lucru” și alegeți „webhooks”. Faceți clic pe „Primiți o solicitare web” pentru a accesa detaliile
- Dă-i evenimentului un nume, de ex. „PoolEvent” și faceți clic pe „Creați declanșatorul”
- Faceți clic pe „+ că” și alegeți „notificări”. Apoi alegeți „Trimiteți o notificare bogată din aplicația IFTTT”
- Pentru „titlu” alegeți ceva de genul „PoolPi”
- Pentru „mesaj” scrieți „Pool Pi detectat:” și faceți clic pe „adăugați ingredient”.. „Valoare1”.
- Reveniți la URL-ul pe care l-ați copiat la pasul 2. Acesta va afișa adresa URL de utilizat pentru a invoca applet-ul nou creat. Copiați adresa URL respectivă, înlocuind substituentul {event} cu numele evenimentului (în exemplu PoolEvent)
- Descărcați, instalați și conectați-vă la aplicația IFTTT pentru dispozitivul dvs. mobil
- Rulați acest script python pe Raspberry Pi pentru a-l vedea funcționând (rețineți că poate dura câteva secunde sau minute să se declanșeze pe dispozitivul dvs. mobil):
solicitări de import
requests.post ('https://maker.ifttt.com/trigger/PoolEvent/with/key/', json = {"value1": "Hello Notifications"})
Pasul 10: Adăugați un releu HAT la Raspberry Pi și conectați-l la o electrovalvă
Înainte de a continua cu acest pas OPRIȚI Raspberry Pi: ssh la acesta și tastați „sudo shutdown now”, apoi deconectați-l de la alimentare
Scopul nostru este să pornim și să oprim sursa de alimentare a unei electrovalve - o supapă care poate deschide sau închide alimentarea cu apă pe baza unei curent de 24V CA pe care o obține de la o sursă de alimentare. Releele sunt componentele electrice care pot deschide sau închide un circuit pe baza unui semnal digital pe care Raspberry Pi îl poate furniza. Ceea ce facem aici este să conectați un releu la acești pini de semnal digitali ai Raspberry Pi și să-l puneți să închidă circuitul dintre sursa de alimentare de 24V AC și electrovalva.
Pinii de pe Raspberry Pi care pot acționa ca intrare sau ieșire digitală se numesc GPIO - General Purpose Input / Output și sunt rândul de 40 de pini de pe partea laterală a Pi. Cu Pi oprit și introduceți releul HAT ferm în el. HAT-ul pe care l-am ales are 3 relee în el și vom folosi doar unul dintre ele. Imaginați-vă tot ce puteți face cu celelalte două:)
Acum reporniți Raspberry Pi. LED-ul roșu „putere” al releului HAT ar trebui să se aprindă, indicând faptul că primește energie de la Pi prin GPIO. Să testăm că îl putem controla: ssh din nou în Pi, introduceți python și tastați:
import gpiozero
dev = gpiozero. DigitalOutputDevice (26, initial_value = True) dev.off ()
Ar trebui să auziți un „clic” audibil, care să indice faptul că releul este activat și să vedeți un LED aprins care arată că primul releu este în poziția conectată. Acum puteți tasta
dev.on ()
Ceea ce ar transforma releul în poziția „off” (ciudat, știu …) și ar ieși () din python.
Acum, folosind cabluri jumper și cablul mai lung conectați releul între sursa de alimentare de 24V și electrovalva. Vezi diagrama. În cele din urmă, conectați electrovalva la un robinet folosind adaptoarele și pregătiți-vă să testați totul repetând comenzile de mai sus - acestea ar trebui să pornească și să oprească apa.
Atașați un furtun la electrovalvă și puneți celălalt capăt adânc în piscină. Acum aveți un sistem top-off pentru piscină controlat de computer și este timpul să conectați un senzor pentru a-i spune când să ruleze.
Pasul 11: Conectați un senzor de nivel al apei
Un senzor de nivel al apei este pur și simplu un plutitor care conectează un circuit electric când plutitorul este în jos și îl rupe atunci când pluteste în sus. Dacă îl introduceți în piscină la înălțimea potrivită, plutitorul va fi ridicat atunci când nivelul apei este adecvat, dar va cădea atunci când nu există suficientă apă.
Pentru ca Raspberry Pi să cunoască starea senzorului de nivel al apei, avem nevoie ca Pi să simtă un circuit deschis sau închis. Din fericire, acest lucru este foarte simplu: aceiași conectori GPIO pe care îi folosim ca ieșire digitală pentru a controla releele pot acționa ca intrări (de unde I în GPIO). Mai exact, dacă conectăm un fir al senzorului la + 3,3V pe conectorul GPIO și celălalt fir al senzorului la un pin pe care îl configurăm ca intrare pull-down (ceea ce înseamnă că va fi în mod normal la nivelul de tensiune GND), acel pin va măsura o tensiune digitală „ridicată” sau „pornită” numai atunci când senzorul de nivel al apei închide circuitul - când nivelul apei este scăzut. Am folosit pinul GPIO 16 ca intrare, pe care l-am marcat în imaginea de mai sus.
Codul python pentru a configura pinul ca intrare și pentru a testa starea sa curentă este:
import gpiozero
level_input = gpiozero. Button (16) water_low = level_input.is_pressed
O potențială provocare este că atunci când senzorul doar schimbă starea, acesta va oscila rapid între stările de pornire și oprire. Soluția la aceasta este cunoscută sub denumirea de „denunțare” și caută o schimbare consecventă a stării înainte de a lua măsuri. Biblioteca GPIOZERO are cod pentru a face acest lucru, dar din anumite motive acel cod nu a funcționat bine pentru mine. Am scris o buclă simplă pentru a declanșa alerte IFTTT atunci când este detectată o modificare de stare consecventă, pe care o puteți găsi în depozitul meu aici.
Pasul 12: Scrieți codul pentru a-l lega împreună
Asta e. Configurarea noastră este completă. Puteți scrie propriul cod pentru a lega lucrurile într-un sistem complet sau puteți utiliza codul pe care îl ofer. Pentru a face acest lucru, creați structura de directoare și clonați depozitul, astfel:
mkdir poolpi
cd poolpi git clone
Apoi, editați fișierele numite ifttt_url.txt în directoarele motion_alert și water_level pentru a avea adresa URL pentru propriul dvs. cârlig web IFTTT cu cheia dvs. secretă. Puteți utiliza două cârlige web diferite pentru acțiuni diferite.
În cele din urmă, dorim ca acest cod să ruleze automat. Cel mai simplu mod de a realiza acest lucru este prin serviciul Linux crontab. Putem adăuga câteva linii crontab pentru două sarcini principale:
- Rulați cele trei programe: detectorul de obiecte, senzorul de nivel al apei și serverul web la fiecare repornire
- Curățați directorul de ieșire, ștergând imagini vechi și fișiere video vechi (am ales să șterg fișiere mai vechi de 1 zi și imagini mai vechi de 7 zile - nu ezitați să experimentați)
Pentru a face acest tip, crontab -e care vă va deschide editorul de text nano. Adăugați următoarele linii în partea de jos a fișierului:
0 1 * * * find / home / pi / poolpi / output -type f -name "*.avi" -mtime +1 -delete
0 2 * * * find / home / pi / poolpi / output -type f -name "*.jpg" -mtime +7 -delete @reboot python3 /home/pi/poolpi/motion_alert/webserv/webserv.py @reboot python3 /home/pi/poolpi/motion_alert/motion_obj_alert.py @reboot python3 /home/pi/poolpi/water_level/test_water_level.py
În cele din urmă, reporniți Raspberry Pi. Acum este gata să vă mențineți piscina plină și în siguranță.
Fă-ți de treabă cu configurarea, codul și nu uita să stochezi depozitul meu github și să comentezi instrucțiunile dacă ți se pare util. Întotdeauna caut să aflu mai multe.
Fericire fericită!
Runner Up în IoT Challenge
Recomandat:
Monitorizarea temperaturii folosind MCP9808 și Raspberry Pi: 4 pași
Monitorizarea temperaturii folosind MCP9808 și Raspberry Pi: MCP9808 este un senzor digital de temperatură extrem de precis ± 0,5 ° C mini modul I2C. Acestea sunt înglobate cu registre programabile de utilizator care facilitează aplicațiile de detectare a temperaturii. Senzorul de temperatură de înaltă precizie MCP9808 a devenit o industrie
Monitorizarea unui terariu Lizard folosind Adosia IoT WiFi Controller + Motion Detect: 17 pași (cu imagini)
Monitorizarea unui terariu Lizard folosind Adosia IoT WiFi Controller + Motion Detect: În acest tutorial vă vom arăta cum să construiți un terariu simplu de șopârlă pentru o mână de ouă de skink pe care le-am găsit accidental și le-am deranjat în timp ce făceam grădină afară. deci tot ce vom face este să creăm un spațiu sigur folosind un plast
Monitorizarea accelerării utilizând Raspberry Pi și AIS328DQTR folosind Python: 6 pași
Monitorizarea accelerației folosind Raspberry Pi și AIS328DQTR Utilizarea Python: Accelerarea este finită, cred că, conform unor legi ale fizicii. Cea mai rapidă creatură de pe uscat își folosește din când în când ritmul maxim pentru a prinde prada
Monitorizarea temperaturii și umidității folosind Raspberry Pi: 6 pași (cu imagini)
Monitorizarea temperaturii și umidității folosind Raspberry Pi: Vara vine, iar cei fără aer condiționat ar trebui să fie pregătiți să controleze manual atmosfera din interior. În această postare descriu modul modern de măsurare a celor mai importanți parametri pentru confortul uman: temperatura și umiditatea. T
Monitorizarea temperaturii și umidității folosind SHT25 și Raspberry Pi: 5 pași
Monitorizarea temperaturii și umidității folosind SHT25 și Raspberry Pi: Am lucrat recent la diferite proiecte care necesită monitorizarea temperaturii și umidității și apoi ne-am dat seama că acești doi parametri joacă de fapt un rol esențial în a avea o estimare a eficienței de lucru a unui sistem. Atât la industria