Nähtiin LoRa IoTea -ratkaisu: 5 vaihetta
Nähtiin LoRa IoTea -ratkaisu: 5 vaihetta
Anonim
Nähtiin LoRa IoTea -ratkaisu
Nähtiin LoRa IoTea -ratkaisu

Automaattinen tiedonkeruujärjestelmä, jota sovelletaan teen istutukseen. Se on osa älykästä maataloustiedon keräämistä.

Vaihe 1: Tässä projektissa käytetyt asiat

Laitteiston osat

  • Grove - hiilidioksidianturi (MH -Z16)
  • Grove - digitaalinen valotunnistin
  • Grove - Pölyanturi (PPD42NS)
  • Grove-happianturi (ME2-O2-Ф20)
  • Maaperän kosteus- ja lämpötila -anturi
  • LoRa LoRaWAN -yhdyskäytävä - 868 MHz: n sarja ja Raspberry Pi 3
  • Grove - lämpötila- ja humi- ja ilmanpainemittari (BME280)

Ohjelmistosovellukset ja verkkopalvelut

Microsoft Visual Studio 2015

Vaihe 2: Tarina

Älykkään maatalouden tarkoituksena on soveltaa esineiden Internet -tekniikkaa perinteiseen maatalouteen käyttämällä antureita ja ohjelmistoja maatalouden tuotannon ohjaamiseen mobiili- tai tietokonealustojen kautta, mikä tekee perinteisestä maataloudesta "älykkäämpää".

Mengding -vuorella Yaichista koilliseen, Sichuanissa, vuoristoharja kulkee länteen itään vihreässä meressä. Tämä on tutuin näky 36-vuotiaalle Dengille, joka on yksi harvoista sukupolvensa Mengding-teenkeittimistä ja jonka istutusalue on 50 m (= 3,3 hehtaaria) 1100 metrin korkeudella merenpinnan yläpuolella. Deng tulee teekoneiden perheestä, mutta perheen perinnön jatkaminen ei ole helppo tehtävä.”Teemme on kasvatettu korkealla luonnonmukaisessa ympäristössä sen erinomaisen laadun varmistamiseksi. Mutta samaan aikaan kasvutiheys on alhainen, kustannukset ovat korkeat ja orastaminen on epätasaista, mikä tekee teestä vaikean sadon. Siksi korkean vuoren teet ovat yleensä pieniä satoja, eikä niiden arvot näy markkinoilla.” Kahden viime vuoden aikana Deng on pyrkinyt lisäämään kuluttajien tietoisuutta korkean vuoren teestä edistääkseen niiden arvoa. Ja kun hän tapasi Fanin, joka etsi istutusta Seeedin IoTea -tekniikan toteuttamiseen, ratkaisu löytyi täydellisesti. Seeed IoTea -ratkaisun tarkoituksena on auttaa teeviljelijöitä hallitsemaan paremmin istutuksia muuttamatta perinteisiä teenviljelykäytäntöjä ja esittää reaaliaikaisia ympäristötietoja istutuksista avoimella alustalla.

IoTea kerää antureista, solmuista ja yhdyskäytävistä reaaliaikaisia tietoja tekijöistä, jotka voivat vaikuttaa teen laatuun viljelyn ja tuotantoprosessien aikana, mukaan lukien lämpötila ja kosteus, CO2, O2, PM ja valolle altistuminen. Anturit keräävät tiedot, solmut lähettävät yhdyskäytävään ja lopulta pilveen, ja ne asetetaan loppukäyttäjien saataville verkkosivulla.

Vaihe 3: Laitteistoyhteys

Vaihe 1: Yhdyskäytäväyhteys

Yhdyskäytävä asennetaan erikseen laatikkoon. Kun otetaan huomioon lämmöntuottoon liittyvä ongelma, lisäsimme 2 tuuletinta. Toinen on tarkoitettu Raspberry Pi: n lämmöntuottoon, toinen sisäiseen ja ulkoiseen ilmankiertoon. Yhdyskäytävälaatikko on sijoitettu viljelijän kotiin, joten meidän ei tarvitse harkita sen sähköongelmaa.

Kuva
Kuva

Vaihe 2: Solmuliitäntä

Solmu on datapääte, ja kaikki alkuperäinen data saadaan täältä. Solmuun on kytketty 6 anturia, ja maaperän kosteus- ja lämpötila -anturin lisäksi asetamme muut anturit säleikköön.

Kuva
Kuva
Kuva
Kuva

Solmu on sijoitettu vedenpitävään laatikkoon. Saavuttaaksemme paremman yhteyden solmuun teemme sovitinkortin. Lopuksi tarjoamme tämän levyn kaavion latauslinkin. Kuten alla on esitetty, anturien kaapelit on kytketty sovitinkorttiin riviliittimien kautta. Käytämme kolmea MOS -putkea (SI2301) rakentaaksemme kytkentäpiirejä antureiden ja tuulettimen päälle- ja poiskytkennän ohjaamiseksi. Tuuletinta käytetään jäähtymään. Levyyn on asennettu lämpötila -anturi (DS18B20). Se voi kertoa meille laatikon sisäisen lämpötilan ja sitten mikro -ohjain päättää, kytkeekö tuuletin päälle. Käytämme useita vastuksia tehdäksesi jännitteenjakajapiirin lyijyakkujännitteen mittaamiseen. Lopuksi varaamme 3 IIC -liitäntää ja sarjaportin levylle myöhempää laajennusta ja virheenkorjausta varten.

Kuva
Kuva

Puhutaan solmun virtalähdeongelmasta. Solmu sijoitetaan teeviljelmiin satunnaisesti, joten perinteinen virtalähde ei ole enää sovellettavissa. Aurinkosähköratkaisun käyttäminen on hyvä idea. Tällä hetkellä markkinoilla on monia ratkaisuja. Voimme valita niistä yhden, joka vastaa tarpeitamme. Valitsemassamme ratkaisussa on 3 osaa: aurinkopaneeli, aurinkopaneelien lataussäädin ja lyijyakku. Saadaksemme aurinkoenergian paremmin kiinni, asetamme aurinkopaneelin kannattimen yläosaan ja säädä sen kulmaa niin, että se on aurinkoon päin. Asetimme aurinkopaneelien varaussäätimen samaan laatikkoon solmun kanssa. Koska laatikon sisällä ei ole ylimääräistä tilaa, meidän oli löydettävä uusi vedenpitävä laatikko lyijyakun sijoittamiseksi.

Kuva
Kuva
Kuva
Kuva
Kuva
Kuva

Vaihe 4: Ohjelmiston määritys

Solmu

Tässä osiossa esittelemme solmun pääasiassa ohjelmistokokoonpanon.

DataFormat

Solmun yhdyskäytävälle lataamat tiedot:

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

Jokaisen tietobitin merkitys:

Lora_data [0] : Ilman lämpötila, ℃

Lora_data [1] : Ilmankosteus, %

Lora_data [2] : Korkeus kahdeksan, m

Lora_data [3] low Matala korkeus kahdeksan

Lora_data [4] : CO2 -pitoisuus korkea kahdeksan, ppm

Lora_data [5] : CO2 -pitoisuus alhainen kahdeksan

Lora_data [6] : Pölypitoisuus korkea kahdeksan, kpl/0,01 cf

Lora_data [7] : Pölypitoisuus alhainen kahdeksan

Lora_data [8] : Valon voimakkuus korkea kahdeksan, lux

Lora_data [9] : Valon voimakkuus alhainen kahdeksan

Lora_data [10] : O2 -pitoisuus, % (raakatiedot jaettuna 1000: lla)

Lora_data [11] : Maaperän lämpötila, ℃

Lora_data [12] : Maaperän kosteus, %

Lora_data [13] : Akun jännite, v

Lora_data [14] : Anturien virhekoodi

Virhekoodi:

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

Jokaisen bitin merkitys:

bitti 0: 1 ---- Lämpötila- ja humi- ja ilmanpaineanturin (BME280) virhe

bitti 1: 1 ---- Hiilidioksidianturin (MH-Z16) virhe

bitti 2: 1 ---- Pölyanturi (PPD42NS) virhe

bitti 3: 1 ---- Digitaalisen valoanturin virhe

bitti 4: 1 ---- Happianturin (ME2-O2-Ф20) virhe

bitti 5: 1 ---- Maaperän kosteus- ja lämpötila-anturin virhe

bitti 6: Varattu

bitti 7: Varattu

Olemme tehneet Error_code_transform.exe -tiedoston, avaamalla sen ja syöttämällä virhekoodin heksadesimaaliluvulla. Tiedät nopeasti, mikä anturi on virhe. Latauslinkki on tämän artikkelin lopussa.

Parametrien säätö: a) Tiedonsiirtosykli

// seeedtea.ino

#defineinterval_time 600 // sekunti

Tätä parametria voidaan muuttaa tiedonsiirtosyklin muuttamiseksi. Jokaisessa syklissä tiedonkeruu kestää noin minuutin. Ei siis ole suositeltavaa muuttaa tätä arvoa alle 60 sekuntiin.

b) Pölyanturin lämpenemisaika

//seeedtea.ino

#definePreheat_time 30000 // Pölyanturin lämpenemisaika, millisekunti // Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s

c) Jännitekerroin

//POWER_Ctrl.cpp

#defineBattery_coefficient 0,159864 // ADC -arvo × Battery_coefficient = akun_jännite #defineSolar_coefficient 0,22559 // ADC -arvo × Solar_coefficient = aurinko_jännite

Nämä kaksi parametria lasketaan jännitteenjakajapiirin perusteella.

d) Puhaltimen avautumislämpötilan kynnys

//POWER_Ctrl.cpp

#defineFan_start_temp 45 // lämpötilaraja #defineFan_start_light 500 // valon voimakkuus

Kun todellinen lämpötila ylittää kynnyksen, tuuletin alkaa jäähtyä.

e) O2 -anturin alustusparametri

// Happi.cpp

#defineO2_percentage 208,00 //20,8%

f) Makrokytkin

//seeedtea.ino

#defineLORA_RUN // Kommentin jälkeen Loran alustus ja tiedonsiirto pysähtyvät #defineSENSOR_RUN // Kommentin jälkeen ulkoiset anturit lakkaavat toimimasta //POWER_Ctrl.cpp #defineFAN_ON // Vain vahvistaminen, Käytännön sovellus täytyy kommentoida /**** *** DS18B20 -ohjaustila **********************/ #defineSlower_Mode // Hidas tila lämpötilan vaihtamiseksi. Kommenttien lähettäminen on nopeaa tilaa

g) Nastan kartoitus

D2: LED -merkkivalo ja ulkoinen nollausmikro -ohjain IIC: SCL ja SDA

// Pöly_muut.h

#defineDust_pin 3 // Pölyanturi //CO2.cpp #defineCO2_serial Serial1 // käytä hardwareserial -porttia (D0 & D1) //seeedtea.ino #definedataPin 6 // Maaperätiedon nasta #defineclockPin 7 // Maaperän kellotappi // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Tuuletin #defineAir_CtrlPin 10 // Ohjaustappi ohjainlaatikkoon sijoitetuille antureille #defineSoil_CtrlPin 11 // Maaperän kosteus- ja lämpötila -anturikytkimen nasta #defineBattery_pin A2 // Mittaa akun jännite # /Mittaa aurinkopaneelin jännite // Happi.h #defineO2_pin A1 // O2 -anturi

h) Vahtikoiran ajastin

Vahtikoira -ajastinta käytetään järjestelmän käynnin tilan seurantaan. Kun järjestelmä toimii epänormaalisti, solmu nollataan, jotta se voi toimia jatkuvasti pitkään.

Viitattu kirjasto:

  • Adafruit_SleepyDog.h on lisätty projektiin
  • Adafruit_ASFcore-master.zip on pakattu projektikansioon ja se on lisättävä manuaalisesti Arduino IDE: hen.

Liittyvät toiminnot:

Ota vahtikoira käyttöön

int WatchdogSAMD:: ota käyttöön (int maxPeriodMS, bool isForSleep)

Syöttöparametrit:

Int maxPeriodMS: Odotusaika millisekunteina. Suurin sallittu aika on 16 000 millisekuntia.

palautusarvo:

Int -tyyppi, palauta todellinen odotusaika

Nollaa vahtikoira

mitätön vahtikoiraSAMD:: nollaus ()

Soita tämä toiminto nollataksesi vahtikoiran ajastimen, jota kutsutaan "koiran ruokkimiseksi". Odotusajan ylittäminen ilman nollausta aiheuttaa solmun uudelleenkäynnistyksen.

Lopeta vahtikoira

void WatchdogSAMD:: poista käytöstä ()

Yhdyskäytävä

Tässä osiossa esittelemme yhteyden muodostamisen Loriot -palvelimeen.

Vaihe 1: Loriot Server Gateway -rekisteröinti

a) Uuden käyttäjän on ensin rekisteröitävä tili, napsauta rekisteröintiosoitetta. Täytä käyttäjätunnus, salasana ja sähköpostiosoite rekisteröidäksesi, rekisteröinnin jälkeen sinulle lähetetään sähköposti, noudata sähköpostin ohjeita aktivoidaksesi.

b) Onnistuneen aktivoinnin jälkeen kirjaudu sisään napsauttamalla tätä. Oletustaso on”Community Network”, se tukee 1 yhdyskäytävää (RHF2S001) ja 10 solmua.

c) Siirry Dashboard -> Gateway, napsauta Add Gateway aloita Gatewayn lisääminen.

d) Valitse Raspberry Pi 3

e) Aseta seuraavasti:

  • Radion etuosa -> RHF2S001 868/915 MHz (SX1257)
  • BUSS -> SPI

f) Täytä RHF2S001 -laitteen MAC -osoite, jonka muodon on oltava b8: 27: eb: xx: xx: xx. Syötä myös yhdyskäytävän sijaintitiedot.

g) Viimeistele rekisteröinti napsauttamalla”Rekisteröi Raspberry Pi -yhdyskäytävä”.

Kuva
Kuva

h) Siirry asetussivulle napsauttamalla rekisteröityä yhdyskäytävää, vaihda "Taajuussuunnitelma" manuaalisesti, suunnitelmasi päätetään RHF2S001 -tyypin tyypin mukaan, käytettävissä oleva suunnitelma on CN470 , CN473 , CN434 , CN780 , EU868, päivitä sivu valitun jälkeen saadaksesi oikean kanavan. Tässä wikissä valitsemme EU868.

i) Suorita komento kittipäätteessä :

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.

Kuva
Kuva

Vaihe 2: Loriot Server Connect Node -laite

a) Hanki käytettävissä olevat yhdyskäytäväkanavat

Nykyiset yhdyskäytäväkanavat voidaan hakea hallintapaneelista -> Yhdyskäytävä -> Yhdyskäytäväsi, näet käytettävissä olevat kanavat alla olevan kuvan mukaisesti.

Kuva
Kuva

b) Seeeduino LoRAWAN GPS (RHF3M076) -määritykset

Avaa ArduinoIDE -sarjan näyttö, napauta alla olevaa komentoa.

+ch

Jos haluat vahvistaa Seeeduino_LoRAWAN GPS: n oletuskanavan, saat 3 kanavaa. Jos käytettävissä olevaa kanavaa ei ole, voit vaihtaa Seeeduino_LoRAWANin kanavia alla olevalla komennolla.

+ch = 0, 868,1

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

Sitten voit tarkistaa uudelleen+ch: llä.

c) Lisää Seeeduino_LoRAWAN GPS ABP NodeLogiksi Loriot -palvelimelle, napsauta Dash Board -> Applications -> SimpleApp. Napsauta kohtaa Tuo ABP , syöte kohteiden alla

  • DevAddr: Seeeduino_LoRAWAN GPS saa "AT+ID" -komennon (Huomautus: Loriot ei tue kaksoispistoliitintä, täytyy poistaa manuaalisesti)
  • FCntUp : Aseta arvoon 1
  • FCntDn : Aseta 1
  • NWKSKEY fault Oletusarvo 2B7E151628AED2A6ABF7158809CF4F3C
  • APPSKEY fault Oletusarvo 2B7E151628AED2A6ABF7158809CF4F3C
  • EUI : DEVEUI, Seeeduino_LoRAWAN GPS saa "AT+ID" -komennon
Kuva
Kuva

Viimeistele laitteen tuonti napsauttamalla Tuo laite -painiketta. Valitse nyt Kojelauta-> Sovellukset -> SampleApp, näet juuri lisäämäsi uuden ABP -solmun.

Kuva
Kuva

d) Lähetä tietoja Seeeduino_LoRAWANilta

HUOMIO! Tämä on vain testi.

Takaisin ArduinoIDE -sarjan näyttöön, lähetä komento:

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

Siirry sitten Dashboard -> Applications -> SampleApp -> Device, napsauta Node Device EUI tai DevAddr, löydät juuri lähettämäsi tiedot täältä.

Kuva
Kuva

Katso lisätietoja tästä wikistä.

Vaihe 5: Verkkosivuston rakentaminen

Aiheeseen liittyvät työkalut

  • virtualenv
  • Python 3
  • Gunicorn
  • Valvoja
  • Nginx
  • MySQL

Käytämme CentOS7 -testiympäristönä

virtualenv

Käytä virtualenv -ohjelmaa itsenäisen python3 -tuotantoympäristön luomiseen

a) asenna

pip asenna virtualenv

b) Luo python3 -virtuaalinen ympäristö

virtualenv -p python3 iotea

c) Käynnistä virtuaalinen ympäristö ja kirjoita iotea -hakemisto

lähdesäiliö/aktivoi

d) olemassa oleva ympäristö

deaktivoida

Python 3

a) asenna

yum asenna epel-release

yum asenna python36

b) asenna riippuvainen kirjasto PyMySQL, DBUtils, Flask, websocket-client, configparser

pip asenna pymysql

pip install dbutils pip install pullo pip install websocket-client pip install configparser

Gunicorn

a) asenna (Python3 -ympäristössä)

pip asennus gunicorn

b) suorittaa pullohanke (iotea -projektihakemiston alla)

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

c) suorita websocket-clint saadaksesi loriot-tietoja

gunicorn loriot: sovellus

d) tarkastella Gunicorn -prosessipuuta

pstree -ap | grep gunicorn

Valvoja

a) asenna (pääkäyttäjä)

pip -asennuksen valvoja

b) luoda määritystiedostoja

echo_supervisord_conf> /etc/supervisord.conf

c) luo hakemisto ja ota käyttöön hakemistokokoonpano

mkdir -p /etc/supervisor/conf.d

Muokkaa /etc/supervisord.conf ja muokkaa tiedoston lopussa olevaa [include] -kenttien tiedostokenttää.

Huomaa, että sinun on poistettava ';' näiden kahden rivin edessä, mikä on kommenttihahmo.

[sisältää]

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

Keinot käyttöön /etc/supervisor/conf.d/. Seuraavaa määritystiedostoa käytetään prosessin määritystiedostona (valvoja valvoo).

d) saapuvat kokoonpanot (iotea -hakemistossa)

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

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

e) avoin iotea -tarjoilu

superviosrctl reload #reload määritystiedosto

superviosrctl start loriot #open loriot datan vastaanotto superviosrctl start iotea #avaa iotea -pullo -sovellus

f) muut yhteiset toiminnot

supervisorctl reload # lataa asetustiedosto uudelleen

supervisorctl päivitys supervisorctl start xxx supervorctl stop xxx supervorctl status xxx supervorctl help # view more command

Nginx

a) asenna

yum asentaa -y nginx

b) kokoonpano

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

c) käynnistä Nginx

systemctl käynnistä nginx.service

MySQL

a) asiaan liittyvät parametrit

user = 'root'

passwd = '1234' db = 'iotea' portti = 3306

b) tiedosto

iotea_iotea.sql

c) asetustiedosto

db.ini