Kazalo:

Glejte LoRa IoTea Rešitev: 5 korakov
Glejte LoRa IoTea Rešitev: 5 korakov

Video: Glejte LoRa IoTea Rešitev: 5 korakov

Video: Glejte LoRa IoTea Rešitev: 5 korakov
Video: Step Five of Meditation: Withdrawal from the Senses 2024, November
Anonim
Glej rešitev LoRa IoTea
Glej rešitev LoRa IoTea

Samodejni sistem zbiranja informacij, ki se uporablja za nasad čaja. Je del inteligentnega zbiranja kmetijskih informacij.

1. korak: Stvari, uporabljene v tem projektu

Strojne komponente

  • Grove - Senzor ogljikovega dioksida (MH -Z16)
  • Grove - digitalni svetlobni senzor
  • Grove - Senzor prahu (PPD42NS)
  • Grove-Senzor kisika (ME2-O2-Ф20)
  • Senzor vlage in temperature tal
  • LoRa LoRaWAN Gateway - 868MHz komplet z Raspberry Pi 3
  • Grove - Temp & Humi & Barometer Sensor (BME280)

Programske aplikacije in spletne storitve

Microsoft Visual Studio 2015

2. korak: Zgodba

Pametno kmetijstvo je uporaba tehnologije interneta stvari v tradicionalnem kmetijstvu s senzorji in programsko opremo za nadzor kmetijske proizvodnje prek mobilnih ali računalniških platform, zaradi česar je tradicionalno kmetijstvo bolj "pametno".

Na gori Mengding severovzhodno od Ya’ana v Sečuanu gorski greben poteka od zahoda proti vzhodu v zelenem morju. To je najbolj znan prizor 36-letnega Denga, enega redkih proizvajalcev čaja Mengding v svoji generaciji, s plantažo 50mu (= 3,3 hektarja) na 1100 m nadmorske višine. Deng prihaja iz družine proizvajalcev čaja, vendar nadaljevanje družinske zapuščine ni lahka naloga. »Naši čaji rastejo na visokih nadmorskih višinah v ekološkem okolju, da se zagotovi njihova odlična kakovost. Toda hkrati je gostota rasti nizka, stroški visoki in brstenje neenakomerno, zato je čaj težko nabrati. Zato so gorski čaji običajno majhne letine in njihove vrednosti se ne odražajo na trgu. Deng si v zadnjih dveh letih prizadeva ozavestiti potrošnike o visokogorskem čaju, da bi spodbudil njihovo vrednost. In ko je spoznal Fan, ki je iskal plantažo za izvajanje Seeedove tehnologije IoTea, se je odlično znašla rešitev. Namen Seeed IoTea Solution je pomagati kmetovalcem čaja pri boljšem upravljanju nasadov brez spreminjanja tradicionalnih praks pridelave čaja in predstaviti okoljske podatke v realnem času iz nasadov na odprti platformi.

IoTea, sestavljena iz senzorjev, vozlišč in prehodov, v realnem času zbira podatke o dejavnikih, ki lahko vplivajo na kakovost čaja med pridelavo in proizvodnimi procesi, vključno s temperaturo in vlažnostjo, CO2, O2, PM in izpostavljenostjo svetlobi. Podatke zbirajo senzorji, ki jih vozlišča pošljejo na prehod in sčasoma v oblak ter so dostopni končnim strankam na spletni strani.

3. korak: Povezava strojne opreme

1. korak: Povezava s prehodom

Prehod je nameščen ločeno v škatli. Glede na problem odvajanja toplote smo dodali 2 ventilatorja. Ena je za odvajanje toplote Raspberry Pi, druga pa za notranjo in zunanjo kroženje zraka. Prehodna omarica je nameščena v kmečkem domu, zato nam ni treba upoštevati njene napake.

Slika
Slika

2. korak: Povezava vozlišča

Vozlišče je terminal podatkov in vsi izvirni podatki so pridobljeni od tukaj. Na vozlišče je povezanih 6 senzorjev. Poleg senzorja vlage in temperature tal smo v ohišje žaluzije postavili še druge senzorje.

Slika
Slika
Slika
Slika

Vozlišče je nameščeno v vodotesni škatli. Za boljšo povezavo z vozliščem izdelamo adapterno ploščo. Nazadnje bomo zagotovili povezavo za prenos sheme te plošče. Kot je prikazano spodaj, so kabli senzorjev priključeni na vmesniško ploščo skozi sponke. Za izdelavo stikalnih vezij za nadzor vklopa in izklopa senzorjev in ventilatorja uporabljamo 3 MOS cevi (SI2301). Ventilator se uporablja za hlajenje. Na ploščo imamo nameščen temperaturni senzor (DS18B20). Lahko nam pove notranjo temperaturo škatle, nato pa se mikrokrmilnik odloči, ali bo vklopil ventilator. Za izdelavo vezja delilnika napetosti za merjenje napetosti svinčevo-kislinske baterije uporabljamo več uporov. Nazadnje rezerviramo 3 vmesnike IIC in serijska vrata na plošči za kasnejšo razširitev in odpravljanje napak.

Slika
Slika

Pogovorimo se o problemu napajanja vozlišča. Vozlišče je naključno postavljeno v nasad čaja, zato tradicionalna metoda napajanja ni več uporabna. Uporaba sončne energije je dobra ideja. Trenutno je na trgu na voljo veliko rešitev. Izberemo lahko enega izmed njih, ki ustreza našim potrebam. V raztopini, ki smo jo izbrali, so trije deli: sončna plošča, regulator sončnega polnjenja in svinčevo -kislinska baterija. Za boljši zajem sončne energije namestimo sončno ploščo na vrh nosilca in ji prilagodimo kot, da je obrnjen proti soncu. Solarni regulator polnjenja smo postavili v isto škatlo z vozliščem. Ker v škatli ni dodatnega prostora, smo morali poiskati novo vodotesno škatlo za namestitev svinčeve kislinske baterije.

Slika
Slika
Slika
Slika
Slika
Slika

4. korak: Konfiguracija programske opreme

Vozlišče

V tem razdelku bomo predstavili predvsem programsko konfiguracijo vozlišča.

Podatkovni format

Podatki, ki jih vozlišče naloži na prehod:

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

Pomen vsakega podatkovnega bita:

Lora_data [0]: Temperatura zraka, ℃

Lora_data [1]: Vlažnost zraka, %

Lora_data [2]: Nadmorska višina osem, m

Lora_data [3]: Nadmorska višina osem

Lora_data [4]: Visoka koncentracija CO2 osem, ppm

Lora_data [5]: Koncentracija CO2 nizka osem

Lora_data [6]: Visoka koncentracija prahu osem, kos/0,01 cf

Lora_data [7]: Koncentracija prahu nizka osem

Lora_data [8]: Moč svetlobe osem, lux

Lora_data [9]: Moč svetlobe nizka osem

Lora_data [10]: Koncentracija O2, % (surovi podatki deljeni s 1000)

Lora_data [11]: Temperatura tal, ℃

Lora_data [12]: Vlažnost tal, %

Lora_data [13]: Napetost akumulatorja, v

Lora_data [14]: Koda napake senzorja

Napačna koda:

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

Pomen vsakega bita:

bit 0: 1 ---- napaka senzorja temp & Humi & barometra (BME280)

bit 1: 1 ---- Napaka senzorja ogljikovega dioksida (MH-Z16)

bit 2: 1 ---- Napaka senzorja prahu (PPD42NS)

bit 3: 1 ---- Napaka digitalnega senzorja svetlobe

bit 4: 1 ---- Napaka senzorja kisika (ME2-O2-Ф20)

bit 5: 1 ---- Napaka senzorja vlage in temperature tal

bit 6: Rezervirano

bit 7: Rezervirano

Naredili smo Error_code_transform.exe, ga odprli in vnesli kodo napake v šestnajstiški številki, hitro boste vedeli, kateri senzor je napaka. Povezava za prenos je na koncu tega članka.

Prilagajanje parametrov: a) Cikel prenosa podatkov

// seeedtea.ino

#defineinterval_time 600 // sekunda

Ta parameter lahko spremenite, da spremenite cikel prenosa podatkov. V vsakem ciklu zbiranje podatkov traja približno 1 minuto. Zato ni priporočljivo spreminjati te vrednosti na manj kot 60 sekund.

b) Čas segrevanja senzorja za prah

//seeedtea.ino

#definePreheat_time 30000 // DustSensor ogrevalni čas, miliseond //Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s

c) Napetostni koeficient

//POWER_Ctrl.cpp

#defineBattery_coefficient 0,159864 // vrednost ADC × koeficient baterije_napetost = napetost baterije #defineSolarni_koeficient 0,22559 // vrednost ADC × sončni_koeficient = sončna_napetost

Ta dva parametra se izračunata na podlagi vezja delilnika napetosti.

d) Temperaturni prag odpiranja ventilatorja

//POWER_Ctrl.cpp

#defineFan_start_temp 45 // temperaturni prag #defineFan_start_light 500 // jakost svetlobe

Ko dejanska temperatura preseže prag, se bo ventilator začel ohlajati.

e) Parameter inicializacije senzorja O2

// kisik.cpp

#defineO2_percentage 208,00 //20,8%

f) Stikalo za makro

//seeedtea.ino

#defineLORA_RUN // Po komentarju se bo inicializacija Lora in prenos podatkov ustavila #defineSENSOR_RUN // Po komentarju bodo zunanji senzorji prenehali delovati //POWER_Ctrl.cpp #defineFAN_ON // Samo preverjanje, potrebno je komentirati praktično aplikacijo /**** *** Način krmiljenja DS18B20 **********************/ #defineSlower_Mode // Počasen način za nastavitev temperature. Komentar je hiter način

g) Preslikava pin

D2: LED indikator in zunanji ponastavljeni mikrokrmilnik IIC: SCL in SDA

//Dust_other.h

#defineDust_pin 3 // Senzor prahu //CO2.cpp #defineCO2_serial Serial1 // uporabite serijska vrata strojne opreme (D0 & D1) //seeedtea.ino #definedataPin 6 // Podatkovni zatič za tla #defineclockPin 7 // Pin za uro v tleh // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Fan #defineAir_CtrlPin 10 // Krmilni zatič za senzorje, nameščene v louverbox #defineSoil_CtrlPin 11 // Stikalo senzorja za vlago in temperaturo tal #defineBattery_pin A2 /Izmerite napetost sončne celice // kisik.h #defineO2_pin A1 // senzor O2

h) Časovnik nadzornika

Časovnik nadzornika se uporablja za spremljanje stanja delovanja sistema. Ko sistem deluje nepravilno, se bo vozlišče ponastavilo, tako da lahko deluje neprekinjeno dlje časa.

Knjižnica, na katero se sklicuje:

  • Adafruit_SleepyDog.h je bil dodan projektu
  • Adafruit_ASFcore-master.zip je zapakiran v mapo projekta in ga je treba ročno dodati v Arduino IDE.

Sorodne funkcije:

Omogoči nadzornika

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

Vhodni parametri:

Int maxPeriodMS: Čakalni čas v milisekundah. Največja dovoljena vrednost je 16000 milisekund.

vrnjena vrednost:

Int type, vrnite dejanski čakalni čas

Ponastavi nadzornika

void WatchdogSAMD:: reset ()

Pokličite to funkcijo za ponastavitev časovnika nadzornika, imenovanega "hranjenje psa". Če prekoračite čakalni čas brez ponastavitve, se bo vozlišče znova zagnalo.

Ustavite nadzornika

void WatchdogSAMD:: disable ()

Prehod

V tem razdelku bomo predstavili, kako se povezati s strežnikom Loriot.

Korak 1: Registracija strežnika Loriot Server Gateway

a) Nov uporabnik mora najprej registrirati račun, kliknite naslov za registracijo. Za registracijo vnesite uporabniško ime, geslo in e -poštni naslov, po registraciji vam bo poslano e -poštno sporočilo, za aktiviranje sledite navodilom v e -poštnem sporočilu.

b) Po uspešni aktivaciji kliknite tukaj, da se prijavite. Privzeta raven je "Network of Community", podpira 1 prehod (RHF2S001) in 10 vozlišč.

c) Vnesite Dashboard -> Gateway, kliknite Add Gateway start, da dodate Gateway.

d) Izberite Raspberry Pi 3

e) Nastavite na naslednji način:

  • Radijski sprednji del -> RHF2S001 868/915 MHz (SX1257)
  • AVTOBUS -> SPI

f) Izpolnite naslov MAC vašega RHF2S001 v obliki b8: 27: eb: xx: xx: xx. Vnesite tudi podatke o lokaciji prehoda.

g) Kliknite »Register Raspberry Pi gateway«, da dokončate registracijo.

Slika
Slika

h) Kliknite na registrirani prehod, da vstopite na konfiguracijsko stran, ročno preklopite na “Frekvenčni načrt”, vaš načrt je odvisen od vrste vašega RHF2S001, na voljo je načrt CN470 , CN473 , CN434 , CN780 , EU868, po izbiri osvežite stran da dobite natančen kanal. V tem wikiju izberemo EU868.

i) Zaženite ukaz v terminalu za kiti:

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: Naprava Loriot Server Connect Node

a) Pridobite razpoložljive kanale prehoda

Trenutne kanale prehoda lahko dobite na nadzorni plošči -> prehod -> vaš prehod, razpoložljive kanale si lahko ogledate na spodnji sliki.

Slika
Slika

b) Seeeduino LoRAWAN GPS (RHF3M076) Konfiguracija

Odprite serijski monitor ArduinoIDE, tapnite spodnji ukaz.

pri+ch

Za potrditev privzetega kanala vašega sistema Seeeduino_LoRAWAN GPS boste dobili 3 kanale. Če ni razpoložljivega kanala, lahko kanale Seeeduino_LoRAWAN spremenite s spodnjim ukazom.

pri+ch = 0, 868,1

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

Nato lahko znova uporabite tipko+ch za preverjanje.

c) Dodajte Seeeduino_LoRAWAN GPS kot ABP NodeLog v strežniku Loriot, kliknite Nadzorna plošča -> Aplikacije -> SimpleApp. Kliknite Import ABP , vnesite pod postavke

  • DevAddr: Seeeduino_LoRAWAN GPS pride skozi ukaz "AT+ID" (Opomba: Loriot ne podpira priključka za dvopičje, zato ga morate odstraniti ročno)
  • FCntUp: Setto 1
  • FCntDn: Setto 1
  • NWKSKEY: Privzeta vrednost 2B7E151628AED2A6ABF7158809CF4F3C
  • APPSKEY: Privzeta vrednost 2B7E151628AED2A6ABF7158809CF4F3C
  • EUI: DEVEUI, Seeeduino_LoRAWAN GPS z ukazom "AT+ID"
Slika
Slika

Kliknite gumb Uvozi napravo, da dokončate uvoz naprave. Zdaj izberite Nadzorna plošča-> Aplikacije -> SampleApp, videli boste novo vozlišče ABP, ki ste ga pravkar dodali.

Slika
Slika

d) Pošljite podatke iz Seeeduino_LoRAWAN

POZOR! To je le preizkus.

Nazaj na serijski monitor ArduinoIDE, pošljite ukaz:

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

Nato pojdite na Nadzorna plošča -> Aplikacije -> SampleApp -> Naprava, kliknite NI Device EUI ali DevAddr, tukaj boste našli podatke, ki ste jih pravkar poslali.

Slika
Slika

Za podrobnosti si oglejte to wiki.

5. korak: Izdelava spletnega mesta

Sorodna orodja

  • virtualenv
  • Python3
  • Gunicorn
  • Nadzornik
  • Nginx
  • MySQL

CentOS7 uporabljamo kot testno okolje za uvajanje

virtualenv

Uporabite virtualenv za izgradnjo samostojnega produkcijskega okolja python3

a) namestite

pip namestite virtualenv

b) ustvarite navidezno okolje python3

virtualenv -p python3 iotea

c) zaženite virtualno okolje in vnesite imenik iotea

izvorni koš/aktiviraj

d) obstaja okolje

deaktivirati

Python3

a) namestite

yum namestite epel-release

yum namestite python36

b) namestite odvisno knjižnico PyMySQL, DBUtils, Flask, odjemalca websocket, configparser

pip namestite pymysql

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

Gunicorn

a) namestite (v okolju Python3)

pip install gunicorn

b) zaženite projekt flask (pod imenikom projekta iotea)

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

c) zaženite websocket-clint, da pridobite podatke o loriotu

gunicorn loriot: app

d) ogled drevesa procesa Gunicorn

pstree -ap | grep gunicorn

Nadzornik

a) namestitev (korenski uporabnik)

nadzornik za namestitev pipa

b) ustvarite konfiguracijske datoteke

echo_supervisord_conf> /etc/supervisord.conf

c) ustvarite imenik in uvedite konfiguracijo imenika

mkdir -p /etc/supervisor/conf.d

Uredite /etc/supervisord.conf in spremenite polje datotek pod [vključi] na koncu datoteke.

Upoštevajte, da morate odstraniti ';' pred tema dvema vrsticama, kar je komentar.

[vključi]

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

Pomeni uvesti /etc/supervisor/conf.d/. Naslednja konfiguracijska datoteka se uporablja kot konfiguracijska datoteka procesa (spremlja jo nadzornik).

d) vhodna konfiguracija (v imeniku iotea)

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

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

e) odprta iotea postrežba

superviosrctl reload #reload konfiguracijske datoteke

superviosrctl start loriot #open loriot sprejem podatkov superviosrctl start iotea #open aplikacija iotea flask

f) druge skupne operacije

supervizorctl reload # ponovno naložite konfiguracijsko datoteko

supervizorctl posodobitev supervizorctl začetek xxx supervizorctl ustavitev xxx nadzornik stanje xxx nadzornik pomoč # glej več ukazov

Nginx

a) namestite

yum install -y nginx

b) konfiguracija

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

c) zaženite Nginx

systemctl zaženite nginx.service

MySQL

a) povezani parametri

user = 'root'

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

b) datoteko

iotea_iotea.sql

c) konfiguracijsko datoteko

db.ini

Priporočena: