Sisukord:

Nägi LoRa IoTea lahendust: 5 sammu
Nägi LoRa IoTea lahendust: 5 sammu

Video: Nägi LoRa IoTea lahendust: 5 sammu

Video: Nägi LoRa IoTea lahendust: 5 sammu
Video: Карабин AR 10 за 800 000р. Стоит своих денег или "бусы для туземцев"? 2024, Juuli
Anonim
Nägi LoRa IoTea lahendust
Nägi LoRa IoTea lahendust

Automaatne teabe kogumise süsteem, mida rakendatakse teeistandusele. See on osa intelligentsest põllumajandusteabe kogumisest.

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

Nutikas põllumajandus on rakendada asjade Interneti tehnoloogiat traditsioonilises põllumajanduses, kasutades andureid ja tarkvara, et juhtida põllumajandustootmist mobiil- või arvutiplatvormide kaudu, muutes traditsioonilise põllumajanduse "targemaks".

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 mägiteed 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. Seeed IoTea lahenduse eesmärk on aidata teekasvatajatel paremini hallata istandusi ilma traditsioonilisi tee kasvatamise tavasid muutmata ning esitada istandustest reaalajas keskkonnaandmeid avatud platvormil.

Anduritest, sõlmedest ja lüüsidest koosnev IoTea kogub reaalajas andmeid tegurite kohta, mis võivad mõjutada tee kvaliteeti kasvatamise ja tootmisprotsesside ajal, sealhulgas temperatuuri ja niiskuse, CO2, O2, PM ja valguse käes. Andurid koguvad andurid, saadavad sõlmed lüüsile ja lõpuks pilve ning muudetakse lõppklientidele veebisaidil kättesaadavaks.

Samm: riistvaraühendus

Samm: lüüsiühendus

Lüüs paigaldatakse eraldi kasti. Arvestades soojuse hajumise probleemi, lisasime 2 ventilaatorit. Üks on mõeldud Raspberry Pi soojuse hajumiseks, teine sise- ja välisõhu ringluseks. Väravakast on paigutatud põllumehe koju, nii et me ei pea selle elektriprobleemiga arvestama.

Pilt
Pilt

Samm: sõlmeühendus

Sõlm on andmete terminal ja kõik algandmed saadakse siit. Sõlmega on ühendatud 6 andurit. Lisaks mulla niiskus- ja temperatuuriandurile paneme lamellkasti sisse ka teised andurid.

Pilt
Pilt
Pilt
Pilt

Sõlm on paigutatud veekindlasse karpi. Sõlmega parema ühenduse loomiseks teeme adapterplaadi. Lõpuks pakume selle tahvli skeemi allalaadimislingi. Nagu allpool näidatud, on andurite kaablid ühendatud adapterplaadiga klemmliistude kaudu. Andurite ja ventilaatori sisse- ja väljalülitamiseks kasutame lülitusahelate ehitamiseks 3 MOS -toru (SI2301). Jahutamiseks kasutatakse ventilaatorit. Tahvlile on paigaldatud temperatuuriandur (DS18B20). See võib meile öelda kasti sisetemperatuuri ja seejärel otsustab mikrokontroller, kas ventilaator sisse lülitada. Pliiaku pinge mõõtmiseks kasutame pingejaotusahela valmistamiseks mitut takistit. Lõpuks reserveerime tahvlile 3 IIC liidest ja jadaporti hilisemaks laiendamiseks ja silumiseks.

Pilt
Pilt

Räägime sõlme toiteallika probleemist. Sõlm asetatakse teeistandusse juhuslikult, nii et traditsiooniline toiteallikas pole enam rakendatav. Päikeseenergia lahenduse kasutamine on hea mõte. Praegu pakutakse turul palju lahendusi. Saame valida ühe neist, mis vastab meie vajadustele. Meie valitud lahenduses on 3 osa: päikesepaneel, päikeseenergia laadimiskontroller ja pliiakud. Päikeseenergia paremaks jäädvustamiseks paneme päikesepaneeli kronsteini ülaosale ja reguleerime selle nurka nii, et see oleks päikese poole suunatud. Asetasime päikeseenergia laengu regulaatori sõlmega samasse kasti. Kuna karbis ei ole lisaruumi, pidime leidma uue veekindla karbi pliiaku paigutamiseks.

Pilt
Pilt
Pilt
Pilt
Pilt
Pilt

Samm: tarkvara konfigureerimine

Sõlm

Selles osas tutvustame sõlme peamiselt tarkvara konfiguratsiooni.

DataFormat

Sõlme poolt lüüsile üles laaditud andmed:

allkirjastamata sümbol Lora_data [15] = {0, 1, 2, 3,, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};

Iga andmebiti tähendus:

Lora_data [0] : Õhutemperatuur, ℃

Lora_data [1] : Õhuniiskus, %

Lora_data [2] : Kõrgus kõrgel kaheksa, m

Lora_data [3] low Madal kõrgus kaheksa

Lora_data [4] : CO2 kontsentratsioon kõrge kaheksa, ppm

Lora_data [5] : CO2 kontsentratsioon madal kaheksa

Lora_data [6] : Tolmukontsentratsioon kõrge kaheksa, tk/0,01 cf

Lora_data [7] : Tolmu kontsentratsioon madal kaheksa

Lora_data [8] : Valgustugevus kõrge kaheksa, luksi

Lora_data [9] : Valguse intensiivsus madal kaheksa

Lora_data [10] : O2 kontsentratsioon, % (lähteandmed jagatud 1000 -ga)

Lora_data [11] : Mullatemperatuur, ℃

Lora_data [12] il Mulla niiskus, %

Lora_data [13] : Aku pinge, v

Lora_data [14] : Andurite veakood

Veakood:

Lora_andmed [14] = [bit7, bit6, bit5, bit4, bit3, bit2, bit1, bit0]

Iga bitti tähendus:

bit 0: 1 ---- Temp & Humi & Barometer Sensor (BME280) viga

bit 1: 1 ---- süsinikdioksiidi anduri (MH-Z16) viga

bit 2: 1 ---- Tolmuandur (PPD42NS) viga

bit 3: 1 ---- Digitaalse valgusanduri viga

bit 4: 1 ---- Hapnikuanduri (ME2-O2-Ф20) viga

bitt 5: 1 ---- Mulla niiskuse ja temperatuurianduri viga

bit 6: reserveeritud

bit 7: reserveeritud

Oleme teinud Error_code_transform.exe, avage see ja sisestage veakood kuueteistkümnendsüsteemis, saate kiiresti teada, milline andur on viga. Allalaadimise link on selle artikli lõpus.

Parameetrite reguleerimine: a) Andmeedastustsükkel

// seeedtea.ino

#defineinterval_time 600 // sekund

Seda parameetrit saab andmeedastustsükli muutmiseks muuta. Igas tsüklis võtab andmete kogumine aega umbes 1 minuti. Seega ei ole soovitatav seda väärtust muuta vähem kui 60 sekundiks.

b) Tolmuanduri soojenemisaeg

//seeedtea.ino

#definePreheat_time 30000 // DustSensor soojenemisaeg, millisekund //Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s

c) Pinge koefitsient

//POWER_Ctrl.cpp

#defineBattery_coefficient 0,159864 // ADC väärtus × aku_koefitsient = aku_pinge #defineSolar_coefficient 0,22559 // ADC väärtus × päikese_koefitsient = päikese_pinge

Need kaks parameetrit arvutatakse pingejaotusahela põhjal.

d) Ventilaatori avamistemperatuuri künnis

//POWER_Ctrl.cpp

#defineFan_start_temp 45 // temperatuurilävi #defineFan_start_light 500 // valguse intensiivsus

Kui tegelik temperatuur ületab künnise, hakkab ventilaator jahtuma.

e) O2 anduri initsialiseerimise parameeter

// Hapnik.cpp

#defineO2_percentage 208,00 //20,8%

f) Makrolüliti

//seeedtea.ino

#defineLORA_RUN // Pärast kommentaari lõpetab Lora initsialiseerimine ja andmeedastus #defineSENSOR_RUN // Pärast kommentaari lõpetavad välisandurid töö //POWER_Ctrl.cpp #defineFAN_ON // Ainult kinnitamine, praktilist rakendust tuleb kommenteerida /**** *** DS18B20 juhtimisrežiim **********************/ #defineSlower_Mode // Aeglane režiim temperatuuri muutmiseks. Kommenteerimine on kiire režiim

g) tihvtide kaardistamine

D2: LED -indikaator ja väline lähtestamise mikrokontroller IIC: SCL ja SDA

//Tolm_muu.h

#defineDust_pin 3 // Tolmuandur //CO2.cpp #defineCO2_serial Serial1 // kasutage hardwareserial porti (D0 & D1) //seeedtea.ino #definedataPin 6 // Pinnaseandmete tihvt #defineclockPin 7 // Pinnase kella tihvt // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Ventilaator #defineAir_CtrlPin 10 // Juhtnöör lukustuskasti paigutatud andurite jaoks #defineSoil_CtrlPin 11 // Mulla niiskuse ja temperatuuri anduri lüliti tihvt #defineBattery_pin A2 // Aku pinge mõõtmine /Mõõda päikesepaneeli pinget // Hapnik.h #defineO2_pin A1 // O2 andur

h) Vahtkoera taimer

Valvekoera taimerit kasutatakse süsteemi töötamise oleku jälgimiseks. Kui süsteem töötab ebanormaalselt, lähtestatakse sõlm, nii et see saab pikka aega pidevalt töötada.

Raamatukogu, millele viidata:

  • Projekti on lisatud Adafruit_SleepyDog.h
  • Adafruit_ASFcore-master.zip on pakitud kausta projekt ja see tuleb käsitsi Arduino IDE-sse lisada.

Seotud funktsioonid:

Luba valvekoer

int WatchdogSAMD:: lubamine (int maxPeriodMS, bool isForSleep)

Sisendparameetrid:

Int maxPeriodMS: ooteaeg millisekundites. Maksimaalne lubatud aeg on 16000 millisekundit.

tagastamisväärtus:

Int tüüp, tagastage tegelik ooteaeg

Vahtkoera lähtestamine

tühine WatchdogSAMD:: lähtestamine ()

Helistage sellele funktsioonile, et lähtestada valvekoera taimer, mida nimetatakse "koera toitmiseks". Ooteaja ületamine ilma lähtestamiseta põhjustab sõlme taaskäivitamist.

Peatage valvekoer

tühine WatchdogSAMD:: keelata ()

Värav

Selles jaotises tutvustame, kuidas Lorioti serveriga ühenduse luua.

Samm: Loriot Server Gateway registreerimine

a) Uus kasutaja peab esmalt konto registreerima, klõpsake registreerimisaadressil. Registreerimiseks sisestage kasutajanimi, parool ja e -posti aadress, pärast registreerimist saadetakse teile e -kiri, aktiveerimiseks järgige e -kirjas toodud juhiseid.

b) Pärast edukat aktiveerimist klõpsake siin sisselogimiseks. Vaikimisi on „Community Network”, see toetab 1 lüüsi (RHF2S001) ja 10 sõlme.

c) Sisestage armatuurlaud -> Gateway, klõpsake Gateway lisamiseks nuppu Add Gateway.

d) Valige Raspberry Pi 3

e) Määrake järgmiselt:

  • Raadio esiosa -> RHF2S001 868/915 MHz (SX1257)
  • BUSS -> SPI

f) Sisestage oma RHF2S001 MAC -aadress, mis peaks olema vormingus b8: 27: eb: xx: xx: xx. Samuti sisestage Gateway asukoha teave.

g) Registreerimise lõpetamiseks klõpsake „Register Raspberry Pi gateway”.

Pilt
Pilt

h) Konfiguratsioonilehele sisenemiseks klõpsake registreeritud lüüsi, lülitage „Sagedusplaan” käsitsi, teie plaani otsustab siin teie RHF2S001 tüübi tüüp, saadaolev plaan on CN470 , CN473 , CN434 , CN780 , EU868, pärast valimist värskendage lehte täpse kanali saamiseks. Selles wikis valime EU868.

i) Käivitage kitteterminalis käsk :

cd /home/rxhf/loriot/1.0.2

sudo systemctl stop pktfwd sudo gwrst wget > -O loriot-gw.bin chmod +x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io

j) Finish gateway registration. You will see the gateway is Connected now. Next is to register node.

Pilt
Pilt

Samm: Loriot Server Connect Node'i seade

a) Hankige saadaolevad lüüsi kanalid

Praegused lüüsi kanalid saab hankida armatuurlaualt -> Gateway -> Your Gateway, näete saadaolevaid kanaleid alloleval pildil.

Pilt
Pilt

b) Seeeduino LoRAWAN GPS (RHF3M076) konfiguratsioon

Avage ArduinoIDE seeriamonitor, puudutage allolevat käsku.

kell+ch

Seeeduino_LoRAWAN GPS -i vaikekanali kinnitamiseks saate 3 kanalit. Kui saadaolevat kanalit pole, saate saidi Seeeduino_LoRAWAN kanaleid muuta alloleva käsuga.

juures+ch = 0, 868,1

temperatuuril+ch = 1, 868,3 temperatuuril+ch = 2, 868,5

Seejärel saate kontrollimiseks uuesti kasutada nuppu+ch.

c) Lisage Seeeduino_LoRAWAN GPS ABP NodeLogina Lorioti serverisse, klõpsake Dash Board -> Applications -> SimpleApp. Klõpsake üksuste all Import ABP , sisendit

  • DevAddr: Seeeduino_LoRAWAN GPS läbib käsu "AT+ID" (Märkus: Loriot ei toeta käärsooleühendust, see tuleb käsitsi eemaldada)
  • FCntUp : Seadke 1
  • FCntDn : Seadke 1
  • NWKSKEY : Vaikeväärtus 2B7E151628AED2A6ABF7158809CF4F3C
  • APPSKEY fault Vaikeväärtus 2B7E151628AED2A6ABF7158809CF4F3C
  • EUI, DEVEUI, Seeeduino_LoRAWAN GPS läbib käsu "AT+ID"
Pilt
Pilt

Seadme importimise lõpetamiseks klõpsake nuppu Impordi seade. Nüüd valige Armatuurlaud -> Rakendused -> SampleApp, näete äsja lisatud uut ABP -sõlme.

Pilt
Pilt

d) Saatke andmeid saidilt Seeeduino_LoRAWAN

TÄHELEPANU! See on lihtsalt test.

Tagasi ArduinoIDE seeriamonitori juurde, saatke käsk:

AT+CMSGHEX = "0a 0b 0c 0d 0e"

Seejärel mine Dashboard -> Applications -> SampleApp -> Device, klõpsa Node Device EUI või DevAddr, leiad äsja saadetud andmed siit.

Pilt
Pilt

Üksikasjalikumat teavet leiate sellest wikist.

Samm: veebisaidi ehitamine

Seotud tööriistad

  • virtualenv
  • Python3
  • Gunicorn
  • Juhendaja
  • Nginx
  • MySQL

Kasutame test -juurutuskeskkonnana CentOS7

virtualenv

Kasutage virtualenvi iseseisva python3 tootmiskeskkonna loomiseks

a) paigaldada

pip install virtualenv

b) luua virtuaalne keskkond python3

virtualenv -p python3 iotea

c) käivitage virtuaalne keskkond ja sisestage iotea kataloog

allikakast/aktiveeri

d) keskkond olemas

deaktiveerida

Python3

a) paigaldada

yum install epel-release

yum install python36

b) installige sõltuv raamatukogu PyMySQL, DBUtils, Flask, websocket-client, configparser

pip install pymysql

pip install dbutils pip install kolb pip install websocket-client pip install configparser

Gunicorn

a) installige (Python3 keskkonnas)

pip paigaldada gunicorn

b) käivitage kolbiprojekt (iotea projekti kataloogi all)

gunicorn -w 5 -b 0.0.0.0:5000 app: app

c) käivitage loriot-andmete saamiseks veebipistik-clint

gunicorn loriot: rakendus

d) vaadata Gunicorni protsessipuu

pstree -ap | grep gunicorn

Juhendaja

a) install (juurkasutaja)

pip installijuhendaja

b) konfiguratsioonifailide loomine

echo_supervisord_conf> /etc/supervisord.conf

c) luua kataloog ja tutvustada kataloogi konfiguratsiooni

mkdir -p /etc/supervisor/conf.d

Muutke /etc/supervisord.conf ja muutke faili lõpus välja [include] all olevat failivälja.

Pange tähele, et peate eemaldama ';' nende kahe rea ees, mis on kommentaari tegelane.

[kaasa]

Failid = /etc/supervisor/conf.d/*.conf

Vahendid /etc/supervisor/conf.d/ tutvustamiseks. Protsessi konfiguratsioonifailina kasutatakse järgmist konfiguratsioonifaili (jälgib juhendaja).

d) sissetulev konfiguratsioon (iotea kataloogi all)

cp iotea.conf /etc/supervisor/conf.d/

cp loriot.conf /etc/supervisor/conf.d/

e) avatud iotea serveerimine

superviosrctl reload #reload konfiguratsioonifail

superviosrctl start loriot #open loriot andmete vastuvõtt superviosrctl start iotea #avage iotea kolbi rakendus

f) muud ühised toimingud

supervisorctl reload # laadige konfiguratsioonifail uuesti

supervisorctl update supervorctl start xxx supervorctl stop xxx supervorctl staatus xxx supervorctl abi # vaata rohkem käsku

Nginx

a) paigaldada

yum install -y nginx

b) konfiguratsioon

cp NginxIotea.conf /etc/nginx/conf.d/

c) käivitage Nginx

systemctl start nginx.service

MySQL

a) seotud parameetrid

kasutaja = 'juur'

passwd = '1234' db = 'iotea' port = 3306

b) fail

iotea_iotea.sql

c) konfiguratsioonifail

db.ini

Soovitan: