Sadržaj:

Vidjeli LoRa IoTea rješenje: 5 koraka
Vidjeli LoRa IoTea rješenje: 5 koraka

Video: Vidjeli LoRa IoTea rješenje: 5 koraka

Video: Vidjeli LoRa IoTea rješenje: 5 koraka
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Srpanj
Anonim
Vidjeli LoRa IoTea rješenje
Vidjeli LoRa IoTea rješenje

Sustav automatskog prikupljanja podataka primijenjen na plantaži čaja. To je dio inteligentnog prikupljanja poljoprivrednih informacija.

Korak 1: Stvari korištene u ovom projektu

Hardverske komponente

  • Grove - Senzor ugljičnog dioksida (MH -Z16)
  • Grove - digitalni svjetlosni senzor
  • Grove - Senzor prašine (PPD42NS)
  • Grove-Senzor kisika (ME2-O2-F20)
  • Senzor vlage i temperature tla
  • LoRa LoRaWAN pristupnik - 868MHz komplet s Raspberry Pi 3
  • Grove - Senzor za temp i Humi i barometar (BME280)

Softverske aplikacije i mrežne usluge

Microsoft Visual Studio 2015

Korak 2: Priča

Pametna poljoprivreda treba primijeniti tehnologiju Interneta stvari u tradicionalnoj poljoprivredi, koristeći senzore i softver za kontrolu poljoprivredne proizvodnje putem mobilnih ili računalnih platformi, čineći tradicionalnu poljoprivredu "pametnijom".

Na planini Mengding sjeveroistočno od Ya’ana, Sichuan, planinski greben ide od zapada prema istoku u zelenom moru. Ovo je najpoznatiji prizor za 36-godišnjeg Denga, jednog od rijetkih proizvođača čaja Mengding svoje generacije, s plantažom od 50mu (= 3,3 hektara) koja se nalazi na 1100m nadmorske visine. Deng potječe iz obitelji proizvođača čajeva, no nošenje obiteljskog naslijeđa nije lak zadatak. “Naši čajevi uzgajaju se na velikim nadmorskim visinama u organskom okruženju kako bi se osigurala njegova izvrsna kvaliteta. No, u isto vrijeme, gustoća rasta je niska, troškovi su visoki i pupoljci su neravnomjerni, što otežava berbu čaja. Zato su visokoplaninski čajevi obično male berbe i njihove vrijednosti se ne odražavaju na tržištu. Posljednje dvije godine Deng pokušava podići svijest potrošača o planinskim čajevima kako bi promicao njihovu vrijednost. A kad je upoznao Fan, koji je tražio plantažu za implementaciju Seeedove IoTea tehnologije, napravljeno je savršeno rješenje. Rješenje Seeed IoTea ima za cilj pomoći uzgajivačima čaja u boljem upravljanju plantažama bez mijenjanja tradicionalnih praksi uzgoja čaja, te predstaviti podatke o okolišu u stvarnom vremenu s plantaža na otvorenoj platformi.

Sastoji se od senzora, čvorova i pristupnika, IoTea prikuplja podatke o faktorima koji u stvarnom vremenu mogu utjecati na kvalitetu čaja tijekom procesa uzgoja i proizvodnje, uključujući temperaturu i vlagu, CO2, O2, PM i izloženost svjetlu. Podaci se prikupljaju senzorima, čvorovi ih šalju na pristupnik i na kraju u oblak te su dostupni krajnjim korisnicima na web stranici.

Korak 3: Povezivanje hardvera

Korak 1: Povezivanje pristupnika

Gateway se instalira zasebno u kutiju. S obzirom na problem odvođenja topline, dodali smo 2 ventilatora. Jedan je za odvođenje topline Raspberry Pi, drugi je za unutarnju i vanjsku cirkulaciju zraka. Ulazna kutija smještena je u farmerovom domu, pa ne moramo razmatrati problem napajanja.

Slika
Slika

Korak 2: Povezivanje čvora

Čvor je terminal podataka, a svi izvorni podaci dobivaju se odavde. Na čvor je spojeno 6 senzora. Osim senzora vlage i temperature tla, unutar kutije za žaluzine stavljamo i druge senzore.

Slika
Slika
Slika
Slika

Čvor je smješten u vodootpornu kutiju. Kako bismo imali bolju vezu s čvorom, izrađujemo adaptersku ploču. Na kraju ćemo dati vezu za preuzimanje sheme ove ploče. Kao što je dolje prikazano, kabeli senzora uključeni su u adaptersku ploču kroz priključne blokove. Koristimo 3 MOS cijevi (SI2301) za izradu sklopnih krugova za upravljanje uključivanjem i isključivanjem senzora i ventilatora. Ventilator se koristi za hlađenje. Na ploči imamo ugrađen temperaturni senzor (DS18B20). Može nam reći unutarnju temperaturu kutije, a zatim mikrokontroler odlučuje hoće li uključiti ventilator. Koristimo nekoliko otpornika za izradu kruga razdjelnika napona za mjerenje napona olovne baterije. Konačno, rezerviramo 3 IIC sučelja i serijski port na ploči za kasnije proširenje i ispravljanje pogrešaka.

Slika
Slika

Razgovarajmo o problemu napajanja čvora. Čvor se nasumično postavlja u plantažu čaja, pa tradicionalna metoda napajanja više nije primjenjiva. Korištenje rješenja za solarnu energiju dobra je ideja. Trenutno na tržištu postoji mnogo rješenja. Možemo odabrati jedan od njih koji zadovoljava naše potrebe. U rješenju koje smo odabrali postoje 3 dijela: solarni panel, solarni regulator punjenja i olovna baterija. Kako bismo bolje uhvatili solarnu energiju, stavljamo solarnu ploču na vrh nosača i prilagođavamo njezin kut kako bismo bili sigurni da je okrenuta prema suncu. Stavili smo solarni regulator punjenja u istu kutiju sa čvorom. Budući da unutar kutije nema dodatnog prostora, morali smo pronaći novu vodootpornu kutiju za postavljanje olovne baterije.

Slika
Slika
Slika
Slika
Slika
Slika

Korak 4: Konfiguracija softvera

Čvor

U ovom odjeljku predstavit ćemo uglavnom softversku konfiguraciju čvora.

Format podataka

Podaci koje je čvor prenio na pristupnik:

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

Značenje svakog bita podataka:

Lora_data [0]: Temperatura zraka, ℃

Lora_data [1]: Vlažnost zraka, %

Lora_data [2]: Visina osam, m

Lora_data [3]: Visina niska osam

Lora_data [4]: Koncentracija CO2 visoka osam, ppm

Lora_data [5]: Koncentracija CO2 niska osam

Lora_data [6]: Visoka koncentracija prašine osam, kom/0,01 cf

Lora_data [7]: Koncentracija prašine niska osam

Lora_data [8]: Intenzitet svjetla visok osam, lux

Lora_data [9]: Intenzitet svjetla nizak osam

Lora_data [10]: Koncentracija O2, % (sirovi podaci podijeljeni s 1000)

Lora_data [11]: Temperatura tla, ℃

Lora_data [12]: Vlažnost tla, %

Lora_data [13]: Napon baterije, v

Lora_data [14] : Kôd pogreške senzora

Kod pogreške:

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

Značenje svakog bita:

bit 0: 1 ---- pogreška senzora temp. i Humi & barometra (BME280)

bit 1: 1 ---- Pogreška senzora ugljičnog dioksida (MH-Z16)

bit 2: 1 ---- Greška senzora prašine, PPD42NS

bit 3: 1 ---- Pogreška senzora digitalnog svjetla

bit 4: 1 ---- pogreška osjetnika kisika (ME2-O2-F20)

bit 5: 1 ---- Pogreška osjetnika vlažnosti tla i temperature

bit 6: Rezervirano

bit 7: Rezervirano

Napravili smo Error_code_transform.exe, otvorili ga i unijeli kôd pogreške u šesnaestocifreni broj, brzo ćete znati koji je senzor pogrešan. Veza za preuzimanje nalazi se na kraju ovog članka.

Podešavanje parametara: a) Ciklus prijenosa podataka

// seeedtea.ino

#defineinterval_time 600 // sekunda

Ovaj se parametar može mijenjati za promjenu ciklusa prijenosa podataka. U svakom ciklusu prikupljanje podataka traje oko 1 minute. Dakle, ne preporučuje se mijenjanje ove vrijednosti na manje od 60 sekundi.

b) Vrijeme zagrijavanja osjetnika prašine

//seeedtea.ino

#definePreheat_time 30000 // DustSenzor zagrijavanje, miliseond //Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s

c) Koeficijent napona

//POWER_Ctrl.cpp

#defineBattery_coefficient 0,159864 // ADC vrijednost × koeficijent baterije = napon baterije #defineSolarni koeficijent 0,22559 // vrijednost ADC × solarni koeficijent = solarni napon

Ova dva parametra izračunavaju se na temelju kruga razdjelnika napona.

d) Prag temperature otvaranja ventilatora

//POWER_Ctrl.cpp

#defineFan_start_temp 45 // temperaturni prag #defineFan_start_light 500 // intenzitet svjetla

Kad stvarna temperatura pređe prag, ventilator će se početi hladiti.

e) Parametar inicijalizacije O2 osjetnika

//Kisik.cpp

#defineO2_procent 208.00 //20.8%

f) Makro prekidač

//seeedtea.ino

#defineLORA_RUN // Nakon komentara, inicijalizacija Lore i prijenos podataka će se zaustaviti #defineSENSOR_RUN // Nakon komentara, vanjski senzori će prestati raditi //POWER_Ctrl.cpp #defineFAN_ON // Samo testiranje, potrebno je komentirati praktičnu aplikaciju /**** *** Način upravljanja DS18B20 **********************/ #defineSlower_Mode // Spori način rada za postizanje temperature. Komentar je brz način rada

g) Preslikavanje pinova

D2: LED indikator i vanjski mikrokontroler za resetiranjeIIC: SCL i SDA

//Drugi_prah.h

#defineDust_pin 3 // Senzor prašine //CO2.cpp #defineCO2_serial Serial1 // koristite hardverski serijski priključak (D0 & D1) //seeedtea.ino #definedataPin 6 // Pin podataka o tlu #defineclockPin 7 // Pin sata sata // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Ventilator #defineAir_CtrlPin 10 // Kontrolni pin za senzore postavljene u žaluzinu #defineSoil_CtrlPin 11 // Sklopka osjetnika osjetnika vlage i temperature tla #defineBattery_pin A2 /Mjeri napon baterije /Izmjerite napon solarne ploče //Kisik.h #defineO2_pin A1 // Senzor O2

h) Mjerač vremena čuvara

Mjerač vremena čuvara koristi se za nadzor statusa rada sustava. Kad sustav radi neuobičajeno, čvor će se resetirati, tako da može raditi kontinuirano dugo vremena.

Knjižnica na koju se treba pozvati:

  • Adafruit_SleepyDog.h je dodan u projekt
  • Adafruit_ASFcore-master.zip pakiran je u mapu projekta i mora se ručno dodati u Arduino IDE.

Povezane funkcije:

Omogući nadzorni pas

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

Ulazni parametri:

Int maxPeriodMS: Vrijeme čekanja u milisekundama. Maksimalno dopušteno je 16000 milisekundi.

povratna vrijednost:

Int type, vrati stvarno vrijeme čekanja

Poništite nadzornog psa

void WatchdogSAMD:: reset ()

Pozovite ovu funkciju da biste poništili mjerač vremena čuvara, koji se naziva "hranjenje psa". Prekoračenje vremena čekanja bez resetiranja uzrokovat će ponovno pokretanje čvora.

Zaustavi stražara

void WatchdogSAMD:: disable ()

Gateway

U ovom odjeljku predstavit ćemo kako se povezati s poslužiteljem Loriot.

1. korak: Registracija pristupnika poslužitelja Loriot

a) Novi korisnik mora prvo registrirati račun, kliknite adresu za registraciju. Ispunite Korisničko ime, Lozinku i adresu e -pošte za registraciju, nakon registracije bit će vam poslana e -poruka, slijedite upute u e -pošti za aktivaciju.

b) Nakon uspješne aktivacije, kliknite ovdje za prijavu. Zadani nivo je “Mreža zajednice”, podržava 1 pristupnik (RHF2S001) i 10 čvorova.

c) Unesite nadzornu ploču -> Gateway, kliknite Dodaj Gateway početak za dodavanje Gateway.

d) Odaberite Raspberry Pi 3

e) Postavite kako slijedi:

  • Radio prednji dio -> RHF2S001 868/915 MHz (SX1257)
  • AUTOBUS -> SPI

f) Ispunite MAC adresu vašeg RHF2S001, trebala bi biti u formatu b8: 27: eb: xx: xx: xx. Također unesite podatke o lokaciji pristupnika.

g) Pritisnite “Register Raspberry Pi gateway” da biste dovršili registraciju.

Slika
Slika

h) Pritisnite registrirani pristupnik za ulazak na stranicu s konfiguracijom, ručno prebacite „Frekvencijski plan“, vaš plan ovdje ovisi o vrsti vašeg RHF2S001 tipa, dostupan plan je CN470 , CN473 , CN434 , CN780 , EU868, nakon odabira osvježite stranicu da biste dobili točan kanal. Na ovoj wiki stranici odabiremo EU868.

i) Pokrenite naredbu na terminalu za kit:

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.

Slika
Slika

2. korak: Uređaj čvora za povezivanje poslužitelja Loriot

a) Nabavite dostupne kanale pristupnika

Trenutni kanali pristupnika mogu se dobiti s nadzorne ploče -> pristupnik -> vaš pristupnik, dostupne kanale možete vidjeti kao na slici ispod.

Slika
Slika

b) Seeeduino LoRAWAN GPS (RHF3M076) konfiguracija

Otvorite serijski monitor ArduinoIDE -a, dodirnite naredbu ispod.

u+pogl

Da biste potvrdili zadani kanal vašeg Seeeduino_LoRAWAN GPS -a, dobit ćete 3 kanala. Ako nema dostupnih kanala, možete promijeniti kanale Seeeduino_LoRAWAN donjom naredbom.

pri+ch = 0, 868,1

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

Zatim možete ponovno upotrijebiti na+ch za provjeru.

c) Dodajte Seeeduino_LoRAWAN GPS kao ABP NodeLog na poslužitelju Loriot, kliknite Nadzorna ploča -> Aplikacije -> SimpleApp. Pritisnite Uvezi ABP , unesite ispod stavki

  • DevAddr: Seeeduino_LoRAWAN GPS dobiva naredbu "AT+ID" (Napomena: Loriot ne podržava konektor za dvotočku, potrebno ga je ukloniti ručno)
  • FCntUp: Setto 1
  • FCntDn: Setto 1
  • NWKSKEY: Zadana vrijednost 2B7E151628AED2A6ABF7158809CF4F3C
  • APPSKEY: Zadana vrijednost 2B7E151628AED2A6ABF7158809CF4F3C
  • EUI: DEVEUI, Seeeduino_LoRAWAN GPS dobivanje naredbe "AT+ID"
Slika
Slika

Pritisnite gumb Uvoz uređaja da biste dovršili uvoz uređaja. Sada odaberite Nadzorna ploča-> Aplikacije -> SampleApp, vidjet ćete novi čvor ABP -a koji ste upravo dodali.

Slika
Slika

d) Slanje podataka iz Seeeduino_LoRAWAN -a

PAŽNJA! Ovo je samo test.

Natrag na serijski monitor ArduinoIDE -a, pošaljite naredbu:

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

Zatim idite na Nadzornu ploču -> Aplikacije -> SampleApp -> Uređaj, kliknite NI Device EUI ili DevAddr, ovdje ćete pronaći podatke koje ste upravo poslali.

Slika
Slika

Za detalje pogledajte ovu wiki.

Korak 5: Izrada web stranice

Povezani alati

  • virtualenv
  • Python3
  • Gunicorn
  • Nadglednik
  • Nginx
  • MySQL

Mi koristimo CentOS7 kao okruženje za testiranje implementacije

virtualenv

Koristite virtualenv za izgradnju samostalnog proizvodnog okruženja python3

a) instalirati

pip install virtualenv

b) stvorite python3 virtualno okruženje

virtualenv -p python3 iotea

c) pokrenite virtualno okruženje i unesite iotea direktorij

izvorni spremnik/aktiviranje

d) postojeće okruženje

deaktivirati

Python3

a) instalirati

yum instalirati epel-release

yum instalirajte python36

b) instalirajte ovisnu knjižnicu PyMySQL, DBUtils, Flask, websocket-client, configparser

pip install pymysql

pip install dbutils pip install flask pip install websocket-client pip install configparser

Gunicorn

a) instalirajte (u Python3 okruženju)

pip install gunicorn

b) pokrenite projekt flask (u direktoriju iotea projekta)

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

c) pokrenite websocket-clint da biste dobili podatke o loriotu

gunicorn loriot: app

d) pogledajte drvo procesa Gunicorn

pstree -ap | grep top

Nadglednik

a) instaliraj (root korisnik)

pip install supervizor

b) generiranje konfiguracijskih datoteka

echo_supervisord_conf> /etc/supervisord.conf

c) stvoriti direktorij i uvesti konfiguraciju direktorija

mkdir -p /etc/supervisor/conf.d

Uredite /etc/supervisord.conf i izmijenite polje datoteka pod [uključi] na kraju datoteke.

Imajte na umu da morate ukloniti ';' ispred ova dva retka, što je karakter komentara.

[uključi]

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

Sredstva za uvođenje /etc/supervisor/conf.d/. Sljedeća konfiguracijska datoteka koristi se kao konfiguracijska datoteka procesa (nadgleda ju nadzornik).

d) dolazna konfiguracija (u direktoriju iotea)

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

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

e) posluživanje otvorene iotee

superviosrctl reload #reload konfiguracijske datoteke

superviosrctl start loriot #open loriot prijem podataka superviosrctl start iotea #open aplikacija iotea flask

f) druge uobičajene operacije

nadzornik reload # ponovno učitavanje konfiguracijske datoteke

supervizorctl ažuriranje supervizorctl početak xxx supervizorctl stop xxx nadzorni status xxx supervizor pomoć # pogledajte više naredbi

Nginx

a) instalirati

yum install -y nginx

b) konfiguracija

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

c) pokrenite Nginx

systemctl pokretanje nginx.service

MySQL

a) povezani parametri

korisnik = 'korijen'

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

b) datoteku

iotea_iotea.sql

c) konfiguracijsku datoteku

db.ini

Preporučeni: