Sisukord:

Nägi IoTea LoRa lahendust (värskendus 1811): 5 sammu
Nägi IoTea LoRa lahendust (värskendus 1811): 5 sammu

Video: Nägi IoTea LoRa lahendust (värskendus 1811): 5 sammu

Video: Nägi IoTea LoRa lahendust (värskendus 1811): 5 sammu
Video: Nagi from blue lock be like… #football #celebrations #bluelock #anime 2024, Juuli
Anonim
Nägin IoTea LoRa lahendust (värskendus 1811)
Nägin IoTea LoRa lahendust (värskendus 1811)

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.

Pilt
Pilt

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

Pilt
Pilt

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

Pilt
Pilt

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:

Pilt
Pilt

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: