Sisukord:
- Samm: selles projektis kasutatud asjad
- 2. samm: lugu
- Samm: riistvaraühendus
- 4. samm: tarkvara programmeerimine
- Samm: toiming
Video: Nägi IoTea LoRa lahendust (värskendus 1811): 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Internet+ on praegu populaarne mõiste. Seekord proovisime Internetti pluss põllumajandust, et teha teeaeda kasvab välja internetitee.
Samm: selles projektis kasutatud asjad
Riistvara komponendid
- Grove - süsinikdioksiidi andur (MH -Z16)
- Grove - digitaalne valgusandur
- Grove - tolmuandur (PPD42NS)
- Grove-hapnikuandur (ME2-O2-Ф20)
- Mulla niiskuse ja temperatuuri andur
- LoRa LoRaWAN Gateway - 868 MHz komplekt koos Raspberry Pi 3 -ga
- Grove - Temp & Humi & Barometer Sensor (BME280)
Tarkvararakendused ja võrguteenused
Microsoft Visual Studio 2015
2. samm: lugu
Sichuanis Ya’anist kirdes Mengdingi mäel kulgeb mäeharja rohelises meres läänest itta. See on kõige tuttavam vaatepilt 36-aastasele Dengile, kes on üks vähestest oma põlvkonna Mengdingi tee valmistajatest ja mille istandus 50 m (= 3,3 hektarit) asub 1100 m kõrgusel merepinnast. Deng pärineb teekeetjate perekonnast, kuid perekonna pärandi jätkamine pole lihtne ülesanne. „Meie teed kasvatatakse orgaanilises keskkonnas suurel kõrgusel, et tagada selle suurepärane kvaliteet. Kuid samal ajal on kasvutihedus madal, kulud kõrged ja tärkamine ebaühtlane, mistõttu teed on raske koristada. Seetõttu on kõrgete mägede teed tavaliselt väikesed saagid ja nende väärtused ei kajastu turul.”Viimase kahe aasta jooksul on Deng püüdnud tõsta tarbijate teadlikkust mägiteest, et edendada nende väärtust. Ja kui ta kohtus Faniga, kes otsis istandust Seeedi IoTea tehnoloogia rakendamiseks, leiti lahendus ideaalselt.
Samm: riistvaraühendus
Selle projekti riistvara saab jagada neljaks osaks: toide, andurid, sõlm ja lüüs. Järgmine artikkel näitab teile, kuidas seda samm -sammult täita.
Võimsuse osa
Toiteosa sisaldab peamiselt päikesepaneeli ja liitiumakut. Kui te selle projekti lihtsalt demonstratsiooniks koostate, võite neid ignoreerida. Või võite sõlme võimsuse installimiseks järgida eelmist õpetust.
Andurite osa
Andurite osas kasutasime paljude andurite tõttu ilmajaama ja tegime nende paigaldamiseks ka akrüülklambri.
Nagu näete ülaltoodud pildil, on digitaalne valgusandur alati üleval, et see saaks valgustuse kohta teavet koguda. Soojust andvad andurid on paigaldatud akrüülklambri keskele, näiteks O2 andur, tolmuandur ja CO2 andur. Lõpuks temperatuuri ja niiskuse andur akrüülklambri allosas.
Pealegi on mulla temperatuuri ja niiskuse andur paigaldatud üksi pinnasesse. Sõlme osa
Sõlmeosa on Seeeduino LoRaWan, mis on paigaldatud veekindlasse kasti, ühendades toite ja anduritega veeühenduste kaudu. Nende hulgas ühendatakse tolmuandur LoRaWani digitaalse tihvtiga D3, CO2 -andur ühendatakse tihvtiga D4 & D5, pinnaseandur ühendatakse tihvtiga D6 & D7, O2 -andur ühendatakse analoogpistikuga A1 ja valgusandur ja baromeetri andur ühendatakse I2C -pordiga.
MÄRKUS. Mullaanduri sinise (andmeside) ja punase (Vcc) kaabli vahele tuleks lisada 10 k takisti.
Seeeduino LoRaWan kogub aeg -ajalt andurite väärtusi ja saadab need LoRa kaudu Gatewayle. Andmevorming, nagu allpool:
{
[0], /* Õhutemperatuur (℃)* /[1], /* Õhuniiskus (%)* /[2], /* Kõrgus (m) kõrge bait* /[3], /* Kõrgus (m) madal bait */[4],/ * CO2 kontsentratsioon (PPM) kõrge bait */[5],/ * CO2 kontsentratsioon (PPM) madal bait */[6],/ * tolmukontsentratsioon (tk/0,01 cf) kõrge bait */[7],/ *Tolmu kontsentratsioon (tk/0,01 cf) madal bait */[8],/ *Valguse intensiivsus (lux) kõrge bait */[9],/ *Valguse intensiivsus (lux) madal bait */ [10], /* O2 kontsentratsioon (%)* /[11], /* Mulla temperatuur (℃)* /[12], /* Mulla niiskus (%)* /[13], /* Aku pinge (V) */ [14]/ *Anduri veakood */}
Igal anduri veakoodi baidi bitil on erinev tähendus, nagu allpool:
{
bit0: 1; / * Baromeetri anduri viga */ bit1: 1; / * CO2 anduri viga */ bit2: 1; / * Tolmuanduri viga */ bit3: 1; / * Valgusanduri viga */ bit4: 1; / * O2 anduri viga */ bit5: 1; / * Mullaanduri viga */ reserveeritud: 2; / * Reserveeritud */}
Lüüsi osa
Gateway Part on Raspberry Pi, mis ühendas Gateway mooduli RHF0M301–868 ja PRI 2 Bridge RHF4T002, see paigaldati veekindlasse kasti ja ühendati toite- ja USB -kaameraga veeühenduste kaudu. Kuna see kasutab spetsiaalset püsivara, järgige selle konfigureerimiseks seeed Wiki.
4. samm: tarkvara programmeerimine
Kuna riistvaraühendust, saab ka tarkvara programmeerimist jagada, saab selle jagada kolmeks osaks: sõlmeks, lüüsiks ja veebisaidiks.
Sõlme osa
Enamik sõlmeosa jaoks vajalikke draivereid on juba kaustas origin_driver. Järgmised teegid tuleb käsitsi installida:
Adafruit_ASFcore
Kuna projekt on keeruline, soovitame teil Arduino IDE asemel kasutada Microsoft Visual Studio'i. Pistikprogramm nimega Visual Micro aitab teil Arduino projekti luua Visual Studio abil, lisateabe saamiseks klõpsake siin.
Parema loetavuse ja hooldatavuse tagamiseks kasutame seekord objektorienteeritud programmeerimist. Selle projekti klassiskeem näeb välja selline:
Nendel anduritel on juba OOP -draiver, pakkisime selle selle projekti kohandamiseks ümber, teiste jaoks kirjutasime nende draiverid OOP -ga ümber. Vahevara kihis olevat andurite klassi kasutatakse tegelike andurite liideste ühendamiseks, näiteks võib baromeetri andur koguda samaaegselt temperatuuri, niiskust ja kõrgust, seega on sellel 3 liidest temperatuuri, niiskuse ja kõrguse saamiseks. Kuid neil on erinev meetodinimi, mis muudab andurite omandamise programmi keerukamaks, nagu see on:
baromeeter-> getTemperature ();
baromeeter-> getHumidity (); baromeeter-> getAltitude (); //… teine_andur-> getSomeValue (); //…
Kuid OOP -i kasutades näeb see välja selline:
jaoks (auto i = 0; i getValue ();
}
Pakime ka rakendusklassi, see rakendab IApplicationi liidest, seadistuse () ja silmuse () meetodit saidil IoTea.ino saab helistada seadistus () ja silmuse () meetodile rakenduse objektis.
MÄRKUS. USB Serialit kasutatakse AINULT silumiseks. Pärast silumist kommenteerige palun, et see lähtestaks koodi setup () meetodis.
Lüüsi osa
Gateway Parti kodukataloogi programmi Python kasutatakse fotode tegemiseks ja nende laadimiseks Amazon S3 Serverisse iga tund. Enne selle kasutamist veenduge, et fswebcam on teie Raspberry Pi -sse juba installitud:
sudo apt-get update && sudo apt-get install fswebcam
Kui soovite fotosid üles laadida, konfigureerige oma AWS järgmiselt. Esmalt installige AWS SDK ja AWS CLI oma Raspberry Pi -le, kasutades järgmisi käske:
sudo pip install boto3
sudo pip install awscli
ja seejärel käivitage AWS CLI:
sudo aws seadistada
Seadistage oma AWS -i juurdepääsuvõtme ID, AWS -i salajase juurdepääsu ID ja piirkonna vaikenimi.
Kui teile ei meeldi oma fotosid üles laadida, võite vahele jätta AWS -i seadistamisetapid ja kommentaari koodid üleslaadimise kohta saidil photo.py. Selle programmi käivitamiseks pärast iga kord Raspberry Pi käivitamist saate luua failinimefoto kaustas /etc/init.d ja kirjutada sellele järgmise koodi.
#!/bin/bash
$: 0 1 6 # Lühikirjeldus: pildistamine incript &;; stop) echo "Lõpeta pildistamine" kill $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) kaja "Kasutus: teenindusfoto algus | peatus" väljumine 1;; esac väljumine 0
määrake täitmisluba
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
ja testige seda
sudo /etc/init.d/photo start
Kui probleemi pole, peatage see ja lisage see käivitusrakendusse
sudo /etc/init.d/photo stop
sudo update-rc.d foto vaikeseaded
MÄRKUS. Kui soovite pärast Raspberry Pi käivitamist lüüsi käivitada, lisage saidi Seeet Wiki lüüsi alguskoodid aadressile /etc/rc.local, laske see välja näha järgmine:
#!/bin/sh -e
# # rc.local # # See skript käivitatakse iga mitme kasutaja taseme lõpus. # Veenduge, et skript "väljub 0" edu korral või mõni muu # väärtus vea korral. # # Selle skripti lubamiseks või keelamiseks muutke lihtsalt täitmisbitte #. # # Vaikimisi ei tee see skript midagi. # Printige IP -aadress _IP = $ (hostinimi -I) || tõsi, kui ["$ _IP"]; seejärel printf "Minu IP -aadress on %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 exit 0
Veebisait
Võtsime veebisaidi kasutusele CentOS 7. Järgmised sammud näitavad teile, kuidas juurutada.
Samm 1. Installige Python3
sudo yum -y installige epel -release
sudo yum -installige python36
Samm 2. Installige Pythoni pip ja virtuaalne keskkond
wget
sudo python36 get-pip.py sudo pip install virtualenv
Setp 3. Kloonige meie veebisait GitHubist
sudo yum -installige git
git kloon
Samm 4. Looge ja aktiveerige virtuaalne keskkond
virtualenv -p python36 iotea -hb
cd iotea-hb allikakast/aktiveeri
Samm 5. Installige sõltuvad teegid
pip install pymysql
pip install dbutils pip install kolb pip install websocket-client pip install cofigparser
Samm 6. Looge andmebaas
sudo yum -y installi mariadb mariabd -server
sudo systemctl lubage mariadb sudo systemctl käivitage mariadb mysql -uroot -p
ja seejärel kasutage tabeli loomiseks iotea_hb.sql.
Samm 7. Looge db.ini ja kirjutage sellele koodid
[db]
db_port = 3306 db_user = juur db_host = localhost db_pass = db_name = iotea
muutke db.ini teed failis db.py
# db.py
#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")
Samm 8. Muutke port.py ja käivitage veebisait:
# rakenduses app.py
#app.run (silumine = tõsi, port = 6000) app.run (silumine = tõsi, port = 8080)
# terminalis
pip install gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app: app
nüüd külastage oma veebibrauseris 127.0.0.1:8080, näete veebisaiti, kuid reaalajas andmeid ei kuvata.
Samm 9. Hankige lorioti andmed
Avage teine terminal, sisestage uuesti virtuaalne keskkond ja käivitage rakendus loriot:
cd iotea-hb
allikakast/aktiveeri gunicorn loriot: rakendus
Oodake mõnda aega, näete veebisaidil kuvatavaid andmeid või saate muuta wss saidil loriot.py:
# in loriot.py
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
Samm: toiming
Reaalajas andmete vaatamiseks võite külastada meie veebisaite:
- Ya'anis
- Demonstratsiooniks
Soovitan:
Blu Media Robot (värskendus): 7 sammu
Blu -meediarobot (värskendus): blu on robot, mis töötab elektroonika jaoks makeblock -emaplaadi ja vaarikaga. Osade loendi jaoks, mida saate algusest peale osta nagu mina, on mul nüüd 3D -printer (wanahoa i3 +) ja saate selle alla laadida erinevat osa nende printimiseks
Orange Pi Plus 2 - Armbian (SD -kaardil või pardal 16 GB mälu!) - Värskendus: 6 sammu
Orange Pi Plus 2 - Armbian (SD -kaardil või 16 GB sisemälul!) - Värskendus: Tere kõigile! See on minu esimene juhendatav ja inglise keel pole minu emakeel, nii et palun ärge olge minu vastu karm. Alustuseks Orange Pi Plus 2 on suurepärane väike seade nagu Raspberry Pi, kuid kiirem! Raspberry Pi jaoks on olemas suur kogukond
Kaardisortija kauplemiskaardimasina jaoks (värskendus 2019-01-10): 12 sammu (koos piltidega)
Kaardisortija kauplemiskaardiautomaadi jaoks (värskendus 2019-01-10): Kaardisortija kauplemiskaardimasina jaoks. Muudatuste logi leiate viimasest sammust. Taust Lühidalt, minu lapsed ja mina oleme kogunud suure hulga kauplemiskaarti
Nägi LoRa IoTea lahendust: 5 sammu
Nägi LoRa IoTea lahendust: automaatne teabe kogumise süsteem, mida rakendatakse teeistandusele. See on osa intelligentsest põllumajandusteabe kogumisest
Nägi IoTea LoRa lahendust (koos Azure'i värskendusega 1812): 5 sammu
Nägi IoTea LoRa lahendust (koos Azure'i värskendusega 1812): Microsoft Azure on pilveteenus, mis pakub võimsamat ja stabiilsemat arvutusvõimsust. Seekord proovisime oma IoTea andmeid sinna saata