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, Juli
Anonim
Vidjeli LoRa IoTea rješenje
Vidjeli LoRa IoTea rješenje

Automatski sistem prikupljanja informacija primijenjen na plantaži čaja. To je dio inteligentnog prikupljanja poljoprivrednih informacija.

Korak 1: Stvari koje se koriste 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 sa 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čunarskih platformi, čineći tradicionalnu poljoprivredu "pametnijom".

Na planini Mengding sjeveroistočno od Ya’ana, u Sečuanu, planinski greben ide zapadno -istočno u zelenom moru. Ovo je najpoznatiji prizor za 36-godišnjeg Denga, jednog od rijetkih proizvođača čaja u Mengdingu svoje generacije, sa plantažom od 50mu (= 3,3 hektara) smještenom na 1100m nadmorske visine. Deng dolazi iz porodice proizvođača čajeva, ali nošenje porodičnog naslijeđa nije lak zadatak. „Naši čajevi uzgajaju se na velikim nadmorskim visinama u organskom okruženju kako bi se osigurala njihova izvrsna kvaliteta. Ali u isto vrijeme, gustoća rasta je niska, troškovi su visoki i pupoljci su neujednačeni, što otežava berbu čaja. Zato su čajevi s visokih planina 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 promovirao njihovu vrijednost. A kad je upoznao Fan, koji je tražio plantažu za implementaciju Seeed -ove IoTea tehnologije, napravljeno je savršeno rješenje. Rješenje Seeed IoTea ima za cilj pomoći uzgajivačima čaja da bolje upravljaju plantažama bez mijenjanja tradicionalnih praksi uzgoja čaja, te predstaviti podatke o okolišu u stvarnom vremenu sa plantaža na otvorenoj platformi.

Sastoji se od senzora, čvorova i pristupnika, IoTea prikuplja podatke u stvarnom vremenu o faktorima koji mogu utjecati na kvalitetu čaja tokom procesa uzgoja i proizvodnje, uključujući temperaturu i vlažnost, 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 mrežnog prolaza

Gateway se instalira zasebno u kutiji. 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. Priključna kutija je smještena u poljoprivrednom domu, tako da ne moramo uzeti u obzir njen problem s napajanjem.

Image
Image

Korak 2: Povezivanje čvora

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

Image
Image
Image
Image

Č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 priključeni su u adaptersku ploču kroz priključne blokove. Koristimo 3 MOS cijevi (SI2301) za izradu sklopnih krugova za kontrolu uključivanja i isključivanja senzora i ventilatora. Ventilator se koristi za hlađenje. Imamo senzor temperature (DS18B20) montiran na ploču. Može nam reći unutrašnju 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 otklanjanje grešaka.

Image
Image

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 jednu od njih koja 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 držača i prilagođavamo njen 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.

Image
Image
Image
Image
Image
Image

Korak 4: Konfiguracija softvera

Node

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

DataFormat

Podaci koje je čvor otpremio na gateway:

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 velika osam, ppm

Lora_data [5]: Koncentracija CO2 niska osam

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

Lora_data [7]: Koncentracija prašine niska osam

Lora_data [8]: Intenzitet svjetla veliki 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 greške senzora

Kôd greške:

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

Značenje svakog bita:

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

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

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

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

bit 4: 1 ---- Greška senzora kisika (ME2-O2-F20)

bit 5: 1 ---- Greška senzora vlage i temperature tla

bit 6: Rezervisano

bit 7: Rezervisano

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

Podešavanje parametara: a) Ciklus prijenosa podataka

// seeedtea.ino

#defineinterval_time 600 // sekunda

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

b) Vrijeme zagrijavanja senzora za prašinu

//seeedtea.ino

#definePreheat_time 30000 // Vrijeme zagrijavanja DustSensor-a, 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

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

e) Parametar inicijalizacije O2 senzora

//Oxygen.cpp

#defineO2_percentage 208.00 //20.8%

f) Makro prekidač

//seeedtea.ino

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

g) Pin mapiranje

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

//Dust_other.h

#defineDust_pin 3 // Senzor prašine //CO2.cpp #defineCO2_serial Serial1 // koristi hardverski serijski port (D0 & D1) //seeedtea.ino #definedataPin 6 // Pin podataka o tlu #defineclockPin 7 // Igla sata tla // 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 praćenje statusa sistema. Kada sistem radi neuobičajeno, čvor će se resetirati, tako da može raditi kontinuirano dugo vremena.

Biblioteka na koju se treba pozvati:

  • Adafruit_SleepyDog.h je dodan u projekat
  • Adafruit_ASFcore-master.zip je upakovan u fasciklu projekta i mora se ručno dodati u Arduino IDE.

Povezane funkcije:

Omogući nadzornika

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

Ulazni parametri:

Int maxPeriodMS: Vrijeme čekanja u milisekundama. Maksimalno dozvoljeno je 16000 milisekundi.

povratna vrijednost:

Int type, vraća 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 ćemo predstaviti kako se povezati s Loriot serverom.

Korak 1: Registracija Loriot pristupnika servera

a) Novi korisnik mora prvo registrirati račun, kliknite na adresu za registraciju. Ispunite korisničko ime, lozinku i adresu e -pošte za registraciju, nakon registracije će vam biti 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) Uđite na nadzornu ploču -> Gateway, kliknite Dodaj Gateway za početak dodavanja Gateway -a.

d) Odaberite Raspberry Pi 3

e) Postavite kako slijedi:

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

f) Unesite MAC adresu vašeg RHF2S001, treba biti u formatu b8: 27: eb: xx: xx: xx. Također unesite informacije o lokaciji pristupnika.

g) Kliknite na „Register Raspberry Pi gateway“da biste dovršili registraciju.

Image
Image

h) Kliknite na registrirani pristupnik za ulazak na stranicu sa konfiguracijom, ručno prebacite „Plan učestalosti“, vaš plan ovdje ovisi o vrsti vašeg RHF2S001, raspoloživi plan je CN470 , CN473 , CN434 , CN780 , EU868, nakon odabira osvježite stranicu da dobijete tač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.

Image
Image

Korak 2: Loriot Server Connect Node uređaj

a) Nabavite dostupne gateway kanale

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

Image
Image

b) Seeeduino LoRAWAN GPS (RHF3M076) konfiguracija

Otvorite serijski monitor ArduinoIDE -a, dodirnite naredbu ispod.

na+ch

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 pomoću naredbe ispod.

pri+ch = 0, 868.1

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

Zatim možete ponovo koristiti tipku+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 dobija 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 prođite kroz naredbu "AT+ID"
Image
Image

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

Image
Image

d) Slanje podataka sa 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.

Image
Image

Za detalje, pogledajte ovu wiki.

Korak 5: Izrada web stranice

Povezani alati

  • virtualenv
  • Python3
  • Gunicorn
  • Supervizor
  • Nginx
  • MySQL

CentOS7 koristimo kao okruženje za testiranje implementacije

virtualenv

Koristite virtualenv za izgradnju samostalnog Python3 proizvodnog okruženja

a) instalirati

pip install virtualenv

b) kreirajte python3 virtualno okruženje

virtualenv -p python3 iotea

c) pokrenite virtualno okruženje i unesite iotea direktorij

izvor kanta/aktiviranje

d) postojeće okruženje

deaktivirati

Python3

a) instalirati

yum instalirajte epel-release

yum install python36

b) instalirajte zavisnu biblioteku 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 flask project (u iotea direktoriju projekta)

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

c) pokrenite websocket-clint da biste dobili loriot podatke

gunicorn loriot: app

d) pogledajte drvo procesa Gunicorn

pstree -ap | grep top

Supervizor

a) instaliraj (root korisnik)

pip install supervizor

b) generiranje konfiguracijskih datoteka

echo_supervisord_conf> /etc/supervisord.conf

c) kreiranje direktorija i uvođenje konfiguracije 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 reda, š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) otvoren iotea servis

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 pokrenite nginx.service

MySQL

a) povezani parametri

user = 'root'

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

b) dosije

iotea_iotea.sql

c) konfiguracioni fajl

db.ini

Preporučuje se: