Obsah:

Videl som riešenie LoRa IoTea: 5 krokov
Videl som riešenie LoRa IoTea: 5 krokov

Video: Videl som riešenie LoRa IoTea: 5 krokov

Video: Videl som riešenie LoRa IoTea: 5 krokov
Video: Как сделать стяжку с шумоизоляцией в квартире. #18 2024, Júl
Anonim
Videl som riešenie LoRa IoTea
Videl som riešenie LoRa IoTea

Systém automatického zberu informácií aplikovaný na čajovú plantáž. Je súčasťou inteligentného zberu poľnohospodárskych informácií.

Krok 1: Veci použité v tomto projekte

Hardvérové komponenty

  • Grove - snímač oxidu uhličitého (MH -Z16)
  • Grove - digitálny svetelný senzor
  • Grove - snímač prachu (PPD42NS)
  • Grove-snímač kyslíka (ME2-O2-Ф20)
  • Senzor vlhkosti a teploty pôdy
  • LoRa LoRaWAN Gateway - súprava 868 MHz s Raspberry Pi 3
  • Grove - snímač teploty a vlhkosti a barometra (BME280)

Softvérové aplikácie a online služby

Microsoft Visual Studio 2015

Krok 2: Príbeh

Inteligentné poľnohospodárstvo má aplikovať technológiu internetu vecí na tradičné poľnohospodárstvo pomocou senzorov a softvéru na riadenie poľnohospodárskej výroby prostredníctvom mobilných alebo počítačových platforiem, čím sa tradičné poľnohospodárstvo stane „inteligentnejším“.

Na hore Mengding severovýchodne od Ya’an v S' -čchuane hrebeň hrebeňa prebieha západne až východne v zelenom mori. Toto je najznámejší pohľad na 36-ročného Denga, jedného z mála výrobcov čajov Mengding svojej generácie, s plantážou 50 m (= 3,3 hektára), ktorá sa nachádza vo výške 1 100 m nad morom. Teng pochádza z rodiny čajníkov, ale pokračovať v rodinnom dedičstve nie je ľahká úloha. „Naše čaje sa pestujú vo vysokej nadmorskej výške v organickom prostredí, aby sa zabezpečila vynikajúca kvalita. Ale zároveň je hustota rastu nízka, náklady sú vysoké a pučanie je nerovnomerné, takže zber čaju je náročný. Preto sú vysokohorské čaje zvyčajne malou úrodou a ich hodnoty sa na trhu neodrážajú. “Deng sa posledné dva roky snaží zvýšiť povedomie spotrebiteľov o vysokohorskom čaji, aby propagoval jeho hodnotu. A keď sa stretol s Fanom, ktorý hľadal plantáž na implementáciu technológie IoTea spoločnosti Seeed, bolo nájdené perfektné riešenie. Cieľom Seeed IoTea Solution je pomôcť pestovateľom čaju lepšie obhospodarovať plantáže bez zmeny tradičných postupov pestovania čaju a prezentovať environmentálne údaje z plantáží v reálnom čase na otvorenej platforme.

IoTea, ktorá sa skladá zo senzorov, uzlov a brán, zbiera v reálnom čase údaje o faktoroch, ktoré môžu ovplyvniť kvalitu čaju počas kultivácie a výrobných procesov, vrátane teploty a vlhkosti, CO2, O2, PM a vystavenia svetlu. Údaje sú zhromažďované senzormi, odoslané uzlami do brány a prípadne do cloudu a sú sprístupnené koncovým zákazníkom na webovej stránke.

Krok 3: Pripojenie hardvéru

Krok 1: Pripojenie brány

Brána je inštalovaná samostatne v krabici. Vzhľadom na problém s odvodom tepla sme pridali 2 ventilátory. Jeden slúži na odvod tepla Raspberry Pi a druhý na vnútornú a vonkajšiu cirkuláciu vzduchu. Brána je umiestnená v dome farmára, takže nemusíme zvažovať jej problém s napájaním.

Obrázok
Obrázok

Krok 2: Pripojenie uzla

Uzol je koncovým bodom údajov a všetky pôvodné údaje sa získavajú odtiaľto. K uzlu je pripojených 6 senzorov. Okrem senzora pôdnej vlhkosti a teploty sme do žalúzie vložili ďalšie senzory.

Obrázok
Obrázok
Obrázok
Obrázok

Uzol je umiestnený vo vodotesnom boxe. Aby sme mali lepšie spojenie s uzlom, vyrábame dosku adaptéra. Nakoniec poskytneme odkaz na stiahnutie schémy tejto dosky. Ako je uvedené nižšie, káble senzorov sú zapojené do dosky adaptéra cez svorkovnice. Na výrobu spínacích obvodov na ovládanie zapínania a vypínania senzorov a ventilátora používame 3 trubice MOS (SI2301). Na chladenie slúži ventilátor. Na doske máme namontovaný snímač teploty (DS18B20). Môže nám povedať vnútornú teplotu boxu a potom sa mikrokontrolér rozhodne, či zapne ventilátor. Na výrobu obvodu deliča napätia na meranie napätia olovenej batérie používame niekoľko odporov. Nakoniec si na doske vyhradzujeme 3 rozhrania IIC a sériový port na neskoršie rozšírenie a ladenie.

Obrázok
Obrázok

Hovorme o probléme s napájaním uzla. Uzol je náhodne umiestnený na čajovej plantáži, takže tradičná metóda napájania už nie je použiteľná. Použitie solárnej energie je dobrý nápad. V súčasnosti je na trhu veľa riešení. Môžeme si vybrať jeden z nich, ktorý vyhovuje našim potrebám. Riešenie, ktoré sme si vybrali, obsahuje 3 časti: solárny panel, solárny regulátor nabíjania a olovenú batériu. Aby sme lepšie zachytili slnečnú energiu, položili sme solárny panel na hornú časť držiaka a upravili sme jeho uhol tak, aby smeroval k slnku. Solárny regulátor nabíjania sme umiestnili do rovnakého boxu s uzlom. Pretože vo vnútri škatule nie je žiadny ďalší priestor, museli sme nájsť nový vodotesný box na umiestnenie olovenej batérie.

Obrázok
Obrázok
Obrázok
Obrázok
Obrázok
Obrázok

Krok 4: Konfigurácia softvéru

Uzol

V tejto časti predstavíme hlavne softvérovú konfiguráciu uzla.

DataFormat

Údaje nahrané uzlom do brány:

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

Význam každého dátového bitu:

Lora_data [0] : Teplota vzduchu, ℃

Lora_data [1] : Vlhkosť vzduchu, %

Lora_data [2] : Nadmorská výška osem, m

Lora_data [3] : Nadmorská výška nízka osem

Lora_data [4] : Koncentrácia CO2 vysoká osem, ppm

Lora_data [5] : Koncentrácia CO2 nízka osem

Lora_data [6] : Koncentrácia prachu vysoká osem, ks/0,01 cf

Lora_data [7] : Nízka koncentrácia prachu

Lora_data [8] : Intenzita svetla vysoká osem, lux

Lora_data [9] : Nízka intenzita svetla osem

Lora_data [10] : Koncentrácia O2, % (hrubé údaje delené 1 000)

Lora_data [11] : Teplota pôdy, ℃

Lora_data [12] : Vlhkosť pôdy, %

Lora_data [13] : Napätie batérie, v

Lora_data [14] : Chybový kód snímačov

Kód chyby:

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

Význam každého bitu:

bit 0: 1 ---- Chyba snímača teploty a humi a barometra (BME280)

bit 1: 1 ---- Chyba senzora oxidu uhličitého (MH-Z16)

bit 2: 1 ---- Chyba snímača prachu (PPD42NS)

bit 3: 1 ---- Chyba digitálneho svetelného senzora

bit 4: 1 ---- Chyba senzora kyslíka (ME2-O2-Ф20)

bit 5: 1 ---- Chyba snímača vlhkosti a teploty pôdy

bit 6: Vyhradené

bit 7: Vyhradené

Vytvorili sme Error_code_transform.exe, otvoríme ho a zadáme chybový kód v hexadecimálnom formáte, rýchlo zistíte, ktorý senzor je chyba. Odkaz na stiahnutie je na konci tohto článku.

Úprava parametrov: a) Cyklus prenosu údajov

// seeedtea.ino

#defineinterval_time 600 // sekunda

Tento parameter je možné zmeniť na zmenu cyklu prenosu údajov. V každom cykle trvá zber údajov asi 1 minútu. Preto sa neodporúča meniť túto hodnotu na menej ako 60 sekúnd.

b) Doba zahrievania snímača prachu

//seeedtea.ino

#definePreheat_time 30000 // Čas na zahriatie senzora prachu, milisekundy //Dust_other.cpp #definesampletime_ms 30000 // vzorkovací čas30s

c) Koeficient napätia

//POWER_Ctrl.cpp

#defineBattery_coefficient 0.159864 // ADC value × Battery_coefficient = battery_voltage #defineSolar_coefficient 0.22559 // ADC value × Solar_coefficient = solar_voltage

Tieto dva parametre sa vypočítavajú na základe obvodu deliča napätia.

d) Prahová hodnota teploty ventilátora

//POWER_Ctrl.cpp

#defineFan_start_temp 45 // teplotná prahová hodnota #defineFan_start_light 500 // intenzita svetla

Keď skutočná teplota prekročí prahovú hodnotu, ventilátor sa začne ochladzovať.

e) Parameter inicializácie senzora O2

//Oxygen.cpp

#defineO2_percentage 208,00 //20,8%

f) Makrospínač

//seeedtea.ino

#defineLORA_RUN // Po komentári sa inicializácia Lory a prenos údajov zastaví #defineSENSOR_RUN // Po komentári prestanú externé senzory fungovať //POWER_Ctrl.cpp #defineFAN_ON // Len posilnenie, praktickú aplikáciu je potrebné okomentovať /**** *** Riadiaci režim DS18B20 *********************/ #defineSlower_Mode // Pomalý režim na dosiahnutie teploty. Komentovanie je rýchly režim

g) Mapovanie pinov

D2: LED indikátor a externý resetovací mikrokontrolér IIC: SCL a SDA

// Prach_iný.h

#defineDust_pin 3 // Senzor prachu //CO2.cpp #defineCO2_serial Serial1 // použite hardwarový server (D0 & D1) //seeedtea.ino #definedataPin 6 // Pin údajov o pôde #defineclockPin 7 // Kolík hodín pôdy // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Ventilátor #defineAir_CtrlPin 10 // Ovládací kolík pre senzory umiestnené v louverboxe #defineSoil_CtrlPin 11 // Kolík spínača snímača vlhkosti a teploty pôdy #defineBattery_pin A2 // Meranie napätia batérie #defineSolar /Zmerajte napätie solárneho panelu //Oxygen.h #defineO2_pin A1 // Snímač O2

h) Časovač strážneho psa

Časovač watchdog sa používa na monitorovanie stavu systému. Keď systém beží abnormálne, uzol sa resetuje, aby mohol bežať nepretržite dlhší čas.

Knižnica, na ktorú sa bude odkazovať:

  • Do projektu bol pridaný Adafruit_SleepyDog.h
  • Adafruit_ASFcore-master.zip je zabalený v priečinku projektu a je potrebné ho ručne pridať do IDE Arduino.

Súvisiace funkcie:

Povoliť strážneho psa

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

Vstupné parametre:

Int maxPeriodMS: Čakacia doba v milisekundách. Maximálne povolené je 16 000 milisekúnd.

návratová hodnota:

Int typ, vráťte skutočnú dobu čakania

Resetujte strážneho psa

void WatchdogSAMD:: reset ()

Zavolaním tejto funkcie vynulujete časovač strážneho psa, ktorý sa označuje ako „kŕmenie psa“. Prekročenie času čakania bez resetovania spôsobí reštart uzla.

Zastavte strážneho psa

void WatchdogSAMD:: disable ()

Brána

V tejto časti si predstavíme, ako sa pripojiť k serveru Loriot.

Krok 1: Registrácia brány servera Loriot

a) Nový používateľ musí najskôr zaregistrovať účet, kliknite na registračnú adresu. Vyplňte užívateľské meno, heslo a e -mailovú adresu a zaregistrujte sa, po registrácii vám bude zaslaný e -mail, postupujte podľa pokynov v e -maile na aktiváciu.

b) Po úspešnej aktivácii sa kliknutím sem prihláste. Predvolená úroveň je „Komunitná sieť“, podporuje 1 bránu (RHF2S001) a 10 uzlov.

c) Vstúpte do panela -> Brána, kliknutím na položku Pridať bránu začnite pridávať bránu.

d) Vyberte položku Raspberry Pi 3

e) Nastaviť ako je uvedené nižšie:

  • Rozhranie rádia -> RHF2S001 868/915 MHz (SX1257)
  • AUTOBUS -> SPI

f) Vyplňte MAC adresu vášho RHF2S001, mala by byť vo formáte b8: 27: eb: xx: xx: xx. A tiež zadajte informácie o polohe brány.

g) Kliknutím na „Registrovať bránu Raspberry Pi“dokončite registráciu.

Obrázok
Obrázok

h) Kliknutím na zaregistrovanú bránu vstúpte na konfiguračnú stránku, manuálne prepnite „Frekvenčný plán“, o vašom pláne tu rozhoduje typ vášho typu RHF2S001, dostupný plán je CN470 , CN473 , CN434 , CN780 , EU868, po vybratí obnovte stránku získať presný kanál. V tejto wiki vyberáme EU868.

i) Spustite príkaz v termináli tmelu :

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.

Obrázok
Obrázok

Krok 2: Zariadenie Loriot Server Connect Node

a) Získajte dostupné kanály brány

Aktuálne kanály brány je možné získať z Dashboard -> Gateway -> Your Gateway, dostupné kanály môžete vidieť ako na obrázku nižšie.

Obrázok
Obrázok

b) Konfigurácia Seeeduino LoRAWAN GPS (RHF3M076)

Otvorte sériový monitor ArduinoIDE, klepnite na príkaz nižšie.

o+ch

Na potvrdenie predvoleného kanála vášho Seeeduino_LoRAWAN GPS získate 3 kanály. Ak nie je k dispozícii žiadny kanál, môžete kanály programu Seeeduino_LoRAWAN zmeniť pomocou nižšie uvedeného príkazu.

pri+ch = 0, 868,1

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

Potom môžete na+ch znova použiť na kontrolu.

c) Pridajte server Seeeduino_LoRAWAN GPS ako uzol ABP NodeLog na server Loriot, kliknite na položku Dash Board -> Aplikácie -> SimpleApp. Kliknite na položku Importovať vstup ABP below pod položkami

  • DevAddr: Seeeduino_LoRAWAN GPS prejsť príkazom „AT+ID“(Poznámka: Loriot nepodporuje dvojbodkový konektor, je potrebné ho odstrániť ručne)
  • FCntUp : Setto 1
  • FCntDn, Setto 1
  • NWKSKEY : Predvolená hodnota 2B7E151628AED2A6ABF7158809CF4F3C
  • APPSKEY : Predvolená hodnota 2B7E151628AED2A6ABF7158809CF4F3C
  • EUI : DEVEUI, Seeeduino_LoRAWAN GPS prechádzajú príkazom „AT+ID“
Obrázok
Obrázok

Import zariadenia dokončíte kliknutím na tlačidlo Importovať zariadenie. Teraz zvoľte Dashboard-> Applications -> SampleApp, uvidíte nový uzol ABP, ktorý ste práve pridali.

Obrázok
Obrázok

d) Odoslať údaje zo servera Seeeduino_LoRAWAN

POZOR! Toto je len test.

Späť na sériový monitor ArduinoIDE, pošlite príkaz:

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

Potom choďte na Dashboard -> Aplikácie -> SampleApp -> Zariadenie, kliknite na Uzol zariadenia EUI alebo DevAddr, nájdete tu údaje, ktoré ste práve odoslali.

Obrázok
Obrázok

Podrobnosti nájdete na tejto wiki.

Krok 5: Výstavba webových stránok

Súvisiace nástroje

  • virtualenv
  • Python3
  • Gunicorn
  • Supervízor
  • Nginx
  • MySQL

Ako prostredie testovacieho nasadenia používame CentOS7

virtualenv

Použite virtualenv na vybudovanie samostatného produkčného prostredia python3

a) nainštalovať

pip install virtualenv

b) vytvorte virtuálne prostredie python3

virtualenv -p python3 iotea

c) spustite virtuálne prostredie a zadajte adresár iotea

zdrojový kôš/aktivovať

d) existujúce prostredie

deaktivovať

Python3

a) nainštalovať

nainštalujte epel-release

nainštalujte python36

b) nainštalujte závislú knižnicu PyMySQL, DBUtils, Flask, websocket-client, configparser

pip install pymysql

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

Gunicorn

a) nainštalovať (v prostredí Python3)

pip install gunicorn

b) spustite projekt banky (v adresári projektu iotea)

gunicorn -w 5 -b 0,0.0.0:5000 aplikácia: pribl

c) spustením websocket-clint získate údaje o loriotoch

gunicorn loriot: cca

d) zobraziť strom procesu Gunicorn

pstree -ap | grep gunicorn

Supervízor

a) nainštalovať (užívateľ root)

supervízor inštalácie pipov

b) generovať konfiguračné súbory

echo_supervisord_conf> /etc/supervisord.conf

c) vytvorte adresár a zadajte konfiguráciu adresára

mkdir -p /etc/supervisor/conf.d

Upravte súbor /etc/supervisord.conf a upravte pole súborov v časti [zahrnúť] na konci súboru.

Upozorňujeme, že musíte odstrániť ';' pred týmito dvoma riadkami, čo je znak komentára.

[zahrnúť]

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

Prostriedky na zavedenie /etc/supervisor/conf.d/. Nasledujúci konfiguračný súbor sa používa ako konfiguračný súbor procesu (monitoruje ho nadriadený).

d) prichádzajúca konfigurácia (v adresári iotea)

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

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

e) otvorené servírovanie iotea

superviosrctl reload #načítajte konfiguračný súbor

superviosrctl start loriot #open loriot data receive superviosrctl start iotea #open the iotea flask application

f) ostatné bežné činnosti

supervisorctl reload # znova načítať konfiguračný súbor

supervisorctl update supervisorctl start xxx supervisorctl stop xxx supervisorctl status xxx supervisorctl help # zobraziť viac príkazov

Nginx

a) nainštalovať

yum install -y nginx

b) konfigurácia

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

c) spustite Nginx

systemctl start nginx.service

MySQL

a) súvisiace parametre

user = 'root'

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

b) súbor

iotea_iotea.sql

c) konfiguračný súbor

db.ini

Odporúča: