Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
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.
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.
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.
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.
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.
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.
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.
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“
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.
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.
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