Kazalo:
- 1. korak: Stvari, uporabljene v tem projektu
- 2. korak: Zgodba
- 3. korak: Povezava strojne opreme
- 4. korak: Konfiguracija programske opreme
- 5. korak: Izdelava spletnega mesta
Video: Glejte LoRa IoTea Rešitev: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Samodejni sistem zbiranja informacij, ki se uporablja za nasad čaja. Je del inteligentnega zbiranja kmetijskih informacij.
1. korak: Stvari, uporabljene v tem projektu
Strojne komponente
- Grove - Senzor ogljikovega dioksida (MH -Z16)
- Grove - digitalni svetlobni senzor
- Grove - Senzor prahu (PPD42NS)
- Grove-Senzor kisika (ME2-O2-Ф20)
- Senzor vlage in temperature tal
- LoRa LoRaWAN Gateway - 868MHz komplet z Raspberry Pi 3
- Grove - Temp & Humi & Barometer Sensor (BME280)
Programske aplikacije in spletne storitve
Microsoft Visual Studio 2015
2. korak: Zgodba
Pametno kmetijstvo je uporaba tehnologije interneta stvari v tradicionalnem kmetijstvu s senzorji in programsko opremo za nadzor kmetijske proizvodnje prek mobilnih ali računalniških platform, zaradi česar je tradicionalno kmetijstvo bolj "pametno".
Na gori Mengding severovzhodno od Ya’ana v Sečuanu gorski greben poteka od zahoda proti vzhodu v zelenem morju. To je najbolj znan prizor 36-letnega Denga, enega redkih proizvajalcev čaja Mengding v svoji generaciji, s plantažo 50mu (= 3,3 hektarja) na 1100 m nadmorske višine. Deng prihaja iz družine proizvajalcev čaja, vendar nadaljevanje družinske zapuščine ni lahka naloga. »Naši čaji rastejo na visokih nadmorskih višinah v ekološkem okolju, da se zagotovi njihova odlična kakovost. Toda hkrati je gostota rasti nizka, stroški visoki in brstenje neenakomerno, zato je čaj težko nabrati. Zato so gorski čaji običajno majhne letine in njihove vrednosti se ne odražajo na trgu. Deng si v zadnjih dveh letih prizadeva ozavestiti potrošnike o visokogorskem čaju, da bi spodbudil njihovo vrednost. In ko je spoznal Fan, ki je iskal plantažo za izvajanje Seeedove tehnologije IoTea, se je odlično znašla rešitev. Namen Seeed IoTea Solution je pomagati kmetovalcem čaja pri boljšem upravljanju nasadov brez spreminjanja tradicionalnih praks pridelave čaja in predstaviti okoljske podatke v realnem času iz nasadov na odprti platformi.
IoTea, sestavljena iz senzorjev, vozlišč in prehodov, v realnem času zbira podatke o dejavnikih, ki lahko vplivajo na kakovost čaja med pridelavo in proizvodnimi procesi, vključno s temperaturo in vlažnostjo, CO2, O2, PM in izpostavljenostjo svetlobi. Podatke zbirajo senzorji, ki jih vozlišča pošljejo na prehod in sčasoma v oblak ter so dostopni končnim strankam na spletni strani.
3. korak: Povezava strojne opreme
1. korak: Povezava s prehodom
Prehod je nameščen ločeno v škatli. Glede na problem odvajanja toplote smo dodali 2 ventilatorja. Ena je za odvajanje toplote Raspberry Pi, druga pa za notranjo in zunanjo kroženje zraka. Prehodna omarica je nameščena v kmečkem domu, zato nam ni treba upoštevati njene napake.
2. korak: Povezava vozlišča
Vozlišče je terminal podatkov in vsi izvirni podatki so pridobljeni od tukaj. Na vozlišče je povezanih 6 senzorjev. Poleg senzorja vlage in temperature tal smo v ohišje žaluzije postavili še druge senzorje.
Vozlišče je nameščeno v vodotesni škatli. Za boljšo povezavo z vozliščem izdelamo adapterno ploščo. Nazadnje bomo zagotovili povezavo za prenos sheme te plošče. Kot je prikazano spodaj, so kabli senzorjev priključeni na vmesniško ploščo skozi sponke. Za izdelavo stikalnih vezij za nadzor vklopa in izklopa senzorjev in ventilatorja uporabljamo 3 MOS cevi (SI2301). Ventilator se uporablja za hlajenje. Na ploščo imamo nameščen temperaturni senzor (DS18B20). Lahko nam pove notranjo temperaturo škatle, nato pa se mikrokrmilnik odloči, ali bo vklopil ventilator. Za izdelavo vezja delilnika napetosti za merjenje napetosti svinčevo-kislinske baterije uporabljamo več uporov. Nazadnje rezerviramo 3 vmesnike IIC in serijska vrata na plošči za kasnejšo razširitev in odpravljanje napak.
Pogovorimo se o problemu napajanja vozlišča. Vozlišče je naključno postavljeno v nasad čaja, zato tradicionalna metoda napajanja ni več uporabna. Uporaba sončne energije je dobra ideja. Trenutno je na trgu na voljo veliko rešitev. Izberemo lahko enega izmed njih, ki ustreza našim potrebam. V raztopini, ki smo jo izbrali, so trije deli: sončna plošča, regulator sončnega polnjenja in svinčevo -kislinska baterija. Za boljši zajem sončne energije namestimo sončno ploščo na vrh nosilca in ji prilagodimo kot, da je obrnjen proti soncu. Solarni regulator polnjenja smo postavili v isto škatlo z vozliščem. Ker v škatli ni dodatnega prostora, smo morali poiskati novo vodotesno škatlo za namestitev svinčeve kislinske baterije.
4. korak: Konfiguracija programske opreme
Vozlišče
V tem razdelku bomo predstavili predvsem programsko konfiguracijo vozlišča.
Podatkovni format
Podatki, ki jih vozlišče naloži na prehod:
nepodpisani znak Lora_data [15] = {0, 1, 2, 3,, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
Pomen vsakega podatkovnega bita:
Lora_data [0]: Temperatura zraka, ℃
Lora_data [1]: Vlažnost zraka, %
Lora_data [2]: Nadmorska višina osem, m
Lora_data [3]: Nadmorska višina osem
Lora_data [4]: Visoka koncentracija CO2 osem, ppm
Lora_data [5]: Koncentracija CO2 nizka osem
Lora_data [6]: Visoka koncentracija prahu osem, kos/0,01 cf
Lora_data [7]: Koncentracija prahu nizka osem
Lora_data [8]: Moč svetlobe osem, lux
Lora_data [9]: Moč svetlobe nizka osem
Lora_data [10]: Koncentracija O2, % (surovi podatki deljeni s 1000)
Lora_data [11]: Temperatura tal, ℃
Lora_data [12]: Vlažnost tal, %
Lora_data [13]: Napetost akumulatorja, v
Lora_data [14]: Koda napake senzorja
Napačna koda:
Lora_data [14] = [bit7, bit6, bit5, bit4, bit3, bit2, bit1, bit0]
Pomen vsakega bita:
bit 0: 1 ---- napaka senzorja temp & Humi & barometra (BME280)
bit 1: 1 ---- Napaka senzorja ogljikovega dioksida (MH-Z16)
bit 2: 1 ---- Napaka senzorja prahu (PPD42NS)
bit 3: 1 ---- Napaka digitalnega senzorja svetlobe
bit 4: 1 ---- Napaka senzorja kisika (ME2-O2-Ф20)
bit 5: 1 ---- Napaka senzorja vlage in temperature tal
bit 6: Rezervirano
bit 7: Rezervirano
Naredili smo Error_code_transform.exe, ga odprli in vnesli kodo napake v šestnajstiški številki, hitro boste vedeli, kateri senzor je napaka. Povezava za prenos je na koncu tega članka.
Prilagajanje parametrov: a) Cikel prenosa podatkov
// seeedtea.ino
#defineinterval_time 600 // sekunda
Ta parameter lahko spremenite, da spremenite cikel prenosa podatkov. V vsakem ciklu zbiranje podatkov traja približno 1 minuto. Zato ni priporočljivo spreminjati te vrednosti na manj kot 60 sekund.
b) Čas segrevanja senzorja za prah
//seeedtea.ino
#definePreheat_time 30000 // DustSensor ogrevalni čas, miliseond //Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s
c) Napetostni koeficient
//POWER_Ctrl.cpp
#defineBattery_coefficient 0,159864 // vrednost ADC × koeficient baterije_napetost = napetost baterije #defineSolarni_koeficient 0,22559 // vrednost ADC × sončni_koeficient = sončna_napetost
Ta dva parametra se izračunata na podlagi vezja delilnika napetosti.
d) Temperaturni prag odpiranja ventilatorja
//POWER_Ctrl.cpp
#defineFan_start_temp 45 // temperaturni prag #defineFan_start_light 500 // jakost svetlobe
Ko dejanska temperatura preseže prag, se bo ventilator začel ohlajati.
e) Parameter inicializacije senzorja O2
// kisik.cpp
#defineO2_percentage 208,00 //20,8%
f) Stikalo za makro
//seeedtea.ino
#defineLORA_RUN // Po komentarju se bo inicializacija Lora in prenos podatkov ustavila #defineSENSOR_RUN // Po komentarju bodo zunanji senzorji prenehali delovati //POWER_Ctrl.cpp #defineFAN_ON // Samo preverjanje, potrebno je komentirati praktično aplikacijo /**** *** Način krmiljenja DS18B20 **********************/ #defineSlower_Mode // Počasen način za nastavitev temperature. Komentar je hiter način
g) Preslikava pin
D2: LED indikator in zunanji ponastavljeni mikrokrmilnik IIC: SCL in SDA
//Dust_other.h
#defineDust_pin 3 // Senzor prahu //CO2.cpp #defineCO2_serial Serial1 // uporabite serijska vrata strojne opreme (D0 & D1) //seeedtea.ino #definedataPin 6 // Podatkovni zatič za tla #defineclockPin 7 // Pin za uro v tleh // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Fan #defineAir_CtrlPin 10 // Krmilni zatič za senzorje, nameščene v louverbox #defineSoil_CtrlPin 11 // Stikalo senzorja za vlago in temperaturo tal #defineBattery_pin A2 /Izmerite napetost sončne celice // kisik.h #defineO2_pin A1 // senzor O2
h) Časovnik nadzornika
Časovnik nadzornika se uporablja za spremljanje stanja delovanja sistema. Ko sistem deluje nepravilno, se bo vozlišče ponastavilo, tako da lahko deluje neprekinjeno dlje časa.
Knjižnica, na katero se sklicuje:
- Adafruit_SleepyDog.h je bil dodan projektu
- Adafruit_ASFcore-master.zip je zapakiran v mapo projekta in ga je treba ročno dodati v Arduino IDE.
Sorodne funkcije:
Omogoči nadzornika
int WatchdogSAMD:: enable (int maxPeriodMS, bool isForSleep)
Vhodni parametri:
Int maxPeriodMS: Čakalni čas v milisekundah. Največja dovoljena vrednost je 16000 milisekund.
vrnjena vrednost:
Int type, vrnite dejanski čakalni čas
Ponastavi nadzornika
void WatchdogSAMD:: reset ()
Pokličite to funkcijo za ponastavitev časovnika nadzornika, imenovanega "hranjenje psa". Če prekoračite čakalni čas brez ponastavitve, se bo vozlišče znova zagnalo.
Ustavite nadzornika
void WatchdogSAMD:: disable ()
Prehod
V tem razdelku bomo predstavili, kako se povezati s strežnikom Loriot.
Korak 1: Registracija strežnika Loriot Server Gateway
a) Nov uporabnik mora najprej registrirati račun, kliknite naslov za registracijo. Za registracijo vnesite uporabniško ime, geslo in e -poštni naslov, po registraciji vam bo poslano e -poštno sporočilo, za aktiviranje sledite navodilom v e -poštnem sporočilu.
b) Po uspešni aktivaciji kliknite tukaj, da se prijavite. Privzeta raven je "Network of Community", podpira 1 prehod (RHF2S001) in 10 vozlišč.
c) Vnesite Dashboard -> Gateway, kliknite Add Gateway start, da dodate Gateway.
d) Izberite Raspberry Pi 3
e) Nastavite na naslednji način:
- Radijski sprednji del -> RHF2S001 868/915 MHz (SX1257)
- AVTOBUS -> SPI
f) Izpolnite naslov MAC vašega RHF2S001 v obliki b8: 27: eb: xx: xx: xx. Vnesite tudi podatke o lokaciji prehoda.
g) Kliknite »Register Raspberry Pi gateway«, da dokončate registracijo.
h) Kliknite na registrirani prehod, da vstopite na konfiguracijsko stran, ročno preklopite na “Frekvenčni načrt”, vaš načrt je odvisen od vrste vašega RHF2S001, na voljo je načrt CN470 , CN473 , CN434 , CN780 , EU868, po izbiri osvežite stran da dobite natančen kanal. V tem wikiju izberemo EU868.
i) Zaženite ukaz v terminalu za kiti:
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. korak: Naprava Loriot Server Connect Node
a) Pridobite razpoložljive kanale prehoda
Trenutne kanale prehoda lahko dobite na nadzorni plošči -> prehod -> vaš prehod, razpoložljive kanale si lahko ogledate na spodnji sliki.
b) Seeeduino LoRAWAN GPS (RHF3M076) Konfiguracija
Odprite serijski monitor ArduinoIDE, tapnite spodnji ukaz.
pri+ch
Za potrditev privzetega kanala vašega sistema Seeeduino_LoRAWAN GPS boste dobili 3 kanale. Če ni razpoložljivega kanala, lahko kanale Seeeduino_LoRAWAN spremenite s spodnjim ukazom.
pri+ch = 0, 868,1
pri+ch = 1, 868,3 pri+ch = 2, 868,5
Nato lahko znova uporabite tipko+ch za preverjanje.
c) Dodajte Seeeduino_LoRAWAN GPS kot ABP NodeLog v strežniku Loriot, kliknite Nadzorna plošča -> Aplikacije -> SimpleApp. Kliknite Import ABP , vnesite pod postavke
- DevAddr: Seeeduino_LoRAWAN GPS pride skozi ukaz "AT+ID" (Opomba: Loriot ne podpira priključka za dvopičje, zato ga morate odstraniti ročno)
- FCntUp: Setto 1
- FCntDn: Setto 1
- NWKSKEY: Privzeta vrednost 2B7E151628AED2A6ABF7158809CF4F3C
- APPSKEY: Privzeta vrednost 2B7E151628AED2A6ABF7158809CF4F3C
- EUI: DEVEUI, Seeeduino_LoRAWAN GPS z ukazom "AT+ID"
Kliknite gumb Uvozi napravo, da dokončate uvoz naprave. Zdaj izberite Nadzorna plošča-> Aplikacije -> SampleApp, videli boste novo vozlišče ABP, ki ste ga pravkar dodali.
d) Pošljite podatke iz Seeeduino_LoRAWAN
POZOR! To je le preizkus.
Nazaj na serijski monitor ArduinoIDE, pošljite ukaz:
AT+CMSGHEX = "0a 0b 0c 0d 0e"
Nato pojdite na Nadzorna plošča -> Aplikacije -> SampleApp -> Naprava, kliknite NI Device EUI ali DevAddr, tukaj boste našli podatke, ki ste jih pravkar poslali.
Za podrobnosti si oglejte to wiki.
5. korak: Izdelava spletnega mesta
Sorodna orodja
- virtualenv
- Python3
- Gunicorn
- Nadzornik
- Nginx
- MySQL
CentOS7 uporabljamo kot testno okolje za uvajanje
virtualenv
Uporabite virtualenv za izgradnjo samostojnega produkcijskega okolja python3
a) namestite
pip namestite virtualenv
b) ustvarite navidezno okolje python3
virtualenv -p python3 iotea
c) zaženite virtualno okolje in vnesite imenik iotea
izvorni koš/aktiviraj
d) obstaja okolje
deaktivirati
Python3
a) namestite
yum namestite epel-release
yum namestite python36
b) namestite odvisno knjižnico PyMySQL, DBUtils, Flask, odjemalca websocket, configparser
pip namestite pymysql
pip install dbutils pip install flask pip install websocket-client pip install configparser
Gunicorn
a) namestite (v okolju Python3)
pip install gunicorn
b) zaženite projekt flask (pod imenikom projekta iotea)
gunicorn -w 5 -b 0.0.0.0:5000 app: app
c) zaženite websocket-clint, da pridobite podatke o loriotu
gunicorn loriot: app
d) ogled drevesa procesa Gunicorn
pstree -ap | grep gunicorn
Nadzornik
a) namestitev (korenski uporabnik)
nadzornik za namestitev pipa
b) ustvarite konfiguracijske datoteke
echo_supervisord_conf> /etc/supervisord.conf
c) ustvarite imenik in uvedite konfiguracijo imenika
mkdir -p /etc/supervisor/conf.d
Uredite /etc/supervisord.conf in spremenite polje datotek pod [vključi] na koncu datoteke.
Upoštevajte, da morate odstraniti ';' pred tema dvema vrsticama, kar je komentar.
[vključi]
Datoteke = /etc/supervisor/conf.d/*.conf
Pomeni uvesti /etc/supervisor/conf.d/. Naslednja konfiguracijska datoteka se uporablja kot konfiguracijska datoteka procesa (spremlja jo nadzornik).
d) vhodna konfiguracija (v imeniku iotea)
cp iotea.conf /etc/supervisor/conf.d/
cp loriot.conf /etc/supervisor/conf.d/
e) odprta iotea postrežba
superviosrctl reload #reload konfiguracijske datoteke
superviosrctl start loriot #open loriot sprejem podatkov superviosrctl start iotea #open aplikacija iotea flask
f) druge skupne operacije
supervizorctl reload # ponovno naložite konfiguracijsko datoteko
supervizorctl posodobitev supervizorctl začetek xxx supervizorctl ustavitev xxx nadzornik stanje xxx nadzornik pomoč # glej več ukazov
Nginx
a) namestite
yum install -y nginx
b) konfiguracija
cp NginxIotea.conf /etc/nginx/conf.d/
c) zaženite Nginx
systemctl zaženite nginx.service
MySQL
a) povezani parametri
user = 'root'
passwd = '1234' db = 'iotea' port = 3306
b) datoteko
iotea_iotea.sql
c) konfiguracijsko datoteko
db.ini
Priporočena:
Glejte rešitev IoTea LoRa (posodobitev 1811): 5 korakov
Glej rešitev IoTea LoRa (posodobitev 1811): Internet+ je zdaj priljubljen koncept. Tokrat smo poskusili z internetom in kmetijstvom narediti čajni vrt iz internetnega čaja
Glejte rešitev IoTea LoRa (z Azure, posodobitev 1812): 5 korakov
Glej rešitev IoTea LoRa (z Azure, posodobitev 1812): Microsoft Azure je storitev v oblaku, ki zagotavlja zmogljivejšo in stabilnejšo računalniško moč. Tokrat smo mu poskušali poslati podatke IoTea
Arduino projekt: Testni razpon LoRa modul RF1276 za rešitev GPS sledenja: 9 korakov (s slikami)
Arduino projekt: Testni razpon LoRa modul RF1276 za sledenje GPS Rešitev: Povezava: USB - Serijsko Potrebujete: Potrebujete brskalnik Chrome: 1 X Arduino Mega Need: 1 X Potreba GPS: 1 X SD kartica Potreba: 2 X Modem LoRa RF1276 Funkcija: Arduino Pošlji vrednost GPS na glavno bazo - Podatki glavne baze shranjujejo v modulu Dataino Server Lora: Ultra dolgi doseg
Cane-eye: Glejte z ušesi: 16 korakov (s slikami)
Cane-eye: Glej s svojimi ušesi: želim ustvariti inteligentnega ‘ trsnega ’ ki lahko ljudem z okvarami vida pomaga veliko bolj kot obstoječe rešitve. Palica bo lahko uporabnika obvestila o predmetih spredaj ali ob straneh s hrupom v prostorskem zvoku t
Zaloga - Hitra diagnostika računalnika je zdaj nadomeščena, glejte spodaj: 6 korakov
Inventar - Hitra diagnostika računalnika zdaj nadomeščena, glejte spodaj: Če boste kdaj morali delati na računalniku, ki ni pred vami, potrebujete natančen popis. To navodilo je nastalo zgolj zato, ker ima kolega težave pri iskanju gonilnika za računalnik. Uporabil bom Aida32 osebno s spletnega mesta http://majorgeeks.com