Turinys:
- 1 žingsnis: šiame projekte naudojami dalykai
- 2 žingsnis: istorija
- 3 žingsnis: aparatinės įrangos prijungimas
- 4 žingsnis: programinės įrangos konfigūravimas
- 5 žingsnis: svetainės kūrimas
Video: Matė „LoRa IoTea“sprendimą: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Arbatos plantacijai taikoma automatinė informacijos rinkimo sistema. Tai intelektualios žemės ūkio informacijos rinkimo dalis.
1 žingsnis: šiame projekte naudojami dalykai
Techninės įrangos komponentai
- „Grove“- anglies dioksido jutiklis (MH -Z16)
- Grove - skaitmeninis šviesos jutiklis
- Grove - dulkių jutiklis (PPD42NS)
- Grove-deguonies jutiklis (ME2-O2-Ф20)
- Dirvožemio drėgmės ir temperatūros jutiklis
- „LoRa LoRaWAN Gateway“- 868 MHz rinkinys su „Raspberry Pi 3“
- Grove - Temp & Humi & Barometer jutiklis (BME280)
Programinės įrangos programos ir internetinės paslaugos
„Microsoft Visual Studio 2015“
2 žingsnis: istorija
Išmanusis žemės ūkis - tai daiktų interneto technologijos taikymas tradiciniam žemės ūkiui, naudojant jutiklius ir programinę įrangą žemės ūkio gamybai valdyti per mobilias ar kompiuterines platformas, kad tradicinis žemės ūkis taptų „protingesnis“.
Mengding kalne į šiaurės rytus nuo Ya'an, Sičuanas, kalnų ketera eina į vakarus į rytus žalioje jūroje. Tai labiausiai pažįstamas vaizdas 36 metų Dengui, vienam iš nedaugelio savo kartos „Mengding“arbatos gamintojų, kurio 50 m (= 3,3 ha) plantacija yra 1100 m aukštyje. Deng yra kilęs iš arbatos gamintojų šeimos, tačiau išlaikyti šeimos palikimą nėra lengva užduotis. „Mūsų arbatos yra auginamos dideliame aukštyje ekologiškoje aplinkoje, kad būtų užtikrinta puiki jos kokybė. Tačiau tuo pačiu metu augimo tankis yra mažas, kaina didelė ir pumpurai nevienodi, todėl arbatą sunku nuimti. Štai kodėl aukštų kalnų arbatos paprastai yra nedidelis derlius ir jų vertybės neatsispindi rinkoje “. Pastaruosius dvejus metus Deng bandė didinti vartotojų supratimą apie aukštaūgę arbatą, siekdama skatinti jų vertę. Ir kai jis susitiko su Fanu, kuris ieškojo plantacijos „Seeed“„IoTea“technologijai diegti, buvo puikiai suderintas sprendimas. „Seeed IoTea Solution“tikslas-padėti arbatos augintojams geriau tvarkyti plantacijas, nekeičiant tradicinės arbatos auginimo praktikos, ir pristatyti plantacijų aplinkosaugos duomenis realiuoju laiku atviroje platformoje.
„IoTea“, kurią sudaro jutikliai, mazgai ir vartai, renka realiu laiku duomenis apie veiksnius, kurie gali turėti įtakos arbatos kokybei auginimo ir gamybos procesų metu, įskaitant temperatūrą ir drėgmę, CO2, O2, PM ir šviesos poveikį. Duomenis renka jutikliai, mazgai siunčia į šliuzą ir galiausiai į debesį, o galutiniams vartotojams jie yra prieinami tinklalapyje.
3 žingsnis: aparatinės įrangos prijungimas
1 žingsnis: Vartų prijungimas
Vartai montuojami atskirai dėžutėje. Atsižvelgdami į šilumos išsklaidymo problemą, pridėjome 2 ventiliatorius. Viena skirta „Raspberry Pi“šilumos išsklaidymui, kita - vidaus ir išorės oro cirkuliacijai. Vartų dėžutė yra ūkininko namuose, todėl mums nereikia svarstyti jo galios problemos.
2 žingsnis: mazgų prijungimas
Mazgas yra duomenų terminalas, o visi pirminiai duomenys gaunami iš čia. Prie mazgo prijungti 6 jutikliai. Be dirvožemio drėgmės ir temperatūros jutiklio, į žaliuzių dėžę įdėjome kitus jutiklius.
Mazgas dedamas į vandeniui atsparią dėžę. Siekiant geresnio ryšio su mazgu, mes gaminame adapterio plokštę. Galiausiai pateiksime šios lentos schemos atsisiuntimo nuorodą. Kaip parodyta žemiau, jutiklių kabeliai yra prijungti prie adapterio plokštės per gnybtus. Mes naudojame 3 MOS vamzdelius (SI2301), kad sukurtume jungiklių grandines, skirtas valdyti jutiklius ir ventiliatorių. Ventiliatorius naudojamas atvėsti. Ant plokštės sumontuotas temperatūros jutiklis (DS18B20). Tai gali mums pasakyti vidinę dėžutės temperatūrą, o tada mikrovaldiklis nusprendžia, ar įjungti ventiliatorių. Mes naudojame kelis rezistorius, kad sukurtume įtampos skirstytuvo grandinę švino rūgšties akumuliatoriaus įtampai matuoti. Galiausiai, lentoje pasiliekame 3 IIC sąsajas ir nuoseklųjį prievadą vėlesniam išplėtimui ir derinimui.
Pakalbėkime apie mazgo maitinimo problemą. Mazgas į arbatmedžių plantaciją dedamas atsitiktinai, todėl tradicinis maitinimo metodas nebetaikomas. Naudoti saulės energijos sprendimą yra gera idėja. Šiuo metu rinkoje yra daug sprendimų. Mes galime pasirinkti vieną iš jų, atitinkantį mūsų poreikius. Mūsų pasirinktame sprendime yra 3 dalys: saulės kolektorius, saulės įkrovimo valdiklis ir švino rūgšties akumuliatorius. Norėdami geriau užfiksuoti saulės energiją, ant laikiklio viršaus uždedame saulės kolektorių ir sureguliuojame jo kampą, kad jis būtų nukreiptas į saulę. Saulės įkrovimo valdiklį įdėjome į tą pačią dėžę su mazgu. Kadangi dėžutės viduje nėra papildomos vietos, turėjome rasti naują neperšlampamą dėžę švino rūgšties baterijai įdėti.
4 žingsnis: programinės įrangos konfigūravimas
Mazgas
Šiame skyriuje pristatysime daugiausia mazgo programinės įrangos konfigūraciją.
„DataFormat“
Duomenys, kuriuos mazgas įkėlė į šliuzą:
nepasirašytas simbolis Lora_data [15] = {0, 1, 2, 3,, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
Kiekvieno duomenų bito reikšmė:
Lora_data [0] : Oro temperatūra, ℃
Lora_data [1] : Oro drėgmė, %
Lora_data [2] high Aukščio aukštis aštuoni, m
Lora_data [3] low Žemas aukštis aštuoni
Lora_data [4] : CO2 koncentracija aukšta aštuoni, ppm
Lora_data [5] : CO2 koncentracija maža aštuonios
Lora_data [6] high Dulkių koncentracija aukšta aštuonios, vnt/0,01 cf
Lora_data [7] low Dulkių koncentracija maža aštuonios
Lora_data [8] : Šviesos intensyvumas didelis aštuoni, liuksai
Lora_data [9] : Šviesos intensyvumas mažas aštuoni
Lora_data [10] : O2 koncentracija, % (neapdoroti duomenys padalyti iš 1000)
Lora_data [11] : Dirvožemio temperatūra, ℃
Lora_data [12] : Dirvožemio drėgmė, %
Lora_data [13] : Baterijos įtampa, v
Lora_data [14] : Jutiklių klaidos kodas
Klaidos kodas:
Lora_data [14] = [bit7, bit6, bit5, bit4, bit3, bit2, bit1, bit0]
Kiekvieno bito reikšmė:
bitas 0: 1 ---- Temp & Humi & Barometer Sensor (BME280) klaida
bitas 1: 1 ---- Anglies dioksido jutiklio (MH-Z16) klaida
bitas 2: 1 ---- Dulkių jutiklio (PPD42NS) klaida
bitas 3: 1 ---- Skaitmeninio šviesos jutiklio klaida
bitas 4: 1 ---- deguonies jutiklio (ME2-O2-Ф20) klaida
bitas 5: 1 ---- Dirvožemio drėgmės ir temperatūros jutiklio klaida
6 bitas: rezervuotas
7 bitas: rezervuota
Mes padarėme Error_code_transform.exe, atidarykite jį ir įveskite klaidos kodą šešioliktainiu skaičiumi, greitai sužinosite, kuris jutiklis yra klaida. Atsisiuntimo nuoroda yra šio straipsnio pabaigoje.
Parametrų koregavimas: a) Duomenų perdavimo ciklas
// seeedtea.ino
#defineinterval_time 600 // sekundė
Šį parametrą galima keisti norint pakeisti duomenų perdavimo ciklą. Kiekvieno ciklo metu duomenų surinkimas trunka apie 1 minutę. Taigi nerekomenduojama pakeisti šios vertės į trumpesnę nei 60 sekundžių.
b) Dulkių jutiklio įšilimo laikas
//seeedtea.ino
#definePreheat_time 30000 // DustSensor įšilimo laikas, milisekundės // Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s
c) Įtampos koeficientas
//POWER_Ctrl.cpp
#defineBattery_coefficient 0,159864 // ADC reikšmė × Baterijos koeficientas = baterijos įtampa #defineSolar_coefficient 0,22559 // ADC vertė × Saulės koeficientas = saulės energijos įtampa
Šie du parametrai apskaičiuojami pagal įtampos skirstytuvo grandinę.
d) Ventiliatoriaus atidarymo temperatūros slenkstis
//POWER_Ctrl.cpp
#defineFan_start_temp 45 // temperatūros riba #defineFan_start_light 500 // šviesos intensyvumas
Kai tikroji temperatūra viršija slenkstį, ventiliatorius pradės atvėsti.
e) O2 jutiklio inicijavimo parametras
// Deguonis.cpp
#defineO2_percentage 208.00 // 20.8%
f) Makro jungiklis
//seeedtea.ino
#defineLORA_RUN // Po komentaro „Lora“inicijavimas ir duomenų perdavimas bus sustabdytas *** DS18B20 valdymo režimas **********************/ #defineSlower_Mode // Lėtas režimas temperatūrai pakeisti. Komentaras yra greitas režimas
g) kaiščių atvaizdavimas
D2: LED indikatorius ir išorinis mikrokontroleris IIC: SCL ir SDA
// Dulkės_kitos.h
#defineDust_pin 3 // Dulkių jutiklis //CO2.cpp #defineCO2_serial Serial1 // naudoti aparatinės įrangos prievadą (D0 & D1) //seeedtea.ino #definedataPin 6 // Dirvožemio duomenų smeigtukas #defineclockPin 7 // Dirvožemio laikrodžio kaištis // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Ventiliatorius #defineAir_CtrlPin 10 // Jutiklių, esančių žaliuzėse, valdymo kaištis #defineSoil_CtrlPin 11 // Dirvožemio drėgmės ir temperatūros jutiklio jungiklio kaištis #defineBattery_pin A2 // Išmatuoti akumuliatoriaus įtampą #pin /Išmatuokite saulės kolektoriaus įtampą // Deguonis.h #defineO2_pin A1 // O2 jutiklis
h) „Watchdog“laikmatis
„Watchdog“laikmatis naudojamas stebėti sistemos veikimo būseną. Kai sistema veikia neįprastai, mazgas bus atstatytas, kad jis galėtų ilgą laiką veikti nepertraukiamai.
Biblioteka, į kurią bus remiamasi:
- Prie projekto pridėtas „Adafruit_SleepyDog.h“
- „Adafruit_ASFcore-master.zip“yra supakuotas į projekto aplanką ir turi būti rankiniu būdu pridėtas prie „Arduino IDE“.
Susijusios funkcijos:
Įgalinti stebėtoją
int WatchdogSAMD:: įjungti (int maxPeriodMS, bool isForSleep)
Įvesties parametrai:
Int maxPeriodMS: laukimo laikas milisekundėmis. Maksimali leistina trukmė yra 16 000 milisekundžių.
grąžinimo vertė:
Int tipo, grąžinkite faktinį laukimo laiką
Iš naujo nustatyti stebėtoją
void WatchdogSAMD:: atstatyti ()
Paskambinkite šia funkcija, kad iš naujo nustatytumėte stebėtojo laikmatį, vadinamą „šuns šėrimu“. Viršijus laukimo laiką be atstatymo, mazgas bus paleistas iš naujo.
Stop budėtojas
void WatchdogSAMD:: išjungti ()
Vartai
Šiame skyriuje mes pristatysime, kaip prisijungti prie „Loriot“serverio.
1 žingsnis: „Loriot Server Gateway“registracija
a) Naujam vartotojui pirmiausia reikia užregistruoti paskyrą, spustelėkite registracijos adresą. Norėdami užsiregistruoti, užpildykite vartotojo vardą, slaptažodį ir el. Pašto adresą, po registracijos jums bus išsiųstas el. Laiškas. Norėdami suaktyvinti, vykdykite el. Laiške pateiktas instrukcijas.
b) Po sėkmingo aktyvinimo spustelėkite čia, kad prisijungtumėte. Numatytoji pakopa yra „Bendrijos tinklas“, ji palaiko 1 šliuzą (RHF2S001) ir 10 mazgų.
c) Įeikite į prietaisų skydelį -> Vartai, spustelėkite Pridėti šliuzą pradėkite pridėti šliuzą.
d) Pasirinkite Raspberry Pi 3
e) Nustatykite taip:
- Radijo priekinė dalis -> RHF2S001 868/915 MHz (SX1257)
- Autobusas -> SPI
f) Užpildykite savo RHF2S001 MAC adresą, kuris turėtų būti formatu b8: 27: eb: xx: xx: xx. Taip pat įveskite „Gateway“vietos informaciją.
g) Norėdami baigti registraciją, spustelėkite „Register Raspberry Pi gateway“.
h) Spustelėkite registruotą šliuzą, kad įeitumėte į konfigūracijos puslapį, rankiniu būdu perjunkite „Dažnio planą“, čia jūsų planas nustatomas pagal jūsų RHF2S001 tipo tipą, galimas planas yra CN470 , CN473 , CN434 , CN780 , EU868, pasirinkę atnaujinkite puslapį kad gautumėte tikslų kanalą. Šiame wiki mes pasirenkame EU868.
i) Vykdykite komandą glaisto terminale :
cd /home/rxhf/loriot/1.0.2
sudo systemctl sustabdyti 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.
2 žingsnis: „Loriot Server Connect Node“įrenginys
a) Gaukite galimus šliuzo kanalus
Dabartinius šliuzo kanalus galima gauti iš prietaisų skydelio -> Vartai -> Jūsų vartai, galite pamatyti galimus kanalus, kaip parodyta paveikslėlyje žemiau.
b) „Seeeduino LoRAWAN GPS“(RHF3M076) konfigūracija
Atidarykite „ArduinoIDE“serijinį monitorių, bakstelėkite žemiau esančią komandą.
+ch
Norėdami patvirtinti numatytąjį „Seeeduino_LoRAWAN“GPS kanalą, gausite 3 kanalus. Jei kanalo nėra, galite pakeisti „Seeeduino_LoRAWAN“kanalus naudodami toliau pateiktą komandą.
esant+ch = 0, 868,1
esant+ch = 1, 868,3 esant+ch = 2, 868,5
Tada vėl galite naudoti+ch, kad patikrintumėte.
c) Pridėkite „Seeeduino_LoRAWAN GPS“kaip „ABP NodeLog“Loriot serveryje, spustelėkite „Dash Board“-> „Applications“-> „SimpleApp“. Spustelėkite Import ABP , įvestį po elementais
- „DevAddr“: „Seeeduino_LoRAWAN GPS“gauna komandą „AT+ID“(Pastaba: „Loriot“nepalaiko dvitaškio jungties, ją reikia pašalinti rankiniu būdu)
- FCntUp : Nustatykite 1
- FCntDn : Nustatykite 1
- NWKSKEY : Numatytoji vertė 2B7E151628AED2A6ABF7158809CF4F3C
- APPSKEY : Numatytoji vertė 2B7E151628AED2A6ABF7158809CF4F3C
- EUI, DEVEUI, Seeeduino_LoRAWAN GPS gauna komandą „AT+ID“
Spustelėkite Importuoti įrenginį, kad užbaigtumėte įrenginio importavimą. Dabar pasirinkite Dashboard-> Applications -> SampleApp, pamatysite naują ką tik pridėtą ABP Node.
d) Siųsti duomenis iš „Seeeduino_LoRAWAN“
DĖMESIO! Tai tik testas.
Grįžkite į serijinį „ArduinoIDE“monitorių, siųskite komandą:
AT+CMSGHEX = "0a 0b 0c 0d 0e"
Tada eikite į prietaisų skydelį -> Programos -> SampleApp -> Įrenginys, spustelėkite „Node Device EUI“arba „DevAddr“, čia rasite ką tik atsiųstus duomenis.
Daugiau informacijos rasite šiame wiki.
5 žingsnis: svetainės kūrimas
Susiję įrankiai
- virtualenv
- Python3
- Gunicornas
- Vadovas
- Nginx
- MySQL
Mes naudojame „CentOS7“kaip bandomąją diegimo aplinką
virtualenv
Naudokite virtualenv, kad sukurtumėte savarankišką „python3“gamybos aplinką
a) įdiegti
pip install virtualenv
b) sukurkite „python3“virtualią aplinką
virtualenv -p python3 iotea
c) paleiskite virtualią aplinką ir įveskite iotea katalogą
šaltinio bin/suaktyvinti
d) egzistuoja aplinka
išjungti
Python3
a) įdiegti
yum įdiegti epel-release
yum įdiegti python36
b) įdiekite priklausomą biblioteką PyMySQL, DBUtils, Flask, websocket-client, configparser
pip įdiegti pymysql
pip install dbutils pip install kolba pip install websocket-client pip install configparser
Gunicornas
a) įdiegti („Python3“aplinkoje)
pip install gunicorn
b) vykdyti kolbos projektą („iotea“projektų kataloge)
gunicorn -w 5 -b 0.0.0.0:5000 programa: app
c) paleiskite „websocket-clint“, kad gautumėte loriot duomenų
gunicorn loriot: app
d) peržiūrėti Gunicorn proceso medį
pstree -ap | grep gunicorn
Vadovas
a) įdiegti (root vartotojas)
pip instaliavimo vadovas
b) generuoti konfigūracijos failus
echo_supervisord_conf> /etc/supervisord.conf
c) sukurti katalogą ir įvesti katalogo konfigūraciją
mkdir -p /etc/supervisor/conf.d
Redaguokite /etc/supervisord.conf ir pakeiskite failų lauką, esantį failo pabaigoje esančiame [include].
Atminkite, kad turite pašalinti „;“prieš šias dvi eilutes, tai yra komentaro simbolis.
[įtraukti]
Failai = /etc/supervisor/conf.d/*.conf
Priemonės įvesti /etc/supervisor/conf.d/. Šis konfigūracijos failas naudojamas kaip proceso konfigūracijos failas (prižiūrimas prižiūrėtojo).
d) gaunama konfigūracija („iotea“kataloge)
cp iotea.conf /etc/supervisor/conf.d/
cp loriot.conf /etc/supervisor/conf.d/
e) atvira iotea
superviosrctl reload #reload konfigūracijos failą
superviosrctl start loriot #open loriot data priėmimas superviosrctl start iotea #atidaryti iotea kolbos programą
f) kitos bendros operacijos
supervisorctl reload # iš naujo įkelkite konfigūracijos failą
supervorctl atnaujinimas supervisorctl start xxx supervorctl stop xxx supervorctl status xxx supervorctl help # view more command
Nginx
a) įdiegti
yum įdiegti -y nginx
b) konfigūracija
cp NginxIotea.conf /etc/nginx/conf.d/
c) paleiskite „Nginx“
systemctl start nginx.service
MySQL
a) susiję parametrai
user = 'root'
passwd = '1234' db = 'iotea' prievadas = 3306
b) byla
iotea_iotea.sql
c) konfigūracijos failas
db.ini
Rekomenduojamas:
„Ubuntu-Mate“diegimas sename/senstančiame nešiojamajame kompiuteryje: 7 žingsniai
„Ubuntu-Mate“diegimas sename/senstančiame nešiojamajame kompiuteryje: kas yra „Ubuntu-Mate“? Tai nemokama ir atviro kodo „Linux“platinimo sistema bei oficialus „Ubuntu“darinys. Vienintelis skirtumas tarp kitų „Ubuntu“OS yra tas, kad ji naudoja MATE darbalaukio aplinką kaip pagrindinį kompiuterį Kodėl aš pasirinkau šią OS
ESP32 Su E32-433T „LoRa“modulio pamoka - „LoRa Arduino“sąsaja: 8 žingsniai
ESP32 Su E32-433T „LoRa“modulio pamoka | „LoRa Arduino“sąsaja: Ei, kas vyksta, vaikinai! Akarsh čia iš „CETech“. Šis mano projektas sujungia „eByte“„E32 LoRa“modulį, kuris yra didelės galios 1 vatų siųstuvo-imtuvo modulis su ESP32, naudojant „Arduino IDE“. Mes supratome E32 veikimą paskutinėje pamokoje
Namų prietaisų valdymas per LoRa - „LoRa“namų automatikoje - „LoRa“nuotolinio valdymo pultas: 8 žingsniai
Valdykite buitinius prietaisus per LoRa | „LoRa“namų automatikoje | „LoRa“nuotolinis valdymas: valdykite ir automatizuokite savo elektros prietaisus iš didelių atstumų (kilometrų) be interneto. Tai įmanoma per LoRa! Ei, kas, vaikinai? Akarsh čia iš CETech. Šioje PCB taip pat yra OLED ekranas ir 3 relės, kurios
Matytas „IoTea LoRa“sprendimas (1811 atnaujinimas): 5 žingsniai
Matytas „IoTea LoRa“sprendimas (1811 atnaujinimas): „Internet+“dabar yra populiari sąvoka. Šį kartą mes išbandėme internetą ir žemės ūkį, kad sukurtume arbatos sodą, išauginančią interneto arbatą
Matytas „IoTea LoRa“sprendimas (su „Azure“, 1812 naujinimas): 5 žingsniai
Matytas „IoTea LoRa“sprendimas (su „Azure“, 1812 naujinimas): „Microsoft Azure“yra debesies paslauga, teikianti galingesnę ir stabilesnę skaičiavimo galią. Šį kartą bandėme į jį siųsti savo „IoTea“duomenis