Indholdsfortegnelse:

Set LoRa IoTea -løsning: 5 trin
Set LoRa IoTea -løsning: 5 trin

Video: Set LoRa IoTea -løsning: 5 trin

Video: Set LoRa IoTea -løsning: 5 trin
Video: LORA + Checkpoint Model Training GUIDE - Get the BEST RESULTS super easy 2024, November
Anonim
Set LoRa IoTea -løsning
Set LoRa IoTea -løsning

Et automatisk informationsindsamlingssystem, der anvendes på teplantage. Det er en del af intelligent landbrugsindsamling.

Trin 1: Ting, der bruges i dette projekt

Hardware komponenter

  • Grove - Kuldioxidføler (MH -Z16)
  • Grove - Digital lyssensor
  • Grove - støvføler (PPD42NS)
  • Grove-Oxygen Sensor (ME2-O2-Ф20)
  • Jordfugtigheds- og temperatursensor
  • LoRa LoRaWAN Gateway - 868MHz kit med Raspberry Pi 3
  • Grove - Temp & Humi & Barometersensor (BME280)

Software -apps og onlinetjenester

Microsoft Visual Studio 2015

Trin 2: Historie

Smart landbrug skal anvende tingenes internetteknologi til traditionelt landbrug ved hjælp af sensorer og software til at styre landbrugsproduktionen via mobile eller computerplatforme, hvilket gør det traditionelle landbrug mere "smart".

På Mengding -bjerget nordøst for Ya’an, Sichuan, løber bjergryggen vest til øst i et hav af grønt. Dette er et mest kendt syn for 36-årige Deng, en af de meget få Mengding-te-producenter i sin generation, med en plantage på 50mu (= 3,3 hektar) beliggende på 1100 m over havets overflade. Deng kommer fra en familie af tefabrikanter, men det er ikke en let opgave at videreføre arven fra familien. “Vores te dyrkes i stor højde i et organisk miljø for at sikre dets fremragende kvalitet. Men på samme tid er væksttætheden lav, omkostningerne høje og spirende er ujævn, hvilket gør te svært at høste. Derfor er te på højt bjerg normalt små høst, og deres værdier afspejles ikke på markedet.” I de sidste to år har Deng forsøgt at øge forbrugernes bevidsthed om te med højt bjerg for at fremme deres værdi. Og da han mødte Fan, der ledte efter en plantage til at implementere Seeeds IoTea -teknologi, blev det perfekte match til en løsning. Seeed IoTea-løsningen har til formål at hjælpe te-landmænd med bedre at styre plantager uden at ændre den traditionelle te-dyrkningspraksis og præsentere miljødata i realtid fra plantagerne på en åben platform.

IoTea består af sensorer, noder og gateways og indsamler data i realtid om faktorer, der kan påvirke teens kvalitet under dyrkning og produktionsprocesser, herunder temperatur og fugtighed, CO2, O2, PM og lyseksponering. Dataene indsamles af sensorerne, sendes af noderne til gatewayen og til sidst til skyen og gøres tilgængelige for slutkunder på en webside.

Trin 3: Hardwareforbindelse

Trin 1: Gateway -forbindelse

Gatewayen installeres separat i en kasse. I betragtning af varmeafledningsproblemet tilføjede vi 2 fans. Den ene er til Raspberry Pi’s varmeafledning, den anden er til intern og ekstern luftcirkulation. Gatewayboksen er placeret i en landmands hjem, så vi behøver ikke at overveje dens strømproblem.

Billede
Billede

Trin 2: Nodeforbindelse

Noden er terminal for dataene, og alle de originale data hentes herfra. Der er 6 sensorer forbundet til knuden. Ud over jordfugtigheds- og temperatursensoren sætter vi andre sensorer inde i lamellekassen.

Billede
Billede
Billede
Billede

Node er placeret i en vandtæt boks. For at få en bedre forbindelse til noden laver vi et adapterkort. Til sidst vil vi levere dette bestyrelses skematiske downloadlink. Som vist nedenfor sættes sensorernes kabler til adapterkortet via klemmer. Vi bruger 3 MOS -rør (SI2301) til at bygge switch -kredsløb til at styre til og fra sensorer og blæsere. Ventilatoren bruges til at køle ned. Vi har en temperatursensor (DS18B20) monteret på tavlen. Det kan fortælle os den interne temperatur i boksen, og derefter beslutter mikrokontroller, om ventilatoren skal tændes. Vi bruger flere modstande til at lave et spændingsdelerkredsløb til måling af bly-syre batterispænding. Endelig reserverer vi 3 IIC -interfaces og seriel port på kortet til senere udvidelse og fejlfinding.

Billede
Billede

Lad os tale om nodens strømforsyningsproblem. Noden placeres tilfældigt i teplantage, så traditionel strømforsyningsmetode er ikke længere anvendelig. Det er en god idé at bruge en solcelleløsning. Der findes mange løsninger på markedet i øjeblikket. Vi kan vælge en af dem, der opfylder vores behov. Der er 3 dele i den løsning, vi valgte: solpanel, solopladningsregulator og blybatteri. For at fange solenergien bedre sætter vi solpanel på toppen af beslaget og justerer dets vinkel for at sikre, at det vender mod solen. Vi placerede solopladningsregulator i den samme boks med node. Fordi der ikke er ekstra plads inde i boksen, måtte vi finde en ny vandtæt boks for at placere blybatteriet.

Billede
Billede
Billede
Billede
Billede
Billede

Trin 4: Softwarekonfiguration

Node

I dette afsnit introducerer vi hovedsageligt softwarekonfiguration af node.

DataFormat

Data uploadet af noden til gatewayen:

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

Betydningen af hver databit:

Lora_data [0] : Lufttemperatur, ℃

Lora_data [1]: Luftfugtighed, %

Lora_data [2]: Højde otte, m

Lora_data [3]: Lav otte højde

Lora_data [4]: CO2 -koncentration høj otte, ppm

Lora_data [5]: CO2 -koncentration lav otte

Lora_data [6] : Støvkoncentration høj otte, stk/0.01cf

Lora_data [7]: Støvkoncentration lav otte

Lora_data [8]: Lysintensitet høj otte, lux

Lora_data [9]: Lysintensitet lav otte

Lora_data [10]: O2 -koncentration, % (rådata divideret med 1000)

Lora_data [11] : Jordtemperatur, ℃

Lora_data [12] : Jordfugtighed, %

Lora_data [13] : Batterispænding, v

Lora_data [14]: Fejlkode til sensorer

Fejlkode:

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

Betydningen af hver bit:

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

bit 1: 1 ---- Kuldioxid sensor (MH-Z16) fejl

bit 2: 1 ---- Støvføler, PPD42NS, fejl

bit 3: 1 ---- Digital lyssensorfejl

bit 4: 1 ---- Oxygen Sensor (ME2-O2-Ф20) fejl

bit 5: 1 ---- Fejl i jordfugtighed og temperatursensor

bit 6: Reserveret

bit 7: Reserveret

Vi har lavet en Error_code_transform.exe, åbnet den og indtastet fejlkode i hexadecimal, du vil hurtigt vide, hvilken sensor der er fejl. Downloadlink findes i slutningen af denne artikel.

Parameterjustering: a) Datatransmissionscyklus

// seeedtea.ino

#defineinterval_time 600 // sekund

Denne parameter kan varieres for at ændre datatransmissionscyklus. I hver cyklus tager dataindsamling cirka 1 minut. Så det anbefales ikke at ændre denne værdi til mindre end 60 sekunder.

b) Opvarmningstid for støvføler

//seeedtea.ino

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

c) Spændingskoefficient

//POWER_Ctrl.cpp

#defineBattery_coefficient 0.159864 // ADC value × Battery_coefficient = battery_voltage #defineSolar_coefficient 0.22559 // ADC value × Solar_coefficient = solar_voltage

Disse to parametre beregnes ud fra spændingsdelerkredsløbet.

d) Ventilatoråbningstemperaturgrænse

//POWER_Ctrl.cpp

#defineFan_start_temp 45 // temperaturgrænse #defineFan_start_light 500 // lysintensitet

Når den faktiske temperatur overstiger tærsklen, begynder ventilatoren at køle ned.

e) Initialiseringsparameter for O2 -sensor

//Oxygen.cpp

#defineO2_procent 208,00 //20.8%

f) Makrokontakt

//seeedtea.ino

#defineLORA_RUN // Efter kommentaren stopper Lora -initialisering og dataoverførsel #defineSENSOR_RUN // Efter kommentaren vil eksterne sensorer stoppe med at arbejde //POWER_Ctrl.cpp #defineFAN_ON // Fortesting only, Praktisk applikation skal kommenteres /**** *** DS18B20 -kontroltilstand **********************/ #defineSlower_Mode // Langsom tilstand sammen med temperaturen. Kommentar ud er hurtig tilstand

g) Pin -kortlægning

D2: LED -indikator og ekstern reset -mikrokontroller IIC: SCL og SDA

//Dust_other.h

#defineDust_pin 3 // Støvføler //CO2.cpp #defineCO2_serial Serial1 // brug hardwareserial port (D0 & D1) //seeedtea.ino #definedataPin 6 // Jorddatastift #defineclockPin 7 // Jordurstift // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Ventilator #defineAir_CtrlPin 10 // Kontrolstift til sensorerne placeret i louverbox #defineSoil_CtrlPin 11 // Jordfugtigheds- og temperatursensorafbryder pin #defineBattery_pin A2 // Mål batterispænding #define /Mål solpanels spænding //Oxygen.h #defineO2_pin A1 // O2 sensor

h) Watchdog timer

Watchdog -timeren bruges til at overvåge systemets status. Når systemet kører unormalt, nulstilles noden, så det kan køre kontinuerligt i lang tid.

Biblioteket, der skal refereres til:

  • Adafruit_SleepyDog.h er blevet føjet til projektet
  • Adafruit_ASFcore-master.zip er pakket i projektmappen og skal tilføjes manuelt til Arduino IDE.

Relaterede funktioner:

Aktiver vagthund

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

Input parametre:

Int maxPeriodMS: Ventetid i millisekunder. Det maksimalt tilladte er 16000 millisekunder.

returværdi:

Int type, returner den faktiske ventetid

Nulstil vagthund

void WatchdogSAMD:: reset ()

Ring til denne funktion for at nulstille vagthundstimeren, kaldet "fodring af hunden." Overskridelse af ventetiden uden nulstilling får noden til at genstarte.

Stop vagthund

void WatchdogSAMD:: deaktiver ()

Gateway

I dette afsnit vil vi introducere, hvordan du opretter forbindelse til Loriot -serveren.

Trin 1: Registrering af Loriot Server Gateway

a) Ny bruger skal først registrere en konto, klik på registreringsadresse. Udfyld brugernavn, adgangskode og e -mail -adresse for at registrere, efter registrering vil der blive sendt en e -mail til dig, følg instruktionerne i e -mailen for at aktivere.

b) Efter vellykket aktivering skal du klikke her for at logge ind. Standardniveau er "Community Network", det understøtter 1 Gateway (RHF2S001) og 10 noder.

c) Indtast Dashboard -> Gateway, klik på Tilføj gateway start for at tilføje Gateway.

d) Vælg Raspberry Pi 3

e) Indstil som nedenfor:

  • Radio front -end -> RHF2S001 868/915 MHz (SX1257)
  • BUS -> SPI

f) Udfyld MAC -adressen på din RHF2S001, skal være i formatet b8: 27: eb: xx: xx: xx. Og indtast også Gateway Location -oplysninger.

g) Klik på "Registrer Raspberry Pi -gateway" for at afslutte registreringen.

Billede
Billede

h) Klik på den registrerede gateway for at gå ind i konfigurationssiden, skift “Frekvensplan” manuelt, din plan her afgøres af typen af din RHF2S001 -type, tilgængelig plan er CN470 , CN473 , CN434 , CN780 , EU868, efter at du har valgt, opdateres siden for at få den nøjagtige kanal. I denne wiki vælger vi EU868.

i) Kør kommandoen i kittterminalen:

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.

Billede
Billede

Trin 2: Loriot Server Connect Node -enhed

a) Få de tilgængelige gateway -kanaler

Nuværende gateway -kanaler kan hentes fra Dashboard -> Gateway -> Your Gateway, du kan se de tilgængelige kanaler som billedet herunder.

Billede
Billede

b) Seeeduino LoRAWAN GPS (RHF3M076) konfiguration

Åbn den serielle skærm for ArduinoIDE, tryk på kommandoen herunder.

ved+kap

For at bekræfte standardkanalen for din Seeeduino_LoRAWAN GPS får du 3 kanaler. Hvis der ikke er nogen tilgængelig kanal, kan du ændre kanalerne i Seeeduino_LoRAWAN med kommandoen herunder.

ved+ch = 0, 868,1

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

Derefter kan du bruge at+ch igen for at kontrollere.

c) Tilføj Seeeduino_LoRAWAN GPS som en ABP NodeLog i Loriot -serveren, klik på Dash Board -> Programmer -> SimpleApp. Klik på Importer ABP , input under elementer

  • DevAddr: Seeeduino_LoRAWAN GPS kommer igennem kommandoen "AT+ID" (Bemærk: Loriot understøtter ikke kolonstik, skal fjernes manuelt)
  • FCntUp: Setto 1
  • FCntDn: Setto 1
  • NWKSKEY : Standardværdi 2B7E151628AED2A6ABF7158809CF4F3C
  • APPSKEY: Standardværdi 2B7E151628AED2A6ABF7158809CF4F3C
  • EUI: DEVEUI, Seeeduino_LoRAWAN GPS kommer igennem kommandoen "AT+ID"
Billede
Billede

Klik på knappen Importer enhed for at afslutte enhedsimporten. Vælg nu Dashboard-> Programmer -> SampleApp, du vil se den nye ABP -knude, du lige har tilføjet.

Billede
Billede

d) Send data fra Seeeduino_LoRAWAN

OPMÆRKSOMHED! Dette er bare en test.

Tilbage til den serielle monitor af ArduinoIDE, send kommando:

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

Gå derefter til Dashboard -> Applikationer -> SampleApp -> Enhed, klik på Node Device EUI eller DevAddr, du finder de data, du lige har sendt her.

Billede
Billede

For detaljer, henvises til denne wiki.

Trin 5: Konstruktion af websted

Relaterede værktøjer

  • virtualenv
  • Python3
  • Gunicorn
  • Tilsynsførende
  • Nginx
  • MySQL

Vi bruger CentOS7 som testdistributionsmiljø

virtualenv

Brug virtualenv til at opbygge et selvstændigt python3 -produktionsmiljø

a) installer

pip installere virtualenv

b) opret et virtuelt python3 -miljø

virtualenv -p python3 iotea

c) start det virtuelle miljø og indtast iotea -biblioteket

kildebakke/aktiver

d) eksisterer miljø

deaktiver

Python3

a) installer

yum installer epel-release

yum installer python36

b) installer afhængigt bibliotek PyMySQL, DBUtils, Flask, websocket-klient, configparser

pip installer pymysql

pip install dbutils pip install kolbe pip install websocket-client pip install configparser

Gunicorn

a) installer (under Python3 -miljø)

pip installere gunicorn

b) kør kolbe projekt (under iotea projekt bibliotek)

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

c) kør websocket-clint for at få loriot-data

gunicorn loriot: app

d) se Gunicorn proces træ

pstree -ap | grep gunicorn

Tilsynsførende

a) installer (root -bruger)

pip install supervisor

b) generer konfigurationsfiler

echo_supervisord_conf> /etc/supervisord.conf

c) opret et bibliotek og indfør en bibliotekskonfiguration

mkdir -p /etc/supervisor/conf.d

Rediger /etc/supervisord.conf og rediger filfeltet under [medtag] i slutningen af filen.

Bemærk, at du skal fjerne ';' foran disse to linjer, som er kommentarfeltet.

[omfatte]

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

Betyder at introducere /etc/supervisor/conf.d/. Følgende konfigurationsfil bruges som proceskonfigurationsfil (overvåget af vejlederen).

d) indgående konfiguration (under iotea bibliotek)

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

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

e) åben iotea -servering

superviosrctl genindlæser #reload konfigurationsfilen

superviosrctl start loriot #open loriot datamodtagelse superviosrctl start iotea #åbn iotea kolbe applikationen

f) andre fælles operationer

supervisorctl reload # genindlæs konfigurationsfilen

supervisorctl opdater supervisorctl start xxx supervisorctl stop xxx supervisorctl status xxx supervisorctl hjælp # se mere kommando

Nginx

a) installer

yum installere -y nginx

b) konfiguration

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

c) start Nginx

systemctl starter nginx.service

MySQL

a) relaterede parametre

bruger = 'root'

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

b) fil

iotea_iotea.sql

c) konfigurationsfil

db.ini

Anbefalede: