Indholdsfortegnelse:
- Trin 1: Ting, der bruges i dette projekt
- Trin 2: Historie
- Trin 3: Hardwareforbindelse
- Trin 4: Softwarekonfiguration
- Trin 5: Konstruktion af websted
Video: Set LoRa IoTea -løsning: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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.
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.
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.
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.
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.
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.
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.
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"
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.
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.
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:
GØR DIN SNAP CIRCUITS ARCADE SET FAN SEY IU: 5 trin
GØR DINE SNAPKRETTER ARKADE SÆT FAN SIG I <3 U: Nu kan du få dine snapkredsløb til arkadesæt at sige I LOVE U ved hjælp af denne instruerbare! Jeg deltager også i dette instruerbare i hjertekonkurrencen! Håber jeg vinder
Sweepy: the Set It & Glem It Studio Cleaner: 10 trin (med billeder)
Sweepy: the Set It & Glem It Studio Cleaner: Af: Evan Guan, Terence Lo og Wilson Yang Introduktion & MotivationSweepy studie renere blev designet som reaktion på de kaotiske forhold i arkitektstudiet efterladt af barbariske studerende. Træt af hvor rodet studiet er under revi
ESP32 Med E32-433T LoRa-modul Tutorial - LoRa Arduino -grænseflade: 8 trin
ESP32 Med E32-433T LoRa-modul Tutorial | LoRa Arduino Interfacing: Hey, hvad sker der, fyre! Akarsh her fra CETech.This project of my interfaces the E32 LoRa module from eByte which is a high-power 1-watt transceiver module with an ESP32 using Arduino IDE.We forstod funktionen af E32 i vores sidste tutoria
Styr husholdningsapparater over LoRa - LoRa i hjemmeautomatisering - LoRa fjernbetjening: 8 trin
Styr husholdningsapparater over LoRa | LoRa i hjemmeautomatisering | LoRa fjernbetjening: Styr og automatiser dine elektriske apparater fra lange afstande (kilometer) uden tilstedeværelse af internettet. Dette er muligt gennem LoRa! Hey, hvad sker der, gutter? Akarsh her fra CETech.Dette printkort har også et OLED -display og 3 relæer, som en
Konvertering af batteri til DC -drev, Speedlight (eller stort set alt): 5 trin
Konvertering af batteri til DC -drev, Speedlight (eller stort set alt): Dette er nok den mest enkle måde at konvertere en speedlite fra batteri til DC -strømforsyning. Denne Yongnuo YN560IV er lejlighedsvis nødvendig i vores fotoboks for at belyse baggrundsvæggen og fjerne skygger fra motivet. Der er en lo