Përmbajtje:

Shikoni LoRa IoTea Zgjidhja: 5 hapa
Shikoni LoRa IoTea Zgjidhja: 5 hapa

Video: Shikoni LoRa IoTea Zgjidhja: 5 hapa

Video: Shikoni LoRa IoTea Zgjidhja: 5 hapa
Video: A 1000 Year Old Abandoned Italian Castle - Uncovering It's Mysteries! 2024, Korrik
Anonim
Shihet Zgjidhja LoRa IoTea
Shihet Zgjidhja LoRa IoTea

Një sistem automatik i mbledhjes së informacionit i aplikuar në plantacionin e çajit. Shtë pjesë e mbledhjes së informacionit inteligjent bujqësor.

Hapi 1: Gjërat e përdorura në këtë projekt

Komponentët e harduerit

  • Grove - Sensori i dioksidit të karbonit (MH -Z16)
  • Grove - Sensor dixhital i dritës
  • Grove - Sensor pluhuri (PPD42NS)
  • Grove-Sensori i oksigjenit (ME2-O2-Ф20)
  • Sensori i lagështisë dhe temperaturës së tokës
  • LoRa LoRaWAN Gateway - Kit 868MHz me Raspberry Pi 3
  • Grove - Sensori Temp & Humi & Barometër (BME280)

Aplikacionet softuerike dhe shërbimet online

Microsoft Visual Studio 2015

Hapi 2: Histori

Bujqësia e zgjuar do të thotë të aplikosh teknologjinë e Internetit të Gjërave në bujqësinë tradicionale, duke përdorur sensorë dhe softuerë për të kontrolluar prodhimin e bujqësisë përmes platformave të lëvizshme ose kompjuterike, duke e bërë bujqësinë tradicionale më "të zgjuar".

Në malin Mengding në verilindje të Ya'an, Sichuan, kurrizi malor shkon nga perëndimi në lindje në një det të gjelbër. Kjo është një pamje më e njohur për Dengin 36-vjeçar, një nga shumë pak prodhuesit e çajit Mengding të brezit të tij, me një plantacion prej 50mu (= 3.3 hektarë) të vendosur në 1100m mbi nivelin e detit. Deng vjen nga një familje prodhuesish çaji, por mbajtja e trashëgimisë familjare nuk është një detyrë e lehtë. “Çajrat tanë janë rritur në lartësi të mëdha në një mjedis organik për të siguruar cilësinë e tij të shkëlqyer. Por në të njëjtën kohë, dendësia e rritjes është e ulët, kostoja është e lartë dhe lulëzimi është i pabarabartë, duke e bërë çajin të vështirë për të korrur. Kjo është arsyeja pse çajrat e maleve janë zakonisht të korra të vogla dhe vlerat e tyre nuk reflektohen në treg.” Për dy vitet e fundit, Deng është përpjekur të rrisë ndërgjegjësimin e konsumatorëve për çajin e malit të lartë për të promovuar vlerën e tyre. Dhe kur takoi Fan, i cili po kërkonte një plantacion për të zbatuar teknologjinë IoTea të Seeed, u bë një ndeshje perfekte për një zgjidhje. Zgjidhja e parë IoTea synon të ndihmojë fermerët e çajit të menaxhojnë më mirë plantacionet pa ndryshuar praktikat tradicionale të kultivimit të çajit dhe të paraqesë të dhëna mjedisore në kohë reale nga plantacionet në një platformë të hapur.

I përbërë nga sensorë, nyje dhe porta, IoTea mbledh të dhëna në kohë reale të faktorëve që mund të ndikojnë në cilësinë e çajit gjatë kultivimit dhe proceseve të prodhimit, përfshirë temperaturën dhe lagështinë, CO2, O2, PM, dhe ekspozimin ndaj dritës. Të dhënat mblidhen nga sensorët, dërgohen nga nyjet në portë dhe përfundimisht në re, dhe bëhen të arritshme për klientët përfundimtarë në një faqe në internet.

Hapi 3: Lidhja e harduerit

Hapi 1: Lidhja e Portës

Porta është instaluar veçmas në një kuti. Duke marrë parasysh problemin e shpërndarjes së nxehtësisë, shtuam 2 tifozë. Njëra është për shpërndarjen e nxehtësisë së Raspberry Pi, tjetra është për qarkullimin e brendshëm dhe të jashtëm të ajrit. Kutia e hyrjes vendoset në shtëpinë e një fermeri, kështu që ne nuk kemi nevojë të marrim parasysh problemin e tij të energjisë.

Imazhi
Imazhi

Hapi 2: Lidhja e Nyjeve

Nyja është terminali i të dhënave, dhe të gjitha të dhënat origjinale merren nga këtu. Janë 6 sensorë të lidhur me nyjen. Përveç sensorit të lagështisë dhe temperaturës së tokës, ne vendosim sensorë të tjerë brenda kutisë së mbështjellësve.

Imazhi
Imazhi
Imazhi
Imazhi

Nyja vendoset në një kuti të papërshkueshme nga uji. Për të pasur një lidhje më të mirë me nyjen, ne bëjmë një bord përshtatës. Më në fund, ne do të sigurojmë lidhjen e shkarkimit skematik të këtij bordi. Siç tregohet më poshtë, kabllot e sensorëve lidhen në bordin e përshtatësit përmes blloqeve të terminalit. Ne përdorim 3 tuba MOS (SI2301) për të ndërtuar qarqe kalimi për të kontrolluar ndezjen dhe fikjen e sensorëve dhe ventilatorit. Ventilatori përdoret për tu ftohur. Ne kemi një sensor të temperaturës (DS18B20) të montuar në tabelë. Mund të na tregojë temperaturën e brendshme të kutisë, dhe më pas mikrokontrolluesi vendos nëse do të ndezë tifozin. Ne përdorim disa rezistorë për të bërë një qark ndarës të tensionit për të matur tensionin e baterisë me acid plumbi. Së fundi, ne rezervojmë 3 ndërfaqe IIC dhe port serik në tabelë për zgjerim dhe korrigjim të mëvonshëm.

Imazhi
Imazhi

Le të flasim për problemin e furnizimit me energji të nyjes. Nyja vendoset në plantacionin e çajit rastësisht, kështu që metoda tradicionale e furnizimit me energji nuk është më e zbatueshme. Përdorimi i një zgjidhjeje të energjisë diellore është një ide e mirë. Ka shumë zgjidhje të ofruara në treg aktualisht. Ne mund të zgjedhim njërën prej tyre që plotëson nevojat tona. Ekzistojnë 3 pjesë në zgjidhjen që zgjodhëm: panel diellor, kontrollues i ngarkimit diellor dhe bateri me acid plumbi. Për të kapur më mirë energjinë diellore, ne vendosim panelin diellor në pjesën e sipërme të kllapës dhe rregullojmë këndin e tij për të siguruar që ai të jetë përballë diellit. Ne vendosëm kontrolluesin e ngarkesës diellore në të njëjtën kuti me nyje. Për shkak se nuk ka hapësirë shtesë brenda kutisë, na u desh të gjejmë një kuti të re të papërshkueshëm nga uji për të vendosur baterinë me acid plumbi.

Imazhi
Imazhi
Imazhi
Imazhi
Imazhi
Imazhi

Hapi 4: Konfigurimi i softuerit

Nyja

Në këtë pjesë, ne do të prezantojmë konfigurimin kryesisht të softuerit të nyjes.

DataFormat

Të dhënat e ngarkuara nga nyja në portë:

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

Kuptimi i secilit bit të të dhënave:

Lora_data [0] temperature Temperatura e ajrit, Lora_data [1] humidity Lagështia e ajrit, %

Lora_data [2] : Lartësia e lartë tetë, m

Lora_data [3] : Lartësia e ulët tetë

Lora_data [4] concentration Përqendrim i lartë i CO2 tetë, ppm

Lora_data [5] concentration Përqendrim i ulët i CO2 tetë

Lora_data [6] concentration Përqendrimi i pluhurit tetë i lartë, copë/0.01cf

Lora_data [7] concentration Përqendrimi i pluhurit i ulët tetë

Lora_data [8] intensity Intensitet drite i lartë tetë, lux

Lora_data [9] intensity Intensiteti i dritës i ulët tetë

Lora_data [10] concentration Përqendrimi i O2, % (të dhënat e papërpunuara të ndara me 1000)

Lora_data [11] temperature Temperatura e tokës, Lora_data [12] humidity Lagështia e tokës, %

Lora_data [13] voltage Tensioni i baterisë, v

Lora_data [14] : Kodi i gabimit të sensorëve

Kodi i gabimit:

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

Kuptimi i secilit bit:

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

bit 1: 1 ---- Gabim i sensorit të dioksidit të karbonit (MH-Z16)

bit 2: 1 ---- Sensori i pluhurit (PPD42NS) gabim

bit 3: 1 ---- Gabim i sensorit dixhital të dritës

bit 4: 1 ---- Sensori i oksigjenit (ME2-O2-Ф20) gabim

bit 5: 1 ---- Gabim në sensorin e lagështisë dhe temperaturës së tokës

bit 6: E rezervuar

bit 7: E rezervuar

Ne kemi bërë një Error_code_transform.exe, e hapim atë dhe futim kodin e gabimit në heksadecimal, shpejt do ta dini se cili sensor është gabim. Lidhja e shkarkimit është në fund të këtij artikulli.

Rregullimi i parametrave: a) Cikli i transmetimit të të dhënave

// seeedtea.ino

#defineinterval_time 600 // sekondë

Ky parametër mund të ndryshojë për të ndryshuar ciklin e transmetimit të të dhënave. Në çdo cikël, marrja e të dhënave zgjat rreth 1 minutë. Pra, nuk rekomandohet ndryshimi i kësaj vlere në më pak se 60 sekonda.

b) Koha e ngrohjes së sensorit të pluhurit

//seeedtea.ino

#definePreheat_time 30000 // DustSensor koha e ngrohjes, milisekonda //Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s

c) Koeficienti i tensionit

//POWER_Ctrl.cpp

#defineBattery_coefficient 0.159864 // Vlera ADC × Koeficienti i baterisë = tensioni i baterisë #defineSolar_coefficient 0.22559 // vlera ADC co Koeficienti diellor = tensioni_ diellor

Këta dy parametra llogariten bazuar në qarkun e ndarësit të tensionit.

d) Pragu i temperaturës së hapjes së ventilatorit

//POWER_Ctrl.cpp

#defineFan_start_temp 45 // pragu i temperaturës #defineFan_start_light 500 // intensiteti i dritës

Kur temperatura aktuale tejkalon pragun, ventilatori do të fillojë të ftohet.

e) Parametri i inicimit të sensorit O2

//Oksigjen.cpp

#përcaktoO2_përqindja 208.00 //20.8%

f) Çelës makro

//seeedtea.ino

#defineLORA_RUN // Pas komentit, inicimi i Lora dhe transmetimi i të dhënave do të ndalet #defineSENSOR_RUN // Pas komentit, sensorët e jashtëm do të pushojnë së punuari //POWER_Ctrl.cpp #defineFAN_ON // Vetëm më e rëndësishmja, aplikimi praktik duhet të komentohet /**** *** Mënyra e kontrollit DS18B20 *********************/ #defineSlower_Mode // Mënyra e ngadaltë së bashku me temperaturën. Komenti jashtë është në gjendje të shpejtë

g) Hartimi i kunjave

D2: Treguesi LED dhe mikrokontrolluesi i rivendosur i jashtëmIIC: SCL dhe SDA

//Pluhuri_tjetër.h

#defineDust_pin 3 // Sensori i pluhurit //CO2.cpp #defineCO2_serial Serial1 // përdorni portin hardwareserial (D0 & D1) //seeedtea.ino #definedataPin 6 // Kunja e të dhënave të tokës #defineclockPin 7 // Kodi i orës së tokës // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Fan #defineAir_CtrlPin 10 // Kunja e kontrollit për sensorët e vendosur në louverbox #defineSoil_CtrlPin 11 // Ndërprerës i lagështisë dhe temperaturës Sensori pin #defineBattery_pin /Matni tensionin e panelit diellor //Oxygen.h #defineO2_pin A1 // O2 sensor

h) Kohëmatësi i rojës

Kohëmatësi vëzhgues përdoret për të monitoruar gjendjen e funksionimit të sistemit. Kur sistemi po funksionon në mënyrë jonormale, nyja do të rivendoset, në mënyrë që të funksionojë vazhdimisht për një kohë të gjatë.

Biblioteka që do të referohet:

  • Adafruit_SleepyDog.h i është shtuar projektit
  • Adafruit_ASFcore-master.zip është e paketuar në dosjen e projektit dhe duhet të shtohet me dorë në Arduino IDE.

Funksionet e lidhura:

Aktivizo rojtarin

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

Parametrat e hyrjes:

Int maxPeriodMS: Koha e pritjes në milisekonda. Maksimumi i lejuar është 16000 milisekonda.

vlera e kthimit:

Lloji Int, ktheni kohën aktuale të pritjes

Rivendos vëzhguesin

void WatchdogSAMD:: reset ()

Thirrni këtë funksion për të rivendosur kohëmatësin mbikëqyrës, i referuar si "ushqyerja e qenit". Tejkalimi i kohës së pritjes pa rivendosur do të bëjë që nyja të riniset.

Ndaloni rojtarin

void WatchdogSAMD:: çaktivizo ()

Porta

Në këtë pjesë do të prezantojmë se si të lidheni me serverin Loriot.

Hapi 1: Regjistrimi i Portës së Serverit Loriot

a) Përdoruesi i ri duhet të regjistrojë një llogari së pari, klikoni adresën e regjistrimit. Plotësoni Emrin e Përdoruesit, Fjalëkalimin dhe adresën e emailit për t'u regjistruar, pas regjistrimit një email do t'ju dërgohet, ju lutemi ndiqni udhëzimet në email për t'u aktivizuar.

b) Pas aktivizimit të suksesshëm, klikoni këtu për t'u regjistruar. Niveli i paracaktuar është "Rrjeti i Komunitetit", ai mbështet 1 Gateway (RHF2S001) dhe 10 nyje.

c) Futni Panelin -> Gateway, klikoni Shto fillimin e Portës për të shtuar Gateway.

d) Zgjidhni Raspberry Pi 3

e) Vendoseni si më poshtë:

  • Pjesa e përparme e radios -> RHF2S001 868/915 MHz (SX1257)
  • BUS - -SPI

f) Plotësoni adresën MAC të RHF2S001 tuaj, duhet të jetë në formatin b8: 27: eb: xx: xx: xx. Dhe gjithashtu futni informacionin e Vendndodhjes së Portës.

g) Klikoni "Regjistro portën e Raspberry Pi" për të përfunduar regjistrimin.

Imazhi
Imazhi

h) Klikoni portën e regjistruar për të hyrë në faqen e konfigurimit, ndërroni "Planin e Frekuencës" me dorë, plani juaj këtu vendoset sipas llojit të llojit tuaj RHF2S001, plani i disponueshëm është CN470 , CN473 , CN434 , CN780 , EU868, pasi të keni zgjedhur, rifreskoni faqen për të marrë kanalin e saktë. Në këtë wiki ne zgjedhim EU868.

i) Drejtoni komandën në terminalin e stukoit

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.

Imazhi
Imazhi

Hapi 2: Pajisja Loreot Server Connect Node

a) Merrni kanalet e hyrjes në dispozicion

Kanalet aktuale të hyrjes mund të merren nga Paneli -> Porta -> Porta juaj, mund t'i shihni kanalet në dispozicion si fotografia më poshtë.

Imazhi
Imazhi

b) Konfigurimi i Seeeduino LoRAWAN GPS (RHF3M076)

Hapni monitorin serik të ArduinoIDE, prekni komandën më poshtë.

në+ch

Për të konfirmuar kanalin e paracaktuar të GPS -it tuaj Seeeduino_LoRAWAN, do të merrni 3 kanale. Nëse nuk ka kanal të disponueshëm, mund të ndryshoni kanalet e Seeeduino_LoRAWAN me komandën më poshtë.

në+ch = 0, 868.1

në+ch = 1, 868.3 në+ch = 2, 868.5

Pastaj mund të përdorni përsëri+ch për të kontrolluar.

c) Shto Seeeduino_LoRAWAN GPS si një ABP NodeLog në serverin Loriot, Kliko Dashboard -> Aplikimet -> SimpleApp. Klikoni Importo hyrjen ABP below poshtë artikujve

  • DevAddr: Seeeduino_LoRAWAN GPS kalon përmes komandës "AT+ID" (Shënim: Loriot nuk mbështet lidhësin e zorrës së trashë, duhet të hiqet me dorë)
  • FCntUp : Setto 1
  • FCntDn : Setto 1
  • NWKSKEY val Vlera e paracaktuar 2B7E151628AED2A6ABF7158809CF4F3C
  • APPSKEY val Vlera e paracaktuar 2B7E151628AED2A6ABF7158809CF4F3C
  • EUI : DEVEUI, Seeeduino_LoRAWAN GPS kaloni përmes komandës "AT+ID"
Imazhi
Imazhi

Klikoni butonin Import Device për të përfunduar importimin e pajisjes. Tani zgjidhni Paneli -> Aplikimet -> SampleApp, do të shihni Nyjen e re ABP që sapo keni shtuar.

Imazhi
Imazhi

d) Dërgoni të dhëna nga Seeeduino_LoRAWAN

KUJDES! Ky është vetëm një provë.

Kthehuni te monitori serik i ArduinoIDE, dërgoni komandën:

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

Pastaj shkoni te Paneli -> Aplikimet -> SampleApp -> Pajisja, klikoni Node Device EUI ose DevAddr, do të gjeni të dhënat që sapo keni dërguar këtu.

Imazhi
Imazhi

Për detaje, ju lutemi referojuni këtij wiki.

Hapi 5: Ndërtimi i faqes në internet

Mjetet e lidhura

  • virtualenv
  • Python3
  • Gunicorn
  • Mbikëqyrës
  • Nginx
  • MySQL

Ne përdorim CentOS7 si një mjedis vendosjeje provash

virtualenv

Përdorni virtualenv për të ndërtuar një mjedis të pavarur të prodhimit të python3

a) instaloni

pip instaloni virtualenv

b) krijoni një mjedis virtual python3

virtualenv -p python3 iotea

c) filloni mjedisin virtual dhe futni drejtorinë iotea

kuti e burimit/aktivizo

d) ekzistojnë mjedise

çaktivizo

Python3

a) instaloni

yum instaloni epel-release

yum instaloni python36

b) instaloni bibliotekën e varur PyMySQL, DBUtils, Flask, websocket-client, configparser

pip instalo pymysql

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

Gunicorn

a) instaloni (nën mjedisin Python3)

pip instaloni gunicorn

b) drejtoni projektin e shisheve (nën drejtorinë e projektit iotea)

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

c) drejtoni websocket-clint për të marrë të dhëna loriot

gunicorn loriot: aplikacion

d) shikoni pemën e procesit Gunicorn

pstree -ap | grep gunicorn

Mbikëqyrës

a) instaloni (përdoruesi rrënjësor)

mbikëqyrësi i instalimit të pip

b) gjeneroni skedarë konfigurimi

echo_supervisord_conf> /etc/supervisord.conf

c) krijoni një drejtori dhe prezantoni një konfigurim të drejtorisë

mkdir -p /etc/supervisor/conf.d

Ndryshoni /etc/supervisord.conf dhe modifikoni fushën e skedarëve nën [përfshini] në fund të skedarit.

Vini re se ju duhet të hiqni ';' para këtyre dy rreshtave, që është personazhi i komentit.

[përfshi]

Skedarët = /etc/supervisor/conf.d/*.conf

Do të thotë të prezantosh /etc/supervisor/conf.d/. Skedari i mëposhtëm i konfigurimit përdoret si skedar konfigurimi i procesit (i monitoruar nga mbikëqyrësi).

d) konfigurimi në hyrje (nën drejtorinë iotea)

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

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

e) shërbejnë iotea të hapura

superviosrctl ringarkoni #ringarkoni skedarin e konfigurimit

superviosrctl filloni loriot #hapni pritjen e të dhënave loriot superviosrctl filloni iotea #hapni aplikacionin e shisheve iotea

f) operacione të tjera të zakonshme

supervisorctl reload # ringarkoni skedarin e konfigurimit

supervisorctl update supervisorctl start xxx supervisorctl stop xxx status supervisorctl xxx supervisorctl ndihmë # shiko më shumë komandë

Nginx

a) instaloni

yum install -y nginx

b) konfigurimi

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

c) filloni Nginx

systemctl start nginx.service

MySQL

a) parametrat e ndërlidhur

përdorues = 'rrënjë'

passwd = '1234' db = 'porta iotea' = 3306

b) dosje

iotea_iotea.sql

c) skedari i konfigurimit

db.ini

Recommended: