
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

Tējas stādīšanai piemērota automātiska informācijas vākšanas sistēma. Tā ir daļa no viedās lauksaimniecības informācijas vākšanas.
1. darbība. Šajā projektā izmantotās lietas
Aparatūras komponenti
- Grove - oglekļa dioksīda sensors (MH -Z16)
- Grove - digitālais gaismas sensors
- Grove - putekļu sensors (PPD42NS)
- Grove-skābekļa sensors (ME2-O2-Ф20)
- Augsnes mitruma un temperatūras sensors
- LoRa LoRaWAN vārteja - 868 MHz komplekts ar Raspberry Pi 3
- Grove - Temp & Humi & Barometer sensors (BME280)
Programmatūras lietotnes un tiešsaistes pakalpojumi
Microsoft Visual Studio 2015
2. darbība: stāsts
Viedā lauksaimniecība ir izmantot lietu interneta tehnoloģiju tradicionālajai lauksaimniecībai, izmantojot sensorus un programmatūru, lai kontrolētu lauksaimniecības ražošanu, izmantojot mobilās vai datoru platformas, padarot tradicionālo lauksaimniecību “gudrāku”.
Mengdingas kalnā uz ziemeļaustrumiem no Jaņas, Sičuaņā, kalnu grēda iet zaļā jūrā uz rietumiem uz austrumiem. Šis ir vispazīstamākais skats 36 gadus vecajam Dengam, vienam no retajiem savas paaudzes Mengding tējas ražotājiem, ar 50 m (= 3,3 ha) plantāciju, kas atrodas 1100 m augstumā virs jūras līmeņa. Dengs nāk no tējas ražotāju ģimenes, taču ģimenes mantojuma saglabāšana nav viegls uzdevums. “Mūsu tējas tiek audzētas lielā augstumā bioloģiskā vidē, lai nodrošinātu tās izcilo kvalitāti. Bet tajā pašā laikā augšanas blīvums ir zems, izmaksas ir augstas un pumpuri ir nevienmērīgi, tāpēc tēju ir grūti novākt. Tāpēc augstkalnu tējas parasti ir nelielas ražas, un to vērtības netiek atspoguļotas tirgū.” Pēdējos divus gadus Dengs ir mēģinājis palielināt patērētāju izpratni par augstkalnu tēju, lai veicinātu to vērtību. Un, kad viņš satika Fanu, kurš meklēja plantāciju, lai ieviestu Seeed IoTea tehnoloģiju, tika panākta ideāla risinājuma atbilstība. Seeed IoTea risinājuma mērķis ir palīdzēt tējas audzētājiem labāk pārvaldīt stādījumus, nemainot tradicionālo tējas audzēšanas praksi, un atklātā platformā iesniegt reāllaika datus par stādījumiem.
IoTea, kas sastāv no sensoriem, mezgliem un vārtiem, apkopo reālā laika datus par faktoriem, kas var ietekmēt tējas kvalitāti audzēšanas un ražošanas procesā, tostarp temperatūru un mitrumu, CO2, O2, PM un gaismas iedarbību. Datus apkopo sensori, mezgli nosūta uz vārteju un galu galā mākoni, un tie ir pieejami galapatērētājiem tīmekļa vietnē.
3. darbība. Aparatūras savienojums
1. solis: vārtejas savienojums
Vārteja ir uzstādīta atsevišķi kastē. Ņemot vērā siltuma izkliedes problēmu, mēs pievienojām 2 ventilatorus. Viens ir paredzēts Raspberry Pi siltuma izkliedēšanai, otrs - iekšējai un ārējai gaisa cirkulācijai. Vārtejas kaste ir novietota zemnieka mājā, tāpēc mums nav jāapsver tā jaudas problēma.

2. solis: mezgla savienojums
Mezgls ir datu terminālis, un visi sākotnējie dati tiek iegūti no šejienes. Mezglam ir pievienoti 6 sensori. Papildus augsnes mitruma un temperatūras sensoram mēs ievietojam citus sensorus žalūziju kastē.


Mezgls ir ievietots ūdensnecaurlaidīgā kastē. Lai būtu labāks savienojums ar mezglu, mēs izgatavojam adaptera plāksni. Visbeidzot, mēs nodrošināsim šīs tāfeles shematisko lejupielādes saiti. Kā parādīts zemāk, sensoru kabeļi ir pievienoti adaptera plāksnei caur spaiļu blokiem. Mēs izmantojam 3 MOS lampas (SI2301), lai izveidotu slēdžu ķēdes, lai kontrolētu sensoru un ventilatora ieslēgšanu un izslēgšanu. Ventilators tiek izmantots atdzesēšanai. Uz tāfeles ir uzstādīts temperatūras sensors (DS18B20). Tas var mums pateikt kastes iekšējo temperatūru, un pēc tam mikrokontrolleris izlemj, vai ieslēgt ventilatoru. Mēs izmantojam vairākus rezistorus, lai izveidotu sprieguma dalītāja ķēdi svina-skābes akumulatora sprieguma mērīšanai. Visbeidzot, mēs rezervējam 3 IIC saskarnes un seriālo portu uz tāfeles vēlākai paplašināšanai un atkļūdošanai.

Parunāsim par mezgla barošanas problēmu. Mezgls tiek novietots tējas plantācijā nejauši, tāpēc tradicionālā barošanas metode vairs nav piemērojama. Saules enerģijas risinājuma izmantošana ir laba ideja. Pašlaik tirgū tiek piedāvāti daudzi risinājumi. Mēs varam izvēlēties vienu no tiem, kas atbilst mūsu vajadzībām. Mūsu izvēlētajā risinājumā ir 3 daļas: saules panelis, saules uzlādes kontrolieris un svina skābes akumulators. Lai labāk uztvertu saules enerģiju, mēs uzliekam saules paneli kronšteina augšpusē un noregulējam tā leņķi, lai tas būtu vērsts pret sauli. Mēs ievietojām saules uzlādes kontrolieri vienā kastē ar mezglu. Tā kā kastē nav papildu vietas, mums bija jāatrod jauna ūdensnecaurlaidīga kaste svina skābes akumulatora ievietošanai.



4. solis: programmatūras konfigurēšana
Mezgls
Šajā sadaļā mēs iepazīstināsim ar mezgla galvenokārt programmatūras konfigurāciju.
DataFormat
Mezgla augšupielādētie dati vārtejā:
neparakstīta zīme Lora_data [15] = {0, 1, 2, 3,, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
Katra datu bita nozīme:
Lora_data [0] : Gaisa temperatūra, ℃
Lora_data [1] : Gaisa mitrums, %
Lora_data [2] high Augstums augstumā astoņi, m
Lora_data [3] low Zemais augstums astoņi
Lora_data [4] : CO2 koncentrācija augsta astoņi, ppm
Lora_data [5] : CO2 koncentrācija zema astoņi
Lora_data [6] : Putekļu koncentrācija augsta astoņi, gab./0.01cf
Lora_data [7] low Putekļu koncentrācija zema astoņi
Lora_data [8] : Gaismas intensitāte augsta astoņi, lukss
Lora_data [9] : Gaismas intensitāte zema astoņi
Lora_data [10] : O2 koncentrācija, % (izejas dati dalīti ar 1000)
Lora_data [11] : Augsnes temperatūra, ℃
Lora_data [12] : Augsnes mitrums, %
Lora_data [13] : Akumulatora spriegums, v
Lora_data [14] : Sensoru kļūdas kods
Kļūdas kods:
Lora_data [14] = [bit7, bit6, bit5, bit4, bit3, bit2, bit1, bit0]
Katra bita nozīme:
bits 0: 1 ---- Temp & Humi & Barometer Sensor (BME280) kļūda
bits 1: 1 ---- Oglekļa dioksīda sensora (MH-Z16) kļūda
bits 2: 1 ---- Putekļu sensora (PPD42NS) kļūda
bits 3: 1 ---- Digitālā gaismas sensora kļūda
bits 4: 1 ---- skābekļa sensora (ME2-O2-Ф20) kļūda
bits 5: 1 ---- Augsnes mitruma un temperatūras sensora kļūda
6. bits: rezervēts
7. bits: rezervēts
Mēs esam izveidojuši Error_code_transform.exe, atveriet to un ievadiet kļūdas kodu heksadecimālā formā, un jūs ātri uzzināsit, kurš sensors ir kļūda. Lejupielādes saite ir šī raksta beigās.
Parametru pielāgošana: a) Datu pārraides cikls
// seeedtea.ino
#defineinterval_time 600 // sekunde
Šo parametru var mainīt, lai mainītu datu pārraides ciklu. Katrā ciklā datu iegūšana ilgst apmēram 1 minūti. Tāpēc nav ieteicams mainīt šo vērtību uz mazāk nekā 60 sekundēm.
b) Putekļu sensora iesildīšanās laiks
//seeedtea.ino
#definePreheat_time 30000 // DustSensor iesildīšanās laiks, milisekundes //Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s
c) Sprieguma koeficients
//POWER_Ctrl.cpp
#defineBattery_coefficient 0,159864 // ADC vērtība × Akumulatora koeficients = akumulatora spriegums #defineSolar_eefekts 0,22559 // ADC vērtība × Saules koeficients = saules spriegums
Šie divi parametri tiek aprēķināti, pamatojoties uz sprieguma dalītāja ķēdi.
d) Ventilatora atvēršanas temperatūras slieksnis
//POWER_Ctrl.cpp
#defineFan_start_temp 45 // temperatūras slieksnis #defineFan_start_light 500 // gaismas intensitāte
Kad faktiskā temperatūra pārsniedz slieksni, ventilators sāks atdzist.
e) O2 sensora inicializācijas parametrs
// Skābeklis.cpp
#defineO2_percentage 208.00 // 20.8%
f) Makro slēdzis
//seeedtea.ino
#defineLORA_RUN // Pēc komentāra Lora inicializācija un datu pārraide tiks pārtraukta *** DS18B20 vadības režīms **********************/ #defineSlower_Mode // Lēnais režīms temperatūras maiņai. Komentārs ir ātrs režīms
g) Tapu kartēšana
D2: LED indikators un ārējais atiestatīšanas mikrokontrolleris IIC: SCL un SDA
// Putekļu_cits.h
#defineDust_pin 3 // Putekļu sensors //CO2.cpp #defineCO2_serial Serial1 // izmantojiet aparatūras portu (D0 & D1) //seeedtea.ino #definedataPin 6 // Augsnes datu tapa #defineclockPin 7 // Augsnes pulksteņa tapa // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Ventilators #defineAir_CtrlPin 10 // Vadības tapa sensoriem, kas ievietoti žalūzijās #defineSoil_CtrlPin 11 // Augsnes mitruma un temperatūras sensora slēdža tapa #defineBattery_pin A2 // Mērīt akumulatora spriegumu #pin /Saules paneļa sprieguma mērīšana // Skābeklis.h #defineO2_pin A1 // O2 sensors
h) Sargsuņa taimeris
Sargsuņa taimeris tiek izmantots, lai uzraudzītu sistēmas darbības statusu. Ja sistēma darbojas neparasti, mezgls tiks atiestatīts, lai tas varētu ilgstoši darboties.
Bibliotēka, uz kuru atsaukties:
- Adafruit_SleepyDog.h ir pievienots projektam
- Adafruit_ASFcore-master.zip ir iepakots mapē projekts, un tas manuāli jāpievieno Arduino IDE.
Saistītās funkcijas:
Iespējot sargsuņa darbību
int WatchdogSAMD:: iespējot (int maxPeriodMS, bool isForSleep)
Ievades parametri:
Int maxPeriodMS: gaidīšanas laiks milisekundēs. Maksimālais pieļaujamais ir 16000 milisekundes.
atgriešanās vērtība:
Int tips, atgrieziet faktisko gaidīšanas laiku
Atjaunot sargsuņa darbību
void WatchdogSAMD:: atiestatīt ()
Zvaniet šai funkcijai, lai atiestatītu sargsuņa taimeri, ko dēvē par "suņa barošanu". Pārsniedzot gaidīšanas laiku bez atiestatīšanas, mezgls tiks restartēts.
Stop sargsuns
void WatchdogSAMD:: atspējot ()
Vārteja
Šajā sadaļā mēs iepazīstināsim ar savienojumu ar Loriot serveri.
1. darbība: Loriot servera vārtejas reģistrācija
a) Jaunajam lietotājam vispirms ir jāreģistrē konts, noklikšķiniet uz reģistrācijas adreses. Lai reģistrētos, ievadiet lietotājvārdu, paroli un e -pasta adresi, pēc reģistrācijas jums tiks nosūtīts e -pasts. Lai aktivizētu, lūdzu, izpildiet e -pastā sniegtos norādījumus.
b) Pēc veiksmīgas aktivizācijas noklikšķiniet šeit, lai pieteiktos. Noklusējuma līmenis ir “Kopienas tīkls”, tas atbalsta 1 vārteju (RHF2S001) un 10 mezglus.
c) Ievadiet informācijas paneli -> vārteja, noklikšķiniet uz Pievienot vārteju, lai pievienotu vārteju.
d) Atlasiet Raspberry Pi 3
e) iestatiet šādi:
- Radio priekšpuse -> RHF2S001 868/915 MHz (SX1257)
- BUS -> SPI
f) Aizpildiet sava RHF2S001 MAC adresi, un tai jābūt formātā b8: 27: eb: xx: xx: xx. Un arī ievadiet vārtejas atrašanās vietas informāciju.
g) Lai pabeigtu reģistrāciju, noklikšķiniet uz “Reģistrēt Raspberry Pi vārteju”.

h) Noklikšķiniet uz reģistrētās vārtejas, lai atvērtu konfigurācijas lapu, manuāli pārslēdziet “Frekvenču plānu”, jūsu plānu šeit nosaka jūsu RHF2S001 tipa veids, pieejamais plāns ir CN470, CN473, CN434, CN780, EU868, pēc atlasīšanas, lūdzu, atsvaidziniet lapu lai iegūtu precīzu kanālu. Šajā wiki mēs izvēlamies EU868.
i) Izpildiet komandu špakteles terminālī :
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.

2. darbība: ierīce Loriot Server Connect Node
a) Iegūstiet pieejamos vārtejas kanālus
Pašreizējos vārtejas kanālus var iegūt no informācijas paneļa -> vārteja -> jūsu vārteja, pieejamos kanālus varat redzēt, kā parādīts attēlā.

b) Seeeduino LoRAWAN GPS (RHF3M076) konfigurācija
Atveriet ArduinoIDE sērijas monitoru, pieskarieties zemāk esošajai komandai.
pie+ch
Lai apstiprinātu sava Seeeduino_LoRAWAN GPS noklusējuma kanālu, jūs iegūsit 3 kanālus. Ja nav pieejams neviens kanāls, varat mainīt Seeeduino_LoRAWAN kanālus, izmantojot tālāk norādīto komandu.
pie+ch = 0, 868,1
pie+ch = 1, 868,3 pie+ch = 2, 868,5
Pēc tam varat vēlreiz izmantot+ch, lai pārbaudītu.
c) Pievienojiet Seeeduino_LoRAWAN GPS kā ABP NodeLog Loriot serverī, noklikšķiniet uz Dash Board -> Applications -> SimpleApp. Zem vienumiem noklikšķiniet uz Importēt ABP ievadi
- DevAddr: Seeeduino_LoRAWAN GPS nokļūst caur komandu "AT+ID" (piezīme: Loriot neatbalsta resnās zarnas savienotāju, nepieciešams noņemt manuāli)
- FCntUp : Iestatiet 1
- FCntDn : Iestatiet 1
- NWKSKEY : Noklusējuma vērtība 2B7E151628AED2A6ABF7158809CF4F3C
- APPSKEY : Noklusējuma vērtība 2B7E151628AED2A6ABF7158809CF4F3C
- EUI, DEVEUI, Seeeduino_LoRAWAN GPS, izmantojot komandu "AT+ID"

Lai pabeigtu ierīces importēšanu, noklikšķiniet uz pogas Importēt ierīci. Tagad izvēlieties Dashboard-> Applications -> SampleApp, un jūs redzēsiet tikko pievienoto ABP Node.

d) Nosūtiet datus no Seeeduino_LoRAWAN
UZMANĪBU! Tas ir tikai pārbaudījums.
Atpakaļ uz ArduinoIDE sērijas monitoru, nosūtiet komandu:
AT+CMSGHEX = "0a 0b 0c 0d 0e"
Pēc tam dodieties uz Dashboard -> Applications -> SampleApp -> Device, noklikšķiniet uz Node Device EUI vai DevAddr, šeit atradīsit tikko nosūtītos datus.

Lai iegūtu sīkāku informāciju, lūdzu, skatiet šo wiki.
5. solis: vietnes izveide
Saistītie rīki
- virtualenv
- Python3
- Gunicorn
- Uzraugs
- Nginx
- MySQL
Mēs izmantojam CentOS7 kā testa izvietošanas vidi
virtualenv
Izmantojiet virtualenv, lai izveidotu atsevišķu python3 ražošanas vidi
a) instalēt
pip instalēt virtualenv
b) izveidot python3 virtuālo vidi
virtualenv -p python3 iotea
c) palaidiet virtuālo vidi un ievadiet iotea direktoriju
avota tvertne/aktivizēt
d) pastāv vide
deaktivizēt
Python3
a) instalēt
yum instalēt epel-release
yum instalēt python36
b) instalējiet atkarīgo bibliotēku PyMySQL, DBUtils, Flask, websocket-client, configparser
pip instalēt pymysql
pip instalēt dbutils pip instalēt kolbu pip instalēt websocket-client pip install configparser
Gunicorn
a) instalēt (Python3 vidē)
pip instalēt gunicorn
b) palaist kolbas projektu (saskaņā ar iotea projektu direktoriju)
gunicorn -w 5 -b 0.0.0.0:5000 lietotne: lietotne
c) palaist websocket-clint, lai iegūtu loriot datus
gunicorn loriot: lietotne
d) apskatīt Gunicorn procesa koku
pstree -ap | grep gunicorn
Uzraugs
a) instalēt (root lietotājs)
pip instalēšanas uzraugs
b) ģenerēt konfigurācijas failus
echo_supervisord_conf> /etc/supervisord.conf
c) izveidot direktoriju un ieviest direktorija konfigurāciju
mkdir -p /etc/supervisor/conf.d
Rediģējiet /etc/supervisord.conf un mainiet failu lauku zem [iekļaut] faila beigās.
Ņemiet vērā, ka ir jānoņem ';' šo divu rindu priekšā, kas ir komentāra raksturs.
[iekļaut]
Faili = /etc/supervisor/conf.d/*.conf
Līdzekļi, lai ieviestu /etc/supervisor/conf.d/. Sekojošais konfigurācijas fails tiek izmantots kā procesa konfigurācijas fails (uzrauga vadītājs).
d) ienākošā konfigurācija (iotea direktorijā)
cp iotea.conf /etc/supervisor/conf.d/
cp loriot.conf /etc/supervisor/conf.d/
e) atvērta iotea serve
superviosrctl reload #reload konfigurācijas failu
superviosrctl start loriot #open loriot datu uztveršana superviosrctl start iotea #atveriet iotea kolbas lietojumprogrammu
f) citas kopīgas darbības
supervisorctl reload # atkārtoti ielādējiet konfigurācijas failu
supervisorctl atjaunināšana supervorctl start xxx supervorctl stop xxx supervorctl statuss xxx supervorctl palīdzība # skatīt vairāk komandu
Nginx
a) instalēt
yum instalēt -y nginx
b) konfigurācija
cp NginxIotea.conf /etc/nginx/conf.d/
c) palaidiet Nginx
systemctl start nginx.service
MySQL
a) saistītie parametri
lietotājs = 'root'
passwd = '1234' db = 'iotea' ports = 3306
b) fails
iotea_iotea.sql
c) konfigurācijas fails
db.ini
Ieteicams:
Gaismas piesārņojuma risinājums - Artēmijs: 14 soļi

Gaismas piesārņojuma risinājums - Artēmijs: Gaismas piesārņojums ietekmē mūs visus visā pasaulē. Kopš spuldzes izgudrošanas gaisma ir kļuvusi daudz populārāka un īpaši izmantota tādās lielajās pilsētās kā Ņujorka un Čikāga. Visa šī gaisma var ietekmēt
IOT risinājums koplietošanas velosipēdam: 6 soļi

IOT risinājums koplietošanas velosipēdam: Koplietošanas velosipēds mūsdienās ir ļoti populārs Ķīnā. Tirgū ir vairāk nekā 10 koplietošanas velosipēdu zīmoli, un “ mobike ” ir slavenākais, tam ir vairāk nekā 100 miljoni reģistrētu lietotāju, un tas ir izplatījies arī citās pilsētās
Redzēts IoTea LoRa risinājums (1811. atjauninājums): 5 soļi

Redzēts IoTea LoRa risinājums (1811. atjauninājums): Internets+ tagad ir populārs jēdziens. Šoreiz mēs izmēģinājām internetu un lauksaimniecību, lai izveidotu tējas dārzu, kas izaudzē interneta tēju
Redzēts IoTea LoRa risinājums (ar Azure, 1812 atjauninājums): 5 soļi

Redzēts IoTea LoRa risinājums (ar Azure, 1812. atjauninājums): Microsoft Azure ir mākoņa pakalpojums, kas nodrošina jaudīgāku un stabilāku skaitļošanas jaudu. Šoreiz mēs mēģinājām uz to nosūtīt savus IoTea datus
Redzēts Studio CAN -BUS V2.0 Datorurķēšana - Darba sākšana: 5 soļi

Redzēts Studio CAN -BUS V2.0 Datorurķēšana - Darba sākšana: Šī pamācība ir paredzēta iesācējiem, kuri jau zina savu ceļu apkārt Arduino. Sākotnējā zināšana, kā sākt darbu, jebkurā projektā vienmēr ir sāpīga un laikietilpīga. Bet līdz brīdim, kad apzinies savu ceļu, gandrīz vienmēr vēlies, lai tev būtu kāds, ar ko apieties