Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bagay na Ginamit sa Project na Ito
- Hakbang 2: Kwento
- Hakbang 3: Koneksyon sa Hardware
- Hakbang 4: Pag-configure ng Software
- Hakbang 5: Paggawa ng Website
Video: Nakitang LoRa IoTea Solution: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Isang awtomatikong sistema ng pagkolekta ng impormasyon na inilapat sa plantasyon ng tsaa. Bahagi ito ng kolektibong impormasyon sa pang-agrikultura.
Hakbang 1: Mga Bagay na Ginamit sa Project na Ito
Mga bahagi ng hardware
- Grove - Carbon Dioxide Sensor (MH-Z16)
- Grove - Digital Light Sensor
- Grove - Dust Sensor (PPD42NS)
- Grove - Oxygen Sensor (ME2-O2-Ф20)
- Soil Moisture & Temperature Sensor
- LoRa LoRaWAN Gateway - 868MHz Kit na may Raspberry Pi 3
- Grove - Temp & Humi & Barometer Sensor (BME280)
Mga software app at serbisyong online
Microsoft Visual Studio 2015
Hakbang 2: Kwento
Ang Smart agrikultura ay upang ilapat ang teknolohiya ng Internet of Things sa tradisyunal na agrikultura, gamit ang mga sensor at software upang makontrol ang paggawa ng agrikultura sa pamamagitan ng mga platform sa mobile o computer, na ginagawang mas matalino ang tradisyunal na agrikultura.
Sa Mengding Mountain hilagang-silangan ng Ya’an, Sichuan, ang bundok ng bundok ay tumatakbo sa kanluran hanggang silangan sa isang dagat na berde. Ito ay isang pamilyar na paningin para sa 36-taong-gulang na Deng, isa sa napakakaunting mga gumagawa ng tsaa ng Mengding ng kanyang henerasyon, na may isang plantasyon ng 50mu (= 3.3 hectares) na matatagpuan sa 1100m sa itaas na antas ng dagat. Ang Deng ay nagmula sa isang pamilya ng mga gumagawa ng tsaa, ngunit ang pagdala ng pamana ng pamilya ay hindi isang madaling gawain. "Ang aming mga tsaa ay lumaki sa mataas na altitude sa isang organikong kapaligiran upang matiyak ang mahusay na kalidad nito. Ngunit sa parehong oras, ang density ng paglago ay mababa, mataas ang gastos at hindi pantay ang pamumulaklak, na ginagawang mahirap anihin ang tsaa. Iyon ang dahilan kung bakit ang mga mataas na bundok na tsaa ay maliit na pag-aani at ang kanilang mga halaga ay hindi makikita sa merkado. " Sa nagdaang dalawang taon, sinusubukan ni Deng na itaas ang kamalayan ng mga mamimili sa mataas na bundok na tsaa upang maitaguyod ang kanilang halaga. At nang makilala niya si Fan, na naghahanap ng isang plantasyon upang maipatupad ang teknolohiya ng IoTea ng Seeed, isang perpektong tugma para sa isang solusyon ang nagawa. Nilalayon ng Seeed IoTea Solution na tulungan ang mga magsasaka ng tsaa na mas mahusay na pamahalaan ang mga plantasyon nang hindi binabago ang tradisyunal na kasanayan sa paglilinang ng tsaa, at upang ipakita ang real-time na data sa kapaligiran mula sa mga plantasyon sa isang bukas na platform.
Na binubuo ng mga sensor, node, at gateway, kinokolekta ng IoTea ang real-time na data ng mga kadahilanan na maaaring makaapekto sa kalidad ng tsaa sa panahon ng paglilinang at mga proseso ng produksyon, kabilang ang temperatura at halumigmig, CO2, O2, PM, at light expose. Ang data ay nakolekta ng mga sensor, ipinadala ng mga node sa gateway at kalaunan sa cloud, at ginagawang ma-access upang wakasan ang mga customer sa isang webpage.
Hakbang 3: Koneksyon sa Hardware
Hakbang1: Koneksyon sa Gateway
Ang gateway ay naka-install nang magkahiwalay sa isang kahon. Isinasaalang-alang ang problema sa pagwawaldas ng init, nagdagdag kami ng 2 tagahanga. Ang isa ay para sa pagwawaldas ng init ng Raspberry Pi, ang isa pa ay para sa panloob at panlabas na sirkulasyon ng hangin. Ang kahon ng gateway ay inilalagay sa bahay ng isang magsasaka, kaya hindi namin kailangang isaalang-alang ang problema sa kuryente nito.
Hakbang2: Koneksyon sa Node
Ang node ay terminal ng data, at lahat ng mga orihinal na data ay nakuha mula dito. Mayroong 6 na mga sensor na konektado sa node. Bilang karagdagan sa lupa na kahalumigmigan at temperatura sensor, inilalagay namin ang iba pang mga sensor sa loob ng louver box.
Ang node ay inilalagay sa isang kahon na hindi tinatagusan ng tubig. Upang magkaroon ng isang mas mahusay na koneksyon sa node, gumawa kami ng isang adapter board. Sa huli, ibibigay namin ang link sa pag-download ng eskematiko ng board na ito. Tulad ng ipinakita sa ibaba, ang mga cable ng sensor ay naka-plug sa adapter board sa pamamagitan ng mga bloke ng terminal. Gumagamit kami ng 3 MOS tubes (SI2301) upang bumuo ng mga switch ng switch upang makontrol ang pag-on at pag-off ng mga sensor at bentilador. Ginagamit ang fan upang magpalamig. Mayroon kaming isang sensor ng temperatura (DS18B20) na naka-mount sa pisara. Maaari nitong sabihin sa amin ang panloob na temperatura ng kahon, at pagkatapos ay magpasya ang microcontroller kung i-on ang fan. Gumagamit kami ng maraming mga resistors upang makagawa ng isang circuit ng divider ng boltahe upang masukat ang boltahe ng lead-acid na baterya. Sa wakas, nakareserba kami ng 3 mga interface ng IIC at serial port sa board para sa paglaon ng pagpapalawak at pag-debug.
Pag-usapan natin ang tungkol sa problema sa supply ng kuryente ng node. Ang node ay inilalagay sa plantasyon ng tsaa nang sapalaran, kaya't ang tradisyunal na pamamaraan ng supply ng kuryente ay hindi na naaangkop. Ang paggamit ng isang solusyon sa solar power ay isang magandang ideya. Maraming mga solusyon na ibinigay sa merkado sa kasalukuyan. Maaari kaming pumili ng isa sa mga ito na nakakatugon sa aming mga pangangailangan. Mayroong 3 mga bahagi sa solusyon na pinili namin: solar panel, solar charge controller at lead acid na baterya. Upang makuha nang mas mahusay ang solar enerhiya, inilalagay namin ang solar panel sa tuktok ng bracket at ayusin ang anggulo nito upang matiyak na nakaharap ito sa araw. Inilagay namin ang solar charge controller sa parehong kahon na may node. Dahil walang labis na puwang sa loob ng kahon, kailangan naming maghanap ng isang bagong kahon na hindi tinatagusan ng tubig upang mailagay ang baterya ng lead acid.
Hakbang 4: Pag-configure ng Software
Node
Sa seksyong ito, ipakikilala namin ang pangunahing pagsasaayos ng software ng node.
DataFormat
Ang data na na-upload ng node sa gateway:
unsigned char Lora_data [15] = {0, 1, 2, 3,, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
Kahulugan ng bawat bit ng data:
Lora_data [0] : Temperatura ng hangin, ℃
Lora_data [1] : Kahalumigmigan ng hangin,%
Lora_data [2] : Altitude mataas na m, m
Lora_data [3] : Altitude mababang walo
Lora_data [4] : konsentrasyon ng CO2 mataas na walo, ppm
Lora_data [5] : konsentrasyon ng CO2 mababa sa walo
Lora_data [6] : Dust konsentrasyon mataas na walo, pcs / 0.01cf
Lora_data [7] : Ang konsentrasyon ng alikabok ay mababa sa walo
Lora_data [8] : Banayad na intensidad mataas na walo, lux
Lora_data [9] : Banayad na tindi mababa sa walo
Lora_data [10] : O2 konsentrasyon,% (hilaw na data na hinati ng 1000)
Lora_data [11] : Temperatura ng lupa, ℃
Lora_data [12] : Halumigmig ng lupa,%
Lora_data [13] : Boltahe ng baterya, v
Lora_data [14] : Code ng error sa mga sensor
Error code:
Lora_data [14] = [bit7, bit6, bit5, bit4, bit3, bit2, bit1, bit0]
Kahulugan ng bawat piraso:
bit 0: 1 ---- Error sa Temp & Humi & Barometer Sensor (BME280)
bit 1: 1 ---- Error sa Carbon Dioxide Sensor (MH-Z16)
bit 2: 1 ---- Dust Sensor (PPD42NS. error
bit 3: 1 ---- Error sa Digital Light Sensor
bit 4: 1 ---- Oxygen Sensor (ME2-O2-Ф20) error
bit 5: 1 ---- Error sa Soil Moisture at Temperature Sensor
bit 6: Nakareserba
bit 7: Nakareserba
Gumawa kami ng isang Error_code_transform.exe, buksan ito at mag-input ng error code sa hexadecimal, mabilis mong malalaman kung aling sensor ang error. Ang link sa pag-download ay nasa pagtatapos ng artikulong ito.
Pagsasaayos ng parameter: a) Siklo ng paghahatid ng data
// seeedtea.ino
#defineinterval_time 600 // segundo
Ang parameter na ito ay maaaring iba-iba upang baguhin ang cycle ng paghahatid ng data. Sa bawat pag-ikot, tumatagal ng 1 minuto ang pagkuha ng data. Kaya, hindi inirerekumenda na baguhin ang halagang ito sa mas mababa sa 60 segundo.
b) Oras ng pag-init ng dust sensor
//seeedtea.ino
#definePreheat_time 30000 // DustSensor warm-up time, milliseond //Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s
c) Coefficient ng boltahe
//POWER_Ctrl.cpp
#defineBattery_coefficient 0.159864 // halaga ng ADC × Battery_coefficient = baterya_voltage #defineSolar_coefficient 0.22559 // Halaga ng ADC × Solar_coefficient = solar_voltage
Ang dalawang mga parameter na ito ay kinakalkula batay sa boltahe divider circuit.
d) Ang threshold ng temperatura ng pagbubukas ng fan
//POWER_Ctrl.cpp
#defineFan_start_temp 45 // temperaturethreshold #defineFan_start_light 500 // light intensity
Kapag lumagpas sa aktwal na temperatura ang threshold, magsisimulang lumamig ang fan.
e) Parameter ng simula ng O2 sensor
//Oxygen.cpp
# kahuluganO2_percentage 208.00 //20.8%
f) Macro switch
//seeedtea.ino
#defineLORA_RUN // Matapos ang komento, ang pagpapasimula ng Lora at paghahatid ng data ay titigil sa #defineSENSOR_RUN // Matapos ang komento, hihinto sa pagtatrabaho ang mga externalsensors //POWER_Ctrl.cpp #defineFAN_ON // Fortesting lamang, kailangang i-comment ang praktikal na aplikasyon / **** *** Mode ng kontrol ng DS18B20 ********************* / #defineSlower_Mode // Mabagal na mode upang mapansin ang temperatura. Ang puna sa labas ay mabilis na mode
g) Pagma-map ng pin
D2: LED tagapagpahiwatig at panlabas na pag-reset ng microcontrollerIIC: SCL at SDA
//Dust_other.h
#defineDust_pin 3 // Dust sensor //CO2.cpp # kahuluganCO2_serial Serial1 // gumamit ng hardwareserial port (D0 & D1) //seeedtea.ino #definedataPin 6 // Pin ng data ng lupa #defineclockPin 7 // Pin ng orasan ng lupa // POWER_Ctrl. h # defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Fan #defineAir_CtrlPin 10 // Control pin para sa mga sensor na nakalagay sa louverbox #defineSoil_CtrlPin 11 // Soil Moisture & Temperature Sensor switch pin #defineBattery_pin A2 // Sukatin ang boltahe ng baterya #defineBattery_pin A2 // Sukatin ang boltahe ng baterya #defineBattery_pin A2 // Sukatin ang boltahe ng baterya / Sukatin ang solar panelvoltage //Oxygen.h # tukuyinO2_pin A1 // O2 sensor
h) timer ng Watchdog
Ginagamit ang timer ng bantay upang subaybayan ang katayuan ng pagpapatakbo ng system. Kapag ang sistema ay tumatakbo nang hindi normal, ang node ay mare-reset, upang maaari itong magpatakbo ng tuloy-tuloy sa isang mahabang panahon.
Ang sanggunian na isangguni:
- Ang Adafruit_SleepyDog.h ay naidagdag sa proyekto
- Ang Adafruit_ASFcore-master.zip ay nakabalot sa folder ng proyekto at kailangang manu-manong maidagdag sa Arduino IDE.
Mga kaugnay na pag-andar:
Paganahin ang tagapagbantay
int WatchdogSAMD:: paganahin (int maxPeriodMS, bool isForSleep)
Mga parameter ng pag-input:
Int maxPeriodMS: Naghihintay ng oras sa milliseconds. Ang maximum na pinapayagan ay 16000 milliseconds.
halaga ng pagbalik:
Int type, ibalik ang aktwal na oras ng paghihintay
I-reset ang bantay
walang bisa WatchdogSAMD:: i-reset ()
Tawagin ang pagpapaandar na ito upang i-reset ang timer ng tagapagbantay, tinukoy bilang "pagpapakain sa aso." Ang labis na oras ng paghihintay nang hindi na-reset ay magiging sanhi ng pag-restart ng node.
Itigil ang tagapagbantay
walang bisa WatchdogSAMD:: huwag paganahin ()
Gateway
Sa seksyong ito ay ipakikilala namin kung paano kumonekta sa Loriot server.
Hakbang1: Pagrehistro sa Loriot Server Gateway
a) Kailangang magrehistro muna ang isang bagong gumagamit, mag-click sa pagpaparehistro ng address. Punan ang UserName, Password at email address upang magparehistro, pagkatapos ng pagpaparehistro isang email ang ipapadala sa iyo, mangyaring sundin ang tagubilin sa email upang maisaaktibo.
b) Matapos ang matagumpay na pag-aktibo, mag-click dito upang mag-log in. Ang default na baitang ay "Community Network", sinusuportahan nito ang 1 Gateway (RHF2S001) at 10 node.
c) Ipasok ang Dashboard -> Gateway, i-click ang Magdagdag ng pagsisimula ng Gateway upang magdagdag ng Gateway.
d) Piliin ang Raspberry Pi 3
e) Itakda bilang sa ibaba:
- Front-end ng radyo -> RHF2S001 868/915 MHz (SX1257)
- BUS -> SPI
f) Punan ang MAC address ng iyong RHF2S001, dapat ay nasa format ng b8: 27: eb: xx: xx: xx. At i-input din ang impormasyon sa Lokasyon ng Gateway.
g) I-click ang "Magrehistro ng Raspberry Pi gateway" upang tapusin ang pagpaparehistro.
h) I-click ang nakarehistrong gateway upang ipasok ang pahina ng pagsasaayos, manu-mano ang paglipat ng "Plano ng Frequency", ang iyong plano dito ay napagpasyahan ng uri ng iyong uri na RHF2S001, ang magagamit na plano ay CN470, CN473, CN434, CN780, EU868, pagkatapos ng napiling mangyaring i-refresh ang pahina upang makuha ang eksaktong channel. Sa wiki na ito pipiliin namin ang EU868.
i) Patakbuhin ang utos sa masilya terminal :
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.
Hakbang2: Loriot Server Connect Node aparato
a) Kunin ang magagamit na mga channel sa gateway
Ang mga kasalukuyang gateway channel ay maaaring makuha mula sa Dashboard -> Gateway -> Iyong Gateway, maaari mong makita ang mga magagamit na mga channel tulad ng larawan sa ibaba.
b) Seeeduino LoRAWAN GPS (RHF3M076) Configuration
Buksan ang serial monitor ng ArduinoIDE, i-tap ang utos sa ibaba.
sa + ch
Upang kumpirmahin ang default na channel ng iyong Seeeduino_LoRAWAN GPS, makakakuha ka ng 3 mga channel. Kung walang magagamit na channel, maaari mong baguhin ang mga channel ng Seeeduino_LoRAWAN sa pamamagitan ng utos sa ibaba.
sa + ch = 0, 868.1
sa + ch = 1, 868.3 sa + ch = 2, 868.5
Pagkatapos ay maaari mong gamitin muli sa + ch upang suriin.
c) Idagdag ang Seeeduino_LoRAWAN GPS bilang isang ABP NodeLog sa Loriot server, I-click ang Dash Board -> Mga Aplikasyon -> SimpleApp. I-click ang Mag-import ng ABP, pag-input sa ibaba ng mga item
- DevAddr: Nakuha ng Seeeduino_LoRAWAN GPS ang utos na "AT + ID" (Tandaan: Hindi sinusuportahan ng Loriot ang konektor ng colon, kailangan ng manwal na pag-alis)
- FCntUp : Setto 1
- FCntDn : Setto 1
- NWKSKEY : Defaultvalue 2B7E151628AED2A6ABF7158809CF4F3C
- APPSKEY : Defaultvalue 2B7E151628AED2A6ABF7158809CF4F3C
- Ang EUI : DEVEUI, Seeeduino_LoRAWAN GPS ay dumaan sa utos na "AT + ID"
I-click ang pindutang I-import ang Device upang tapusin ang pag-import ng aparato. Piliin ngayon ang Dashboard-> Mga Application -> SampleApp, makikita mo ang bagong ABP Node na naidagdag mo lang.
d) Magpadala ng data mula sa Seeeduino_LoRAWAN
ATTENTION! Ito ay pagsubok lamang.
Bumalik sa serial monitor ng ArduinoIDE, magpadala ng utos:
AT + CMSGHEX = "0a 0b 0c 0d 0e"
Pagkatapos ay pumunta sa Dashboard -> Mga Application -> SampleApp -> Device, i-click ang Node Device EUI o DevAddr, mahahanap mo ang data na ipinadala mo rito.
Para sa mga detalye, mangyaring sumangguni sa wiki na ito.
Hakbang 5: Paggawa ng Website
Mga Kaugnay na Tool
- virtualenv
- Python3
- Gunicorn
- Superbisor
- Nginx
- MySQL
Ginagamit namin ang CentOS7 bilang pagsubok sa kapaligiran
virtualenv
Gumamit ng virtualenv upang bumuo ng isang nakapag-iisang kapaligiran sa produksyon ng python3
a) i-install
pip install virtualenv
b) lumikha ng isang python3 virtual na kapaligiran
virtualenv -p python3 iotea
c) simulan ang virtual na kapaligiran at ipasok ang direktoryo ng iotea
pinagmulan bin / buhayin
d) umiiral na kapaligiran
huwag paganahin
Python3
a) i-install
yum install ng epel-release
yum install python36
b) i-install ang umaasa sa library ng PyMySQL, DBUtils, Flask, websocket-client, configparser
pip install pymysql
pip install dbutils pip install flask pip install websocket-client pip install configparser
Gunicorn
a) i-install (sa ilalim ng kapaligiran ng Python3)
pip install ng gunicorn
b) patakbuhin ang proyekto ng flask (sa ilalim ng direktoryo ng proyekto ng iotea)
gunicorn -w 5 -b 0.0.0.0ubre000 app: app
c) patakbuhin ang websocket-clint upang makakuha ng loriot data
gunicorn loriot: app
d) tingnan ang puno ng proseso ng Gunicorn
pstree -ap | grep gunicorn
Superbisor
a) i-install (root user)
pip install supervisor
b) bumuo ng mga config file
echo_supervisord_conf> /etc/supervisord.conf
c) lumikha ng isang direktoryo at ipakilala ang isang pagsasaayos ng direktoryo
mkdir -p /etc/supervisor/conf.d
I-edit /etc/supervisord.conf at baguhin ang patlang ng mga file sa ilalim ng [isama] sa dulo ng file.
Tandaan na kailangan mong alisin ang ';' sa harap ng dalawang linya na ito, na kung saan ay ang character na komento.
[isama]
Mga file = /etc/supervisor/conf.d/*.conf
Nangangahulugan upang ipakilala ang /etc/supervisor/conf.d/. Ang sumusunod na file ng pagsasaayos ay ginagamit bilang file ng pagsasaayos ng proseso (sinusubaybayan ng superbisor).
d) papasok na pagsasaayos (sa ilalim ng direktoryo ng iotea)
cp iotea.conf /etc/supervisor/conf.d/
cp loriot.conf /etc/supervisor/conf.d/
e) buksan ang iotea ihain
superviosrctl reload # muling i-load ang file ng pagsasaayos
superviosrctl simulan loriot # buksan loriot data pagtanggap superviosrctl simulan iotea # buksan ang iotea flask application
f) iba pang mga karaniwang operasyon
supervisorctl reload # i-reload ang file ng pagsasaayos
supervisorctl update supervisorctl start xxx supervisorctl stop xxx supervisorctl status xxx supervisorctl help # tingnan ang higit pang utos
Nginx
a) i-install
yum install -y nginx
b) pagsasaayos
cp NginxIotea.conf /etc/nginx/conf.d/
c) simulan ang Nginx
systemctl start nginx.service
MySQL
a) mga kaugnay na parameter
gumagamit = 'ugat'
passwd = '1234' db = 'iotea' port = 3306
b) file
iotea_iotea.sql
c) pagsasaayos ng file
db.ini
Inirerekumendang:
SASSIE: ang System para sa Awkward Silence Solution at Interaction Enhancer: 5 Hakbang
SASSIE: ang Sistema para sa Awkward Silence Solution at Pakikipag-ugnay sa Pakikipag-ugnay: Ang SASSIE ay ang sagot sa tanong na tinanong nating lahat sa ating sarili sa isang mahirap na katahimikan sa isang punto sa ating buhay, "Sumasalita ba ako sa susunod?" Ngayon hindi ka na mag-alala dahil ang SASSIE ay partikular na idinisenyo upang makilala ang isang mahirap na katahimikan,
IOT Solution para sa Pagbabahagi ng Bisikleta: 6 na Hakbang
IOT Solution para sa Sharing Bike: Ang pagbabahagi ng bisikleta ay napakapopular sa Tsina sa mga panahong ito. Mayroong higit sa 10 mga tatak ng pagbabahagi ng bisikleta sa merkado, at ang “ mobike ” ang pinakatanyag, mayroon itong higit sa 100 milyong mga rehistradong gumagamit, at kumalat sa mga lungsod na iba pa
Kontrolin ang Mga Kagamitang Pantahanan Sa LoRa - LoRa sa Home Automation - LoRa Remote Control: 8 Mga Hakbang
Kontrolin ang Mga Home Appliances Sa LoRa | LoRa sa Home Automation | LoRa Remote Control: Kontrolin at i-automate ang iyong mga de-koryenteng kasangkapan mula sa malalayong distansya (Kilometro) nang walang pagkakaroon ng internet. Posible ito sa pamamagitan ng LoRa! Hoy, anong meron, guys? Ang Akarsh dito mula sa CETech. Ang PCB na ito ay mayroon ding isang OLED display at 3 relay kung saan isang
Nakita ang IoTea LoRa Solution (Update 1811): 5 Mga Hakbang
Nakita ang IoTea LoRa Solution (Update 1811): Ang Internet + ay isang tanyag na konsepto ngayon. Sa oras na ito sinubukan namin ang Internet kasama ang agrikultura upang gawing lumalaki ang hardin ng tsaa sa Internet Tea
Nakita ang IoTea LoRa Solution (kasama ang Azure, Update 1812): 5 Mga Hakbang
Nakita ang IoTea LoRa Solution (kasama ang Azure, Update 1812): Ang Microsoft Azure ay isang serbisyong cloud na nagbibigay ng mas malakas at matatag na kapangyarihan sa computing. Sa oras na ito sinubukan naming ipadala ang aming data sa IoTea dito