Përmbajtje:
- Hapi 1: Gjërat e përdorura në këtë projekt
- Hapi 2: Histori
- Hapi 3: Lidhja e harduerit
- Hapi 4: Programimi i softuerit
- Hapi 5: Funksionimi
Video: Shihni Zgjidhjen IoTea LoRa (Përditësimi 1811): 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
Internet+ është një koncept popullor tani. Këtë herë ne provuam internetin plus bujqësinë për të bërë kopshtin e çajit të rritet nga çaji i internetit.
Hapi 1: Gjërat e përdorura në këtë projekt
Komponentët e harduerit
- Grove - Sensori i dioksidit të karbonit (MH -Z16)
- Grove - Sensor dixhital i dritës
- Grove - Sensor pluhuri (PPD42NS)
- Grove-Sensori i oksigjenit (ME2-O2-Ф20)
- Sensori i lagështisë dhe temperaturës së tokës
- LoRa LoRaWAN Gateway - Kit 868MHz me Raspberry Pi 3
- Grove - Sensori Temp & Humi & Barometër (BME280)
Aplikacionet softuerike dhe shërbimet online
Microsoft Visual Studio 2015
Hapi 2: Histori
Në malin Mengding në verilindje të Ya'an, Sichuan, kurrizi malor shkon nga perëndimi në lindje në një det të gjelbër. Kjo është një pamje më e njohur për Dengin 36-vjeçar, një nga shumë pak prodhuesit e çajit Mengding të brezit të tij, me një plantacion prej 50mu (= 3.3 hektarë) të vendosur në 1100m mbi nivelin e detit. Deng vjen nga një familje prodhuesish çaji, por mbajtja e trashëgimisë familjare nuk është një detyrë e lehtë. “Çajrat tanë janë rritur në lartësi të mëdha në një mjedis organik për të siguruar cilësinë e tij të shkëlqyer. Por në të njëjtën kohë, dendësia e rritjes është e ulët, kostoja është e lartë dhe lulëzimi është i pabarabartë, duke e bërë çajin të vështirë për të korrur. Kjo është arsyeja pse çajrat e maleve janë zakonisht të korra të vogla dhe vlerat e tyre nuk reflektohen në treg.”Për dy vitet e fundit, Deng është përpjekur të rrisë ndërgjegjësimin e konsumatorëve për çajin e malit të lartë për të promovuar vlerën e tyre. Dhe kur takoi Fan, i cili po kërkonte një plantacion për të zbatuar teknologjinë IoTea të Seeed, u bë një ndeshje perfekte për një zgjidhje.
Hapi 3: Lidhja e harduerit
Pajisja e këtij projekti mund të ndahet në 4 pjesë: Fuqia, Sensorët, Nyja dhe Gateway. Artikulli i mëposhtëm do t'ju tregojë se si ta përfundoni atë hap pas hapi.
Pjesa e fuqisë
Power Part kryesisht përmban një panel diellor dhe një bateri litiumi, nëse thjesht e ndërtoni këtë projekt për demonstrim, mund t'i injoroni ato. Ose mund të ndiqni tutorialin e mëparshëm për të instaluar fuqinë e nyjeve.
Pjesa e sensorëve
Në Pjesën e Sensorëve, për shkak të shumë sensorëve, ne përdorëm një stacion moti, dhe gjithashtu bëmë një kllapa akrilike për t'i instaluar ato.
Siç mund ta shihni në foton e mësipërme, Sensori dixhital i dritës gjithmonë në krye, në mënyrë që të mund të mbledhë informacione për ndriçimin. Sensorët që do të gjenerojnë nxehtësi janë instaluar në mes të kllapës akrilike, siç janë sensori O2, sensori i pluhurit dhe sensori i CO2. Më në fund, Sensori i Temperaturës dhe Lagështisë në pjesën e poshtme të kllapës akrilike.
Për më tepër, Sensori i Temperaturës dhe Lagështisë së Tokës është i instaluar vetëm në tokë. Pjesa e Nyjes
Node Part është një Seeeduino LoRaWan e cila është instaluar në një kuti të papërshkueshme nga uji, ajo lidhet me energjinë dhe sensorët përmes nyjeve të ujit. Midis tyre, Sensori i Pluhurit lidhet me pinin digjital të LoRaWan D3, Sensori CO2 lidhet me pinin D4 & D5, Sensori i tokës lidhet me pinin D6 & D7, Sensori O2 lidhet me pinin analog A1 dhe Sensori i Dritës dhe Barometri lidhet me portën I2C.
SH NOTNIM: Një rezistencë 10k duhet të shtohet midis kabllit Blue (Data) të Sensorit të Tokës dhe kabllit të Kuq (Vcc).
Seeeduino LoRaWan mbledh vlerën e sensorëve herë pas here dhe i dërgon në Gateway nëpërmjet LoRa. Formati i të dhënave si më poshtë:
{
[0], /* Temperatura e ajrit (℃)* /[1], /* Lagështia e ajrit (%)* /[2], /* Lartësia (m) bajt i lartë* /[3], /* Lartësia (m) bajt i ulët */[4],/ * përqendrim CO2 (PPM) bajt i lartë */[5],/ * përqendrim CO2 (PPM) bajt i ulët */[6],/ * Përqendrim pluhuri (copë/0.01cf) bajt i lartë */[7],/ *Përqendrimi i pluhurit (copë/0.01cf) bajt i ulët */[8],/ *Intensiteti i dritës (luks) bajt i lartë */[9],/ *Intensiteti i dritës (luks) bajt i ulët */ [10], /* Përqendrimi i O2 (%)* /[11], /* Temperatura e tokës (℃)* /[12], /* Lagështia e tokës (%)* /[13], /* Tensioni i baterisë (V) */ [14]/ *Kodi i gabimit të sensorit */}
Çdo bit në bajtin e Kodit të Gabimit të Sensorit ka një kuptim ndryshimi, ashtu si më poshtë:
{
bit0: 1; / * Gabim i sensorit të barometrit */ bit1: 1; / * Gabim i sensorit CO2 */ bit2: 1; / * Gabim në sensorin e pluhurit */ bit3: 1; / * Gabim i Sensorit të Dritës */ bit4: 1; / * Gabim i sensorit O2 */ bit5: 1; / * Gabim i Sensorit të Tokës */ i rezervuar: 2; / * Rezervuar */}
Pjesa e Portës
Gateway Part është një Raspberry Pi e cila lidh modulin Gateway RHF0M301–868 dhe PRI 2 Bridge RHF4T002, është instaluar në një kuti të papërshkueshëm nga uji dhe lidhet me energjinë dhe kamerën USB përmes nyjeve të ujit. Për shkak se përdor firmware të specializuar, ju lutemi ndiqni Wiki të shikuara për ta konfiguruar.
Hapi 4: Programimi i softuerit
Si Lidhje Hardware, Programimi i Softuerëve gjithashtu mund të ndahet, mund të ndahet në 3 pjesë: Nyja, Porta dhe Faqja e internetit.
Pjesa e Nyjes
Shumica e drejtuesve që kërkonte Node Part tashmë janë të përfshira në dosjen Orig_driver. Bibliotekat e mëposhtme duhet të instalohen me dorë:
Adafruit_ASFcore
Për shkak se projekti është i ndërlikuar, ne ju rekomandojmë të përdorni Microsoft Visual Studio në vend të Arduino IDE. Një shtojcë e quajtur Visual Micro mund t'ju ndihmojë të krijoni një projekt Arduino duke përdorur Visual Studio, klikoni këtu për më shumë informacion.
Për lexueshmëri dhe mirëmbajtje më të mirë, ne përdorim këtë herë Programimin e Orientuar nga Objekti. Diagrami i klasës i këtij projekti duket si më poshtë:
Për ata sensorë që tashmë kanë drejtues OOP, ne e ripaketuam atë për të përshtatur këtë projekt, për të tjerët, ne rishkruam drejtuesit e tyre duke përdorur OOP. Klasa Sensor në shtresën e mesme përdoret për të unifikuar ndërfaqet e sensorëve të vërtetë, për shembull, një sensor barometri mund të mbledhë temperaturën, lagështinë dhe lartësinë në të njëjtën kohë, kështu që ka 3 ndërfaqe për të marrë temperaturën, lagështinë dhe lartësinë. Por ata kanë emrin e metodës së ndryshimit, e cila do ta bëjë programin e marrjes së vlerës së sensorëve më të komplikuar, ashtu si kjo:
barometër-> getTemperature ();
barometër-> getHumidity (); barometër-> getAltitude (); //… tjetër_sensor-> getSomeValue (); //…
Por duke përdorur OOP, duket kështu:
për (auto i = 0; i getValue ();
}
Ne gjithashtu kemi paketuar një klasë të Aplikacionit, ajo zbaton ndërfaqen IApplication, metoda e konfigurimit () dhe loop () në IoTea.ino mund të thërrasë metodën setup () dhe loop () në objektin Application.
SHENIM: Seriali USB përdoret për të korrigjuar VETYM. Pas korrigjimit, ju lutemi komentoni kodin e inicializuar në metodën e konfigurimit ().
Pjesa e Portës
Programi Python i Gateway Part në dosjen kryesore përdoret për të marrë fotografi dhe ngarkuar ato në serverin Amazon S3 çdo orë. Para se ta përdorni, sigurohuni që fswebcam të jetë instaluar tashmë në Raspberry Pi tuaj:
sudo apt-merrni përditësim && sudo apt-get instaloni fswebcam
Nëse dëshironi të ngarkoni fotografi, konfiguroni AWS tuaj duke ndjekur hapat. Së pari, instaloni AWS SDK dhe AWS CLI në Raspberry Pi tuaj duke përdorur këto komanda:
sudo pip instaloni boto3
sudo pip instaloni awscli
dhe pastaj, drejtoni AWS CLI:
sudo aws konfiguroni
Konfiguroni ID -në tuaj të AWS Access Key, AWS Secret Access Access dhe emrin e rajonit të paracaktuar.
Nëse nuk ju pëlqen të ngarkoni fotot tuaja, mund të kaloni hapat e konfigurimit të AWS dhe të komentoni kodet në lidhje me ngarkimin në photo.py. Për të ekzekutuar këtë program pasi të keni nisur Raspberry Pi çdo herë, mund të krijoni një fotografi të emrit të skedarit në /etc/init.d dhe t'i shkruani kodin e mëposhtëm.
#!/bin/bash
# /etc/init.d/photo ### FILLONI INFO INFO # Siguron: seeed_photo # Kërkohet-Filloni: $ remote_fs $ syslog # Kërkohet-Ndaloni: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Përshkrim i shkurtër: marrja e fotografisë initscript # Përshkrimi: Ky shërbim përdoret për të menaxhuar marrjen e fotografive ### END INIT INFO rasti "$ 1" në fillim) jehonë "Filloni të bëni fotografi" /home/rxhf/photo.py &;; stop) jehonë "Ndaloni marrjen e fotografisë" vrasin $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) jehonë "Përdorimi: fillimi i fotografisë së shërbimit | ndalimi" dalja 1;; dalja esac 0
caktoni lejen e ekzekutimit
sudo chmod 777 /etj/init.d/foto
sudo chmod 777 /home/rxhf/photo.py
dhe testojeni atë
sudo /etc/init.d/foto fillimi
Nëse nuk ka problem, ndalojeni dhe shtojeni në aplikacionin e fillimit
sudo /etc/init.d/foto stop
standartet e fotografisë sudo update-rc.d
SH NOTNIM: Nëse doni të filloni portën pas nisjes së Raspberry Pi, shtoni kodet fillestare të portës në Seeed Wiki në /etc/rc.local, le të duket si:
#!/bin/sh -e
# # rc.local # # Ky skenar ekzekutohet në fund të secilit nivel përdorimi të shumë përdoruesve. # Sigurohuni që skenari të "dalë nga 0" në sukses ose ndonjë vlerë tjetër # në gabim. # # Për të aktivizuar ose çaktivizuar këtë skript, thjesht ndryshoni # bitët e ekzekutimit. # # Si parazgjedhje ky skript nuk bën asgjë. # Shtypni adresën IP _IP = $ (emri i hostit -I) || e vërtetë nëse ["$ _IP"]; pastaj printf "Adresa ime IP është %s / n" "$ _IP" fi cd /home/rxhf/loriot/1.0.2 sudo systemctl stop pktfwd sudo gwrst wget https://cn1.loriot.io/home/gwsw/loriot -risinghf-r… -O loriot-gw.bin chmod +x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io dalja 0
Faqe interneti
Ne vendosëm uebfaqen në CentOS 7. Hapat e mëposhtëm do t'ju tregojnë se si të vendosni.
Hapi 1. Instaloni Python3
sudo yum -y instaloni epel -release
sudo yum -y instaloni python36
Hapi 2. Instaloni Python pip dhe mjedisin virtual
wget
sudo python36 get-pip.py sudo pip instaloni virtualenv
Setp 3. Klononi faqen tonë të internetit nga GitHub
sudo yum -y install git
git klon
Hapi 4. Krijoni dhe aktivizoni një mjedis virtual
virtualenv -p python36 iotea -hb
cd iotea-hb bin/aktivizo burimin
Hapi 5. Instaloni bibliotekat e varura
pip instalo pymysql
pip instaloni dbutils pip instaloni pip flask instaloni websocket-client pip install cofigparser
Hapi 6. Krijoni një bazë të dhënash
sudo yum -y instaloni mariadb mariabd -server
sudo systemctl aktivizoni mariadb sudo systemctl filloni mariadb mysql -uroot -p
dhe pastaj përdorni iotea_hb.sql për të krijuar një tabelë.
Hapi 7. Krijoni db.ini dhe shkruani këto kode në të
[db]
db_port = 3306 db_user = rrënjë db_host = localhost db_pass = db_name = iotea
ndryshoni rrugën e db.ini në db.py
# në db.py
#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")
Hapi 8. Ndryshoni portën në app.py dhe filloni uebfaqen:
# në app.py
#app.run (debug = E vërtetë, port = 6000) app.run (debug = E vërtetë, port = 8080)
# në terminal
pip instaloni gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app: app
tani vizitoni 127.0.0.1:8080 në shfletuesin tuaj të internetit, mund të shihni faqen e internetit, por të dhënat në kohë reale nuk shfaqen.
Hapi 9. Merrni të dhëna loriotike
Hapni një terminal tjetër, futeni përsëri në mjedisin virtual dhe filloni aplikacionin loriot:
cd iotea-hb
bin binar/aktivizo gunicorn loriot: aplikacioni
Prisni për një kohë, do të shihni të dhënat e shfaqura në faqen në internet, ose mund të ndryshoni wss në loriot.py:
# në loriot.py
#ws = krijoni_lidhje ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = krijo_lidhje ()
Hapi 5: Funksionimi
Ju mund të vizitoni faqet tona të internetit për të parë të dhënat në kohë reale:
- Në Ya'an
- Për Demonstrim
Recommended:
Renditja e kartave për një makinë kartë tregtare (Përditësimi 2019-01-10): 12 hapa (me fotografi)
Renditësi i Kartave për një Makinë Kartash Tregtare (Përditësimi 2019-01-10): Renditësi i Kartave për një Makinë Kartash Tregtare Regjistri i Ndryshimeve mund të gjendet në hapin e fundit. Sfondi Unë tashmë shpjegova motivimin e projektit tim në artikullin e Ushqyesit të Kartave. Me pak fjalë, fëmijët e mi dhe unë kemi grumbulluar një sasi të madhe të Kartës Tregtare
Inverter i lidhur me rrjetin DIY, Përditësimi i Sistemit PV 3.0: 8 hapa
DIY Grid Tied Inverter, PV System Update 3.0: Këtu është përditësimi që të gjithë kemi pritur! Pra, që nga dy udhëzimet e para mbi këtë temë kam mësuar nga gabimet e mia dhe jam përmirësuar, copëtuar dhe ndryshuar sistemin në mënyrë të konsiderueshme, veçanërisht që kur jam transferuar në punëtori kemi b
Përditësimi i drejtuesit të kartës tuaj grafike (Windows): 4 hapa
Përditësimi i drejtuesit të kartës tuaj grafike (Windows): Navigimi përmes cilësimeve në një kompjuter është shpesh herë shumë konfuz dhe zhgënjyes kur diçka nuk funksionon siç duhet kur dhe si duhet të jetë. Me teknologjinë, gjithmonë del diçka e re dhe e përmirësuar, dhe është e rëndësishme
Projekti Arduino: Gama e Testit LoRa Moduli RF1276 për Zgjidhjen e Gjurmimit GPS: 9 hapa (me fotografi)
Projekti Arduino: Gama e Testit LoRa Moduli RF1276 për GPS Zgjidhja e Gjurmimit: Lidhja: USB - Serial Nevoja: Shfletuesi Chrome Nevojë: 1 X Arduino Mega Nevojë: 1 X GPS Nevojë: 1 X kartë SD Nevojë: 2 X LoRa Modem RF1276Funksioni: Arduino Dërgo vlerën GPS në bazën kryesore - Baza kryesore ruan të dhënat në Dataino Server Lora Module: Gama ultra e gjatë
Përditësimi i firmuerit Esp8266: 7 hapa
Përditësimi i firmuerit Esp8266: Moduli ESP8266 është një modul i lirë Wireless. Ka SOC (sistem në çip) që është i aftë të sigurojë wifi për çdo mikro kontrollues/mikroprocesor. Ka dy mënyra se si mund të përdoret esp8266. Standalone esp8266 Esp8266 me mjedër pi ose arduino ose