Tartalomjegyzék:

Látta a LoRa IoTea megoldást: 5 lépés
Látta a LoRa IoTea megoldást: 5 lépés

Videó: Látta a LoRa IoTea megoldást: 5 lépés

Videó: Látta a LoRa IoTea megoldást: 5 lépés
Videó: Aziz 13. Bölüm 2024, Július
Anonim
Látta a LoRa IoTea megoldást
Látta a LoRa IoTea megoldást

Automatikus információgyűjtő rendszer a teaültetvényeken. Ez az intelligens mezőgazdasági információgyűjtés része.

1. lépés: A projektben használt dolgok

Hardver alkatrészek

  • Grove - Szén -dioxid érzékelő (MH -Z16)
  • Grove - Digitális fényérzékelő
  • Grove - Porérzékelő (PPD42NS)
  • Grove-oxigénérzékelő (ME2-O2-Ф20)
  • Talaj nedvesség és hőmérséklet érzékelő
  • LoRa LoRaWAN átjáró - 868 MHz -es készlet Raspberry Pi 3 -mal
  • Grove - Temp & Humi és barométer érzékelő (BME280)

Szoftveralkalmazások és online szolgáltatások

Microsoft Visual Studio 2015

2. lépés: Történet

Az intelligens mezőgazdaság a tárgyak internetének technológiáját alkalmazza a hagyományos mezőgazdaságban, érzékelők és szoftverek segítségével irányítja a mezőgazdasági termelést mobil vagy számítógépes platformokon keresztül, így a hagyományos mezőgazdaság „okosabb” lesz.

A Mengding -hegyen, Ya'an -tól északkeletre, Szecsuánban a hegygerinc nyugatról keletre, zöld tengerben fut. Ez a leghíresebb látnivaló a 36 éves Deng számára, aki egyike azon kevés Mengding teafőzőknek, akiknek 50 m-es (= 3,3 hektár) ültetvénye 1100 m tengerszint feletti magasságban található. Deng teafőző családból származik, de a családi örökség továbbvitele nem könnyű feladat. „Teáinkat nagy tengerszint feletti magasságban, organikus környezetben termesztik, hogy kiváló minőségűek legyenek. Ugyanakkor a növekedési sűrűség alacsony, a költségek magasak és a bimbózás egyenetlen, ami megnehezíti a tea betakarítását. Ezért a magashegyi teák általában kis termésűek, és értékeik nem tükröződnek a piacon.” Az elmúlt két évben a Deng arra törekedett, hogy felhívja a fogyasztók figyelmét a magashegyi teára, hogy népszerűsítse azok értékét. És amikor találkozott Fannel, aki ültetvényt keresett Seeed IoTea technológiájának megvalósítására, tökéletesen megfelelt a megoldásnak. A Seeed IoTea Solution célja, hogy segítse a teagazdálkodókat az ültetvények jobb kezelésében anélkül, hogy megváltoztatná a hagyományos teagyártási gyakorlatokat, és valós időben mutatná be az ültetvények környezeti adatait egy nyílt platformon.

Az érzékelőkből, csomópontokból és átjárókból álló IoTea valós idejű adatokat gyűjt azokról a tényezőkről, amelyek befolyásolhatják a tea minőségét a termesztés és a gyártási folyamatok során, beleértve a hőmérsékletet és a páratartalmat, a CO2-t, az O2-t, a PM-et és a fény expozícióját. Az adatokat az érzékelők gyűjtik, a csomópontok elküldik az átjáróhoz és végül a felhőbe, és hozzáférhetővé teszik a végfelhasználók számára egy weboldalon.

3. lépés: Hardvercsatlakozás

1. lépés: Átjárókapcsolat

Az átjárót külön dobozba kell felszerelni. Tekintettel a hőelvezetési problémára, 2 ventilátort adtunk hozzá. Az egyik a Raspberry Pi hőelvezetésére szolgál, a másik a belső és külső légáramlásra. Az átjáró dobozt a gazda otthonában helyezzük el, így nem kell figyelembe vennünk az áramellátási problémáját.

Kép
Kép

2. lépés: Csomópont csatlakoztatása

A csomópont az adatok terminálja, és az összes eredeti adat innen származik. A csomóponthoz 6 érzékelő csatlakozik. A talajnedvesség- és hőmérséklet -érzékelőn kívül más érzékelőket is elhelyezünk a lamellás dobozban.

Kép
Kép
Kép
Kép

A csomópont vízálló dobozba kerül. Annak érdekében, hogy jobb legyen a kapcsolat a csomóponttal, készítünk egy adapterlapot. Végül megadjuk a tábla sematikus letöltési linkjét. Amint az alább látható, az érzékelők kábelei a sorkapcsokon keresztül csatlakoznak az adapterlaphoz. 3 MOS csövet (SI2301) használunk kapcsolóáramkörök kiépítésére az érzékelők és a ventilátor be- és kikapcsolásának vezérlésére. A ventilátort hűtésre használják. A hőmérséklet -érzékelő (DS18B20) van felszerelve a táblára. Meg tudja mondani a doboz belső hőmérsékletét, majd a mikrokontroller eldönti, hogy bekapcsolja -e a ventilátort. Több ellenállást használunk feszültségosztó áramkör készítéséhez az ólom-sav akkumulátor feszültségének mérésére. Végül 3 IIC interfészt és soros portot tartunk fenn a táblán a későbbi bővítéshez és hibakereséshez.

Kép
Kép

Beszéljünk a csomópont tápellátási problémájáról. A csomópont véletlenszerűen kerül a teaültetvénybe, így a hagyományos áramellátási módszer már nem alkalmazható. A napelemes megoldás használata jó ötlet. Jelenleg számos megoldás áll rendelkezésre a piacon. Kiválaszthatunk közülük egyet, amely megfelel az igényeinknek. Az általunk választott megoldásnak 3 része van: napelem, napelemes töltésszabályozó és ólomakkumulátor. A napenergia jobb elnyerése érdekében napelemeket helyezünk a konzol tetejére, és úgy állítjuk be a szögét, hogy a nap felé nézzen. A napelemes töltésszabályozót ugyanabba a dobozba helyeztük a csomóponttal. Mivel nincs több hely a dobozban, új vízálló dobozt kellett találnunk az ólomakkumulátor elhelyezéséhez.

Kép
Kép
Kép
Kép
Kép
Kép

4. lépés: Szoftver konfigurálása

Csomópont

Ebben a részben bemutatjuk a csomópont elsősorban szoftver konfigurációját.

DataFormat

A csomópont által az átjáróra feltöltött adatok:

előjel nélküli karakter Lora_data [15] = {0, 1, 2, 3,, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};

Az egyes adatbitek jelentése:

Lora_data [0] : Levegő hőmérséklet, ℃

Lora_data [1] : Légnedvesség, %

Lora_data [2] : Magasság magas nyolc, m

Lora_data [3] low Alacsony magasság nyolc

Lora_data [4] : CO2 -koncentráció magas nyolc, ppm

Lora_data [5] : CO2 koncentráció alacsony nyolc

Lora_data [6] high Porkoncentráció magas nyolc, db/0,01 cf

Lora_data [7] low Porkoncentráció alacsony nyolc

Lora_data [8] : Fényintenzitás magas nyolc, lux

Lora_data [9] low Fényintenzitás alacsony nyolc

Lora_data [10] : O2 koncentráció, % (nyers adatok osztva 1000 -el)

Lora_data [11] : Talajhőmérséklet, ℃

Lora_data [12] : Talaj páratartalma, %

Lora_data [13] : Akkumulátor feszültsége, v

Lora_data [14] : Érzékelők hibakódja

Hibakód:

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

Minden bit jelentése:

bit 0: 1 ---- Temp & Humi & Barometer Sensor (BME280) hiba

bit 1: 1 ---- Szén-dioxid-érzékelő (MH-Z16) hiba

bit 2: 1 ---- Porérzékelő (PPD42NS) hiba

bit 3: 1 ---- Digitális fényérzékelő hiba

bit 4: 1 ---- Oxigénérzékelő (ME2-O2-Ф20) hiba

bit 5: 1 ---- Talajnedvesség és hőmérsékletérzékelő hiba

6. bit: fenntartva

bit 7: Fenntartva

Készítettünk egy Error_code_transform.exe fájlt, nyissuk meg és írjuk be a hibakódot hexadecimális formában, így gyorsan tudni fogjuk, melyik érzékelő a hiba. A letöltési link a cikk végén található.

Paraméterbeállítás: a) Adatátviteli ciklus

// seeedtea.ino

#defineinterval_time 600 // másodperc

Ez a paraméter változtatható az adatátviteli ciklus megváltoztatásához. Minden ciklusban az adatgyűjtés körülbelül 1 percet vesz igénybe. Tehát nem ajánlott ezt az értéket 60 másodpercnél rövidebbre módosítani.

b) A porérzékelő bemelegedési ideje

//seeedtea.ino

#definePreheat_time 30000 // DustSensor bemelegedési idő, ezredmásodperc // Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s

c) Feszültségi együttható

//POWER_Ctrl.cpp

#defineBattery_coefficient 0,159864 // ADC -érték × Battery_coefficient = akkumulátor_feszültség #defineSolar_coefficient 0,22559 // ADC -érték × Solar_coefficient = szolár_feszültség

Ezt a két paramétert a feszültségosztó áramkör alapján számítják ki.

d) A ventilátor nyitási hőmérsékletének küszöbértéke

//POWER_Ctrl.cpp

#defineFan_start_temp 45 // hőmérsékletküszöb #defineFan_start_light 500 // fényerősség

Amikor a tényleges hőmérséklet meghaladja a küszöbértéket, a ventilátor lehűlni kezd.

e) O2 érzékelő inicializáló paramétere

// Oxigén.cpp

#defineO2_percentage 208.00 // 20.8%

f) Makró kapcsoló

//seeedtea.ino

#defineLORA_RUN // A megjegyzés után leáll a Lora inicializálása és az adatátvitel *** DS18B20 vezérlési mód **********************/ #defineSlower_Mode // Lassú üzemmód a hőmérséklet beállításához. A megjegyzés gyors mód

g) Csaptérképezés

D2: LED kijelző és külső reset mikrokontroller IIC: SCL és SDA

// Por_más.h

#defineDust_pin 3 // Porérzékelő //CO2.cpp #defineCO2_serial Serial1 // hardverreserációs port használata (D0 & D1) //seeedtea.ino #definedataPin 6 // Talajadatcsap #defineclockPin 7 // Talaj óracsap // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Ventilátor #defineAir_CtrlPin 10 // Vezérlőcsap a zsaluzatba helyezett érzékelőkhöz #defineSoil_CtrlPin 11 // Talajnedvesség és hőmérsékletérzékelő kapcsolócsap #defineBattery_pin A2 // A3 /A3 akkumulátor mérése /A napelem feszültségének mérése // Oxigén.h #defineO2_pin A1 // O2 érzékelő

h) Watchdog időzítő

A watchdog időzítő a rendszer futási állapotának figyelésére szolgál. Ha a rendszer rendellenesen fut, a csomópont alaphelyzetbe áll, így hosszú ideig folyamatosan futhat.

A hivatkozott könyvtár:

  • Adafruit_SleepyDog.h hozzáadásra került a projekthez
  • Az Adafruit_ASFcore-master.zip a projekt mappába van csomagolva, és manuálisan kell hozzáadni az Arduino IDE-hez.

Kapcsolódó funkciók:

A watchdog engedélyezése

int WatchdogSAMD:: engedélyezés (int maxPeriodMS, bool isForSleep)

Bemeneti paraméterek:

Int maxPeriodMS: Várakozási idő ezredmásodpercben. A megengedett maximális időtartam 16 000 ezredmásodperc.

visszatérési érték:

Int típus, adja vissza a tényleges várakozási időt

A figyelő visszaállítása

void WatchdogSAMD:: reset ()

Hívja ezt a funkciót a "kutya etetése" néven ismert őrszem időzítőjének visszaállításához. Ha a várakozási idő túllépi visszaállítás nélkül, a csomópont újraindul.

Állj őrt

void WatchdogSAMD:: letiltás ()

Átjáró

Ebben a részben bemutatjuk, hogyan lehet csatlakozni a Loriot szerverhez.

1. lépés: Loriot Server Gateway regisztráció

a) Az új felhasználónak először regisztrálnia kell egy fiókot, kattintson a regisztrációs címre. A regisztrációhoz töltse ki a felhasználónevet, a jelszót és az e -mail címet, a regisztráció után e -mailt küldünk Önnek. Kérjük, kövesse az e -mailben található utasításokat az aktiváláshoz.

b) A sikeres aktiválás után kattintson ide a bejelentkezéshez. Az alapértelmezett szint a „Community Network”, 1 átjárót (RHF2S001) és 10 csomópontot támogat.

c) Lépjen be az Irányítópultba -> Átjáró, kattintson az Átjáró hozzáadása elemre az átjáró hozzáadásához.

d) Válassza a Raspberry Pi 3 lehetőséget

e) Állítsa be az alábbiak szerint:

  • Rádió kezelőfelülete -> RHF2S001 868/915 MHz (SX1257)
  • BUS -> SPI

f) Töltse ki az RHF2S001 MAC -címét, b8: 27: eb: xx: xx: xx formátumban. És adja meg az átjáró helyadatait is.

g) Kattintson a „Raspberry Pi gateway regisztrálása” gombra a regisztráció befejezéséhez.

Kép
Kép

h) Kattintson a regisztrált átjáróra a konfigurációs oldalra való belépéshez, váltson manuálisan a „Frekvenciaterv” lehetőségre, itt a tervét az RHF2S001 típusa határozza meg, a rendelkezésre álló terv CN470 , CN473 , CN434 , CN780 , EU868, a kiválasztás után frissítse az oldalt hogy megkapja a pontos csatornát. Ebben a wikiben az EU868 -at választjuk.

i) Futtassa a parancsot a gittterminálban :

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.

Kép
Kép

2. lépés: Loriot Server Connect Node eszköz

a) Szerezze be az elérhető átjáró csatornákat

Az aktuális átjáró csatornákat a Dashboard -> Gateway -> Your Gateway -ről szerezheti be, az alábbi képen láthatja a rendelkezésre álló csatornákat.

Kép
Kép

b) Seeeduino LoRAWAN GPS (RHF3M076) konfiguráció

Nyissa meg az ArduinoIDE soros monitorát, érintse meg az alábbi parancsot.

+ch

A Seeeduino_LoRAWAN GPS alapértelmezett csatornájának megerősítéséhez 3 csatornát kap. Ha nincs elérhető csatorna, az alábbi paranccsal megváltoztathatja a Seeeduino_LoRAWAN csatornáit.

+ch = 0, 868,1

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

Ezután ismét használhatja a+ch gombot a ellenőrzéshez.

c) Adja hozzá a Seeeduino_LoRAWAN GPS -t ABP NodeLogként a Loriot szerverhez, kattintson a Dash Board -> Applications -> SimpleApp elemre. Kattintson az ABP importálása , bemenet elemre az elemek alatt

  • DevAddr: Seeeduino_LoRAWAN GPS átjut az "AT+ID" parancson (Megjegyzés: A Loriot nem támogatja a vastagbél csatlakozót, manuálisan kell eltávolítani)
  • FCntUp : Állítsa 1 -re
  • FCntDn : 1
  • NWKSKEY : Alapértelmezett érték 2B7E151628AED2A6ABF7158809CF4F3C
  • APPSKEY : Alapértelmezett érték 2B7E151628AED2A6ABF7158809CF4F3C
  • EUI : DEVEUI, Seeeduino_LoRAWAN GPS átjut az "AT+ID" parancson
Kép
Kép

Kattintson az Eszköz importálása gombra az eszközimportálás befejezéséhez. Most válassza a Dashboard-> Applications -> SampleApp parancsot, és látni fogja az újonnan hozzáadott ABP csomópontot.

Kép
Kép

d) Adatok küldése a Seeeduino_LoRAWAN -tól

FIGYELEM! Ez csak egy teszt.

Vissza az ArduinoIDE soros monitorához, küldjön parancsot:

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

Ezután lépjen a Dashboard -> Applications -> SampleApp -> Device menüpontra, kattintson a Node Device EUI vagy DevAddr elemre, itt megtalálja az éppen elküldött adatokat.

Kép
Kép

Részletekért tekintse meg ezt a wikit.

5. lépés: Weboldal készítés

Kapcsolódó eszközök

  • virtualenv
  • Python3
  • Gunicorn
  • Felügyelő
  • Nginx
  • MySQL

A CentOS7 -et tesztelési környezetként használjuk

virtualenv

A virtualenv használatával önálló python3 termelési környezetet hozhat létre

a) telepíteni

pip install virtualenv

b) hozzon létre egy python3 virtuális környezetet

virtualenv -p python3 iotea

c) indítsa el a virtuális környezetet, és lépjen be az iotea könyvtárba

forrás bin/aktiválás

d) létezik környezet

deaktiválja

Python3

a) telepíteni

yum install epel-release

yum telepítse a python36 -ot

b) függő PyMySQL, DBUtils, Flask, websocket-client, configparser könyvtár telepítése

pip install pymysql

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

Gunicorn

a) telepítés (Python3 környezetben)

pip install gunicorn

b) futtassa a lombikprojektet (az iotea projektkönyvtárában)

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

c) futtassa a websocket-clint programot, hogy loriot adatokat kapjon

gunicorn loriot: kb

d) a Gunicorn folyamatfa megtekintése

pstree -ap | grep gunicorn

Felügyelő

a) telepítés (root felhasználó)

pip install felügyelő

b) konfigurációs fájlok létrehozása

echo_supervisord_conf> /etc/supervisord.conf

c) hozzon létre egy könyvtárat, és vezessen be egy könyvtárkonfigurációt

mkdir -p /etc/supervisor/conf.d

Szerkessze az /etc/supervisord.conf fájlt, és módosítsa a fájlok mezőjét a [include] alatt a fájl végén.

Ne feledje, hogy el kell távolítania a ';' e két sor előtt, ami a megjegyzés karakter.

[tartalmazza]

Fájlok = /etc/supervisor/conf.d/*.conf

Az /etc/supervisor/conf.d/ bevezetésének eszközei. A következő konfigurációs fájl szolgál folyamatkonfigurációs fájlként (a felügyelő figyeli).

d) bejövő konfiguráció (az iotea könyvtár alatt)

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

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

e) nyitott iotea tálalás

superviosrctl reload #reload a konfigurációs fájl

superviosrctl start loriot #open loriot adatfogadás superviosrctl start iotea #open the iotea flask application

f) egyéb közös műveletek

supervisorctl reload # reload a konfigurációs fájl

supervisorctl frissítés supervisorctl start xxx supervisorctl stop xxx supervisorctl állapot xxx supervisorctl help # további parancs megtekintése

Nginx

a) telepíteni

yum install -y nginx

b) konfiguráció

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

c) indítsa el az Nginx programot

systemctl indítsa el az nginx.szolgáltatást

MySQL

a) kapcsolódó paraméterek

user = 'root'

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

b) reszelő

iotea_iotea.sql

c) konfigurációs fájl

db.ini

Ajánlott: