Obsah:
- Krok 1: Věci použité v tomto projektu
- Krok 2: Příběh
- Krok 3: Hardwarové připojení
- Krok 4: Konfigurace softwaru
- Krok 5: Stavba webových stránek
Video: Viděné řešení LoRa IoTea: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Systém automatického shromažďování informací aplikovaný na čajové plantáže. Je součástí inteligentního shromažďování zemědělských informací.
Krok 1: Věci použité v tomto projektu
Hardwarové komponenty
- Grove - senzor oxidu uhličitého (MH -Z16)
- Grove - digitální světelný senzor
- Grove - prachový senzor (PPD42NS)
- Grove-Kyslíkový senzor (ME2-O2-Ф20)
- Čidlo vlhkosti a teploty půdy
- LoRa LoRaWAN Gateway - souprava 868 MHz s Raspberry Pi 3
- Grove - snímač teploty a humusu a barometru (BME280)
Softwarové aplikace a online služby
Microsoft Visual Studio 2015
Krok 2: Příběh
Chytré zemědělství má aplikovat technologii internetu věcí na tradiční zemědělství, pomocí senzorů a softwaru řídit zemědělskou produkci prostřednictvím mobilních nebo počítačových platforem, díky čemuž bude tradiční zemědělství „chytřejší“.
Na hoře Mengding severovýchodně od Ya’an, S' -čchuan, vede horský hřeben v zeleném moři na západ k východu. Toto je nejznámější pohled na šestatřicetiletého Denga, jednoho z mála Mengdingových čajovníků své generace, s plantáží 50 m (= 3,3 ha) situovanou v nadmořské výšce 1 100 m. Deng pochází z rodiny čajovníků, ale pokračovat v rodinném odkazu není snadný úkol. "Naše čaje se pěstují ve vysoké nadmořské výšce v organickém prostředí, aby byla zajištěna jeho vynikající kvalita." Ale zároveň je hustota růstu nízká, náklady jsou vysoké a pučení je nerovnoměrné, takže je těžké čaj sklízet. Proto jsou vysokohorské čaje obvykle malou sklizní a jejich hodnoty se na trhu neprojevují. “Poslední dva roky se Deng snaží zvýšit povědomí spotřebitelů o vysokohorském čaji, aby propagoval jeho hodnotu. A když se setkal s Fanem, který hledal plantáž pro implementaci technologie Seeed IoTea, bylo dosaženo dokonalého řešení. Řešení Seeed IoTea si klade za cíl pomoci pěstitelům čaje lépe obhospodařovat plantáže, aniž by se měnily tradiční postupy pěstování čaje, a prezentovat environmentální data z plantáží v reálném čase na otevřené platformě.
Skládá se ze senzorů, uzlů a bran a shromažďuje data v reálném čase o faktorech, které mohou ovlivnit kvalitu čaje během kultivace a výrobních procesů, včetně teploty a vlhkosti, CO2, O2, PM a expozice světla. Data jsou shromažďována senzory, odesílána uzly do brány a případně do cloudu a jsou zpřístupněna koncovým zákazníkům na webové stránce.
Krok 3: Hardwarové připojení
Krok 1: Připojení brány
Brána je nainstalována samostatně v krabici. Vzhledem k problému s odvodem tepla jsme přidali 2 ventilátory. Jedna je pro odvod tepla Raspberry Pi, druhá pro vnitřní a vnější cirkulaci vzduchu. Gateway box je umístěn v domě farmáře, takže nemusíme zvažovat jeho problém s napájením.
Krok 2: Připojení uzlu
Uzel je terminál dat a všechna původní data jsou získávána odtud. K uzlu je připojeno 6 čidel. Kromě čidla půdní vlhkosti a teploty jsme do žaluziového boxu vložili další čidla.
Uzel je umístěn ve vodotěsném boxu. Abychom měli k uzlu lepší připojení, vyrobíme desku adaptéru. Nakonec poskytneme odkaz na stažení schématu této desky. Jak je znázorněno níže, kabely senzorů jsou zapojeny do desky adaptéru přes svorkovnice. K sestavení spínacích obvodů pro ovládání zapínání a vypínání senzorů a ventilátoru používáme 3 trubice MOS (SI2301). K ochlazení slouží ventilátor. Na desce máme namontovaný teplotní senzor (DS18B20). Může nám říci vnitřní teplotu krabice a poté mikrokontrolér rozhodne, zda zapne ventilátor. K vytvoření obvodu děliče napětí k měření napětí olověné baterie používáme několik odporů. Nakonec si na desce vyhrazujeme 3 rozhraní IIC a sériový port pro pozdější rozšíření a ladění.
Promluvme si o problému s napájením uzlu. Uzel je umístěn na čajové plantáži náhodně, takže tradiční způsob napájení již není použitelný. Použití solárního řešení je dobrý nápad. V současné době je na trhu mnoho řešení. Můžeme vybrat jeden z nich, který splňuje naše potřeby. V řešení, které jsme vybrali, jsou 3 části: solární panel, solární regulátor nabíjení a olověná baterie. Abychom lépe zachytili sluneční energii, položili jsme solární panel na horní část držáku a upravili jeho úhel tak, aby směřoval ke slunci. Umístili jsme solární regulátor nabíjení do stejného boxu s uzlem. Protože uvnitř krabice není žádný další prostor, museli jsme najít nový vodotěsný box pro umístění olověné baterie.
Krok 4: Konfigurace softwaru
Uzel
V této části si představíme hlavně softwarovou konfiguraci uzlu.
DataFormat
Data nahraná uzlem do brány:
nepodepsaný znak Lora_data [15] = {0, 1, 2, 3,, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
Význam každého datového bitu:
Lora_data [0] : Teplota vzduchu, ℃
Lora_data [1] : Vlhkost vzduchu, %
Lora_data [2] : Nadmořská výška osm, m
Lora_data [3] : Nadmořská výška nízká osm
Lora_data [4] : Koncentrace CO2 vysoká osm, ppm
Lora_data [5] : Koncentrace CO2 nízká osm
Lora_data [6] : Koncentrace prachu vysoká osm, ks/0,01 cf
Lora_data [7] : Koncentrace prachu nízká osm
Lora_data [8] : Intenzita světla vysoká osm, lux
Lora_data [9] : Nízká intenzita světla osm
Lora_data [10] : Koncentrace O2, % (surová data děleno 1000)
Lora_data [11] : Teplota půdy, ℃
Lora_data [12] : Vlhkost půdy, %
Lora_data [13] : Napětí baterie, v
Lora_data [14] : Chybový kód senzorů
Chybový kód:
Lora_data [14] = [bit7, bit6, bit5, bit4, bit3, bit2, bit1, bit0]
Význam každého bitu:
bit 0: 1 ---- Chyba snímače teploty a humi a barometru (BME280)
bit 1: 1 ---- Chyba snímače oxidu uhličitého (MH-Z16)
bit 2: 1 ---- Chyba snímače prachu (PPD42NS)
bit 3: 1 ---- Chyba snímače digitálního světla
bit 4: 1 ---- Chyba senzoru kyslíku (ME2-O2-Ф20)
bit 5: 1 ---- Chyba snímače vlhkosti půdy a teploty
bit 6: Vyhrazeno
bit 7: Vyhrazeno
Vytvořili jsme Error_code_transform.exe, otevřete jej a zadáte kód chyby v šestnáctkové soustavě, rychle poznáte, který senzor je chyba. Odkaz ke stažení je na konci tohoto článku.
Úprava parametrů: a) Cyklus přenosu dat
// seeedtea.ino
#defineinterval_time 600 // sekunda
Tento parametr lze změnit pro změnu cyklu přenosu dat. V každém cyklu trvá sběr dat přibližně 1 minutu. Nedoporučuje se tedy měnit tuto hodnotu na méně než 60 sekund.
b) Doba zahřívání snímače prachu
//seeedtea.ino
#definePreheat_time 30000 // Doba zahřívání prachu, milisekund //Dust_other.cpp #definesampletime_ms 30000 // vzorkovací doba30s
c) Součinitel napětí
//POWER_Ctrl.cpp
#defineBattery_coefficient 0.159864 // ADC value × Battery_coefficient = battery_voltage #defineSolar_coefficient 0.22559 // ADC value × Solar_coefficient = solar_voltage
Tyto dva parametry jsou vypočítány na základě obvodu děliče napětí.
d) Prahová hodnota teploty ventilátoru
//POWER_Ctrl.cpp
#defineFan_start_temp 45 // teplotní omezení #defineFan_start_light 500 // intenzita světla
Když skutečná teplota překročí prahovou hodnotu, ventilátor se začne ochlazovat.
e) Parametr inicializace senzoru O2
//Oxygen.cpp
#defineO2_percentage 208,00 //20,8%
f) Přepínač makro
//seeedtea.ino
#defineLORA_RUN // Po komentáři se Lora inicializace a přenos dat zastaví #defineSENSOR_RUN // Po komentáři přestanou externí senzory fungovat //POWER_Ctrl.cpp #defineFAN_ON // Pouze Fortesting, praktickou aplikaci je třeba okomentovat /**** *** Řídicí režim DS18B20 **********************/ #defineSlower_Mode // Pomalý režim pro získání teploty. Komentování je rychlý režim
g) Mapování pinů
D2: LED indikátor a externí reset mikrokontroléru IIC: SCL a SDA
// Prach_další.h
#defineDust_pin 3 // Senzor prachu //CO2.cpp #defineCO2_serial Serial1 // použijte hardwarový server (D0 & D1) //seeedtea.ino #definedataPin 6 // Datový pin půdy #defineclockPin 7 // Pin hodin půdy // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Ventilátor #defineAir_CtrlPin 10 // Ovládací kolík pro senzory umístěné v louverboxu #defineSoil_CtrlPin 11 // Pólový spínač snímače vlhkosti a teploty #defineBattery_pin A2 // Měření napětí baterie #defineSolar /Změřte napětí solárního panelu //Oxygen.h #defineO2_pin A1 // senzor O2
h) Časovač hlídacího psa
Časovač Watchdog se používá ke sledování stavu běhu systému. Pokud systém běží abnormálně, uzel se resetuje, aby mohl běžet nepřetržitě po dlouhou dobu.
Knihovna, na kterou se bude odkazovat:
- Do projektu byl přidán Adafruit_SleepyDog.h
- Soubor Adafruit_ASFcore-master.zip je zabalen do složky projektu a je třeba jej ručně přidat do IDE Arduino.
Související funkce:
Povolit hlídacího psa
int WatchdogSAMD:: enable (int maxPeriodMS, bool isForSleep)
Vstupní parametry:
Int maxPeriodMS: Čekací doba v milisekundách. Maximální povolená hodnota je 16 000 milisekund.
návratová hodnota:
Int typ, vraťte skutečnou čekací dobu
Resetujte hlídacího psa
void WatchdogSAMD:: reset ()
Voláním této funkce resetujete časovač hlídacího psa, označovaný také jako „krmení psa“. Překročení čekací doby bez resetu způsobí restart uzlu.
Zastavte hlídacího psa
void WatchdogSAMD:: disable ()
Brána
V této části si představíme, jak se připojit k serveru Loriot.
Krok 1: Registrace brány Loriot Server
a) Nový uživatel musí nejprve zaregistrovat účet, klikněte na registrační adresu. Chcete -li se zaregistrovat, vyplňte uživatelské jméno, heslo a e -mailovou adresu, po registraci vám bude zaslán e -mail, pro aktivaci postupujte podle pokynů v e -mailu.
b) Po úspěšné aktivaci se kliknutím sem přihlaste. Výchozí úroveň je „Komunitní síť“, podporuje 1 bránu (RHF2S001) a 10 uzlů.
c) Vstupte na Dashboard -> Gateway, kliknutím na Add Gateway start přidáte Gateway.
d) Vyberte Raspberry Pi 3
e) Nastavit níže:
- Rozhraní rádia -> RHF2S001 868/915 MHz (SX1257)
- AUTOBUS -> SPI
f) Vyplňte MAC adresu vašeho RHF2S001, měla by být ve formátu b8: 27: eb: xx: xx: xx. A také zadejte informace o poloze brány.
g) Registraci dokončíte kliknutím na „Zaregistrovat bránu Raspberry Pi“.
h) Kliknutím na registrovanou bránu přejděte na konfigurační stránku, ručně přepněte „Frekvenční plán“, váš plán zde určuje typ vašeho typu RHF2S001, dostupný plán je CN470 , CN473 , CN434 , CN780 , EU868, po výběru obnovte stránku získat přesný kanál. Na této wiki vybíráme EU868.
i) Spusťte příkaz v terminálu 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: Zařízení Loriot Server Connect Node
a) Získejte dostupné kanály brány
Aktuální kanály brány lze získat z Dashboard -> Gateway -> Your Gateway, dostupné kanály můžete vidět jako na obrázku níže.
b) Konfigurace Seeeduino LoRAWAN GPS (RHF3M076)
Otevřete sériový monitor ArduinoIDE, klepněte na příkaz níže.
při+ch
K potvrzení výchozího kanálu vašeho Seeeduino_LoRAWAN GPS získáte 3 kanály. Pokud není k dispozici žádný kanál, můžete kanály Seeeduino_LoRAWAN změnit níže uvedeným příkazem.
při+ch = 0, 868,1
při+ch = 1, 868,3 při+ch = 2, 868,5
Poté můžete pomocí+ch znovu zkontrolovat.
c) Přidejte Seeeduino_LoRAWAN GPS jako ABP NodeLog na server Loriot, klikněte na Dash Board -> Aplikace -> SimpleApp. Klikněte na položku Importovat vstup ABP below pod položkami
- DevAddr: Seeeduino_LoRAWAN GPS získat pomocí příkazu „AT+ID“(Poznámka: Loriot nepodporuje dvojtečku, je třeba odebrat ručně)
- FCntUp : Setto 1
- FCntDn : Setto 1
- NWKSKEY : Výchozí hodnota 2B7E151628AED2A6ABF7158809CF4F3C
- APPSKEY : Výchozí hodnota 2B7E151628AED2A6ABF7158809CF4F3C
- EUI : DEVEUI, Seeeduino_LoRAWAN GPS prochází příkazem „AT+ID“
Kliknutím na tlačítko Importovat zařízení dokončíte import zařízení. Nyní zvolte Dashboard-> Applications -> SampleApp, uvidíte nový uzel ABP, který jste právě přidali.
d) Odeslat data z Seeeduino_LoRAWAN
POZORNOST! Toto je jen test.
Zpět na sériový monitor ArduinoIDE, odešlete příkaz:
AT+CMSGHEX = "0a 0b 0c 0d 0e"
Poté přejděte na Dashboard -> Aplikace -> SampleApp -> Zařízení, klikněte na Node Device EUI nebo DevAddr, najdete zde data, která jste právě odeslali.
Podrobnosti najdete na této wiki.
Krok 5: Stavba webových stránek
Související nástroje
- virtualenv
- Python3
- Gunicorn
- Dozorce
- Nginx
- MySQL
Jako testovací prostředí nasazení používáme CentOS7
virtualenv
Použijte virtualenv k vybudování samostatného produkčního prostředí python3
a) nainstalovat
pip install virtualenv
b) vytvořte virtuální prostředí python3
virtualenv -p python3 iotea
c) spusťte virtuální prostředí a zadejte adresář iotea
zdrojový koš/aktivovat
d) existovat prostředí
deaktivovat
Python3
a) nainstalovat
yum nainstalovat epel-release
yum nainstalovat python36
b) nainstalujte závislou knihovnu PyMySQL, DBUtils, Flask, websocket-client, configparser
pip install pymysql
pip install dbutils pip install flask pip install websocket-client pip install configparser
Gunicorn
a) nainstalovat (v prostředí Python3)
pip install gunicorn
b) spusťte projekt baňky (v adresáři projektu iotea)
gunicorn -w 5 -b 0,0.0.0:5000 aplikace: cca
c) Spusťte websocket-clint, abyste získali loriotská data
gunicorn loriot: cca
d) zobrazit strom procesu Gunicorn
pstree -ap | grep gunicorn
Dozorce
a) nainstalovat (uživatel root)
správce instalace pipu
b) generovat konfigurační soubory
echo_supervisord_conf> /etc/supervisord.conf
c) vytvořte adresář a představte konfiguraci adresáře
mkdir -p /etc/supervisor/conf.d
Upravte /etc/supervisord.conf a upravte pole souborů pod [zahrnout] na konci souboru.
Všimněte si, že musíte odstranit ';' před těmito dvěma řádky, což je znak komentáře.
[zahrnout]
Soubory = /etc/supervisor/conf.d/*.conf
Znamená zavést /etc/supervisor/conf.d/. Jako konfigurační soubor procesu se používá následující konfigurační soubor (monitorovaný supervizorem).
d) příchozí konfigurace (v adresáři iotea)
cp iotea.conf /etc/supervisor/conf.d/
cp loriot.conf /etc/supervisor/conf.d/
e) otevřená iotea sloužit
superviosrctl reload #reload the configuration file
superviosrctl start loriot #open loriot data receive superviosrctl start iotea #open the iotea flask application
f) další běžné operace
supervisorctl reload # znovu načte konfigurační soubor
supervisorctl update supervisorctl start xxx supervisorctl stop xxx supervisorctl status xxx supervisorctl help # zobrazit další příkaz
Nginx
a) nainstalovat
yum install -y nginx
b) konfigurace
cp NginxIotea.conf /etc/nginx/conf.d/
c) spusťte Nginx
systemctl start nginx.service
MySQL
a) související parametry
user = 'root'
passwd = '1234' db = 'iotea' port = 3306
b) soubor
iotea_iotea.sql
c) konfigurační soubor
db.ini
Doporučuje:
Arduino - Robot pro řešení bludiště (MicroMouse) Robot po zdi: 6 kroků (s obrázky)
Arduino | Maze Solving Robot (MicroMouse) Wall Následující robot: Vítejte, jsem Isaac a toto je můj první robot „Striker v1.0“. Tento robot byl navržen tak, aby vyřešil jednoduché bludiště. V soutěži jsme měli dvě bludiště a robot dokázal je identifikovat. Jakékoli další změny v bludišti mohou vyžadovat změnu v
Připojte a dovybavte svá propojená řešení pomocí Hologramu Nova a Ubidots: 9 kroků
Připojte a dovybavte svá propojená řešení pomocí Hologramu Nova a Ubidots: Použijte svůj Hologram Nova k dovybavení infrastruktury. Nastavte Hologram Nova pomocí Raspberry Pi pro odesílání (teplotních) dat do Ubidots. V následující příručce Ubidots předvede, jak nastavit Hologram Nova pomocí Raspberry Pi a zobrazit te
Viděné řešení IoTea LoRa (aktualizace 1811): 5 kroků
Viděné řešení IoTea LoRa (aktualizace 1811): Internet+ je nyní populární koncept. Tentokrát jsme vyzkoušeli internet plus zemědělství, aby z čajové zahrady vyrostl internetový čaj
Viděné řešení IoTea LoRa (s Azure, aktualizace 1812): 5 kroků
Viděné řešení IoTea LoRa (s Azure, aktualizace 1812): Microsoft Azure je cloudová služba, která poskytuje výkonnější a stabilnější výpočetní výkon. Tentokrát jsme do něj zkusili poslat naše data IoTea
Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Řešení: 9 kroků (s obrázky)
Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Řešení: Připojení: USB - SerialNeed: Prohlížeč Chrome Potřeba: 1 X Arduino Mega Potřeba: 1 X GPS Potřeba: 1 X SD karta Potřeba: 2 X LoRa Modem RF1276 Funkce: Arduino Odeslat hodnotu GPS na hlavní základnu - Hlavní základna ukládá data v modulu Dataino Server Lora: Ultra dlouhý dosah