Kazalo:
- 1. korak: Stvari, uporabljene v tem projektu
- 2. korak: Zgodba
- 3. korak: Povezava strojne opreme
- 4. korak: Programiranje programske opreme
- 5. korak: Delovanje
Video: Glejte rešitev IoTea LoRa (posodobitev 1811): 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Internet+ je danes priljubljen koncept. Tokrat smo poskusili z internetom in kmetijstvom narediti čajni vrt iz internetnega čaja.
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
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 v svoji generaciji Mengding, 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. «Zadnji dve leti je Deng poskušal ozavestiti potrošnike o visokogorskem čaju, da bi promoviral 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.
3. korak: Povezava strojne opreme
Strojno opremo tega projekta lahko razdelimo na 4 dele: napajanje, senzorje, vozlišče in prehod. Naslednji članek vam bo pokazal, kako ga dokončati korak za korakom.
Močni del
Power Part v glavnem vsebuje sončno ploščo in litijevo baterijo, če le zgradite ta projekt za predstavitev, jih lahko prezrete. Lahko pa uporabite prejšnjo vadnico za namestitev moči vozlišča.
Del senzorjev
V delu Senzorji smo zaradi številnih senzorjev uporabili vremensko postajo in za njihovo namestitev izdelali tudi akrilni nosilec.
Kot vidite na zgornji sliki, je digitalni senzor svetlobe vedno na vrhu, tako da lahko zbira informacije o osvetlitvi. Senzorji, ki bodo proizvajali toploto, so nameščeni sredi akrilnega nosilca, na primer senzorja O2, senzorja prahu in senzorja CO2. Končno senzor temperature in vlažnosti na dnu akrilnega nosilca.
Poleg tega je senzor temperature in vlažnosti tal nameščen sam v tleh. Del vozlišča
Node Part je Seeeduino LoRaWan, ki je nameščen v vodotesni škatli in se povezuje z napajanjem in senzorji prek vodnih spojev. Med njimi se senzor prahu poveže z LoRaWan -ovim digitalnim zatičem D3, senzor za CO2 se priključi na pin D4 & D5, senzor tal se poveže z zatičem D6 & D7, senzor O2 poveže z analognim zatičem A1 in senzor svetlobe in senzor barometra povežeta z vrati I2C.
OPOMBA: Med modrim (podatkovnim) kablom senzorja tal in rdečim (Vcc) kablom je treba dodati 10k upor.
Seeeduino LoRaWan občasno zbere vrednost senzorjev in jih prek LoRa pošlje na Gateway. Podatkovna oblika, kot je prikazano spodaj:
{
[0], /* Temperatura zraka (℃)* /[1], /* Vlažnost zraka (%)* /[2], /* Nadmorska višina (m) visoki bajt* /[3], /* Nadmorska višina (m) nizek bajt */[4],/ * koncentracija CO2 (PPM) visok bajt */[5],/ * koncentracija CO2 (PPM) nizek bajt */[6],/ * koncentracija prahu (kos/0,01 cf) visok bajt */[7],/ *Koncentracija prahu (kos/0,01 cf) nizek bajt */[8],/ *Intenzivnost svetlobe (lux) visok bajt */[9],/ *Intenzivnost svetlobe (lux) nizek bajt */ [10], /* koncentracija O2 (%)* /[11], /* temperatura tal (℃)* /[12], /* vlažnost tal (%)* /[13], /* napetost akumulatorja (V) */ [14]/ *Koda napake senzorja */}
Vsak bit v bajtu kode napake senzorja ima pomen razlike, tako kot spodaj:
{
bit0: 1; / * Napaka senzorja barometra */ bit1: 1; / * Napaka senzorja CO2 */ bit2: 1; / * Napaka senzorja prahu */ bit3: 1; / * Napaka svetlobnega senzorja */ bit4: 1; / * Napaka senzorja O2 */ bit5: 1; / * Napaka senzorja tal */ rezervirano: 2; / * Rezervirano */}
Del prehoda
Gateway Part je Raspberry Pi, ki je priključil modul Gateway RHF0M301–868 in PRI 2 Bridge RHF4T002, nameščen v vodotesni škatli in prek vodnih spojev povezan z napajalnikom in USB kamero. Ker uporablja specializirano vdelano programsko opremo, sledite Seeed Wiki, da jo konfigurirate.
4. korak: Programiranje programske opreme
Kot strojno povezavo lahko tudi programsko programiranje razdelite na tri dele: vozlišče, prehod in spletno mesto.
Del vozlišča
Večina gonilnikov, ki jih potrebuje Node Part, je že v mapi origin_driver. Knjižnice, ki sledijo, je treba namestiti ročno:
Adafruit_ASFcore
Ker je projekt zapleten, priporočamo, da namesto Arduino IDE uporabite Microsoft Visual Studio. Vtičnik, imenovan Visual Micro, vam lahko pomaga pri ustvarjanju projekta Arduino z uporabo Visual Studia, kliknite tukaj za več informacij.
Za boljšo berljivost in vzdrževanje tokrat uporabljamo objektno usmerjeno programiranje. Diagram razredov tega projekta je videti spodaj:
Za te senzorje že imamo gonilnik OOP, smo ga prepakirali, da prilagodimo ta projekt, za druge smo njihove gonilnike prepisali z uporabo OOP. Razred senzorja v sloju vmesne programske opreme se uporablja za poenotenje vmesnikov resničnih senzorjev, na primer senzor barometra lahko hkrati zbira temperaturo, vlažnost in nadmorsko višino, zato ima 3 vmesnike za pridobivanje temperature, vlažnosti in nadmorske višine. Imajo pa različno ime metode, zaradi česar bo program pridobivanja vrednosti senzorjev bolj zapleten, takole:
barometer-> getTemperature ();
barometer-> getHumidity (); barometer-> getAltitude (); //… drugi_senzor-> getSomeValue (); //…
Toda z uporabo OOP izgleda tako:
for (samodejno i = 0; i getValue ();
}
Pakirali smo tudi razred Application, ki izvaja vmesnik IApplication, metodo setup () in loop () v IoTea.ino lahko pokličeta metodo setup () in loop () v objektu Application.
OPOMBA: Serijski vmesnik USB se uporablja samo za odpravljanje napak. Ko odpravite napake, komentirajte, da je inicializirana koda v metodi setup ().
Del prehoda
Program Python Gateway Part v domači mapi se uporablja za fotografiranje in vsako uro nalaganje na strežnik Amazon S3. Preden ga uporabite, se prepričajte, da je fswebcam že nameščen v vašem Raspberry Pi:
sudo apt-get update && sudo apt-get install fswebcam
Če želite naložiti fotografije, konfigurirajte svoj AWS po naslednjih korakih. Najprej namestite AWS SDK in AWS CLI v svoj Raspberry Pi z uporabo teh ukazov:
sudo pip namestite boto3
sudo pip namestite awscli
in nato zaženite AWS CLI:
sudo aws configure
Konfigurirajte svoj ID ključa za dostop do AWS, ID tajnega dostopa AWS in privzeto ime regije.
Če ne želite naložiti svojih fotografij, lahko preskočite korake konfiguracije AWS in kode komentarjev o nalaganju v photo.py. Za zagon tega programa po vsakem zagonu Raspberry Pi lahko ustvarite fotografijo imena datoteke v /etc/init.d in vanj napišete naslednjo kodo.
#!/bin/bash
# /etc/init.d/photo ### BEGIN INIT INFO # Zagotavlja: seeed_photo # Zahtevan zagon: $ remote_fs $ syslog # Zahtevan ustavitev: $ remote_fs $ syslog # Privzeti zagon: 2 3 4 5 # Privzeto-zaustavi: 0 1 6 # Kratek opis: fotografiranje initscript # Opis: Ta storitev se uporablja za upravljanje fotografiranja ### END INIT INFO case "$ 1" at start) echo "Start shooting photo" /home/rxhf/photo.py &;; stop) echo "Nehaj fotografirati" kill $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) echo "Usage: service photo start | stop" exit 1;; esac izhod 0
nastavite dovoljenje za izvedbo
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
in ga preizkusi
sudo /etc/init.d/photo start
Če ni težav, ga ustavite in dodajte v zagonsko aplikacijo
sudo /etc/init.d/photo stop
privzete nastavitve fotografij sudo update-rc.d
OPOMBA: Če želite zagnati prehod po zagonu Raspberry Pi, dodajte začetne kode prehoda v Seeed Wiki v /etc/rc.local, naj bo videti tako:
#!/bin/sh -e
# # rc.local # # Ta skript se izvede na koncu vsake ravni uporabe za več uporabnikov. # Prepričajte se, da bo skript ob uspehu "zapustil 0" ali katero koli drugo vrednost pri napaki. # # Če želite omogočiti ali onemogočiti ta skript, samo spremenite # bita izvedbe. # # Ta skript privzeto ne naredi nič. # Natisnite naslov IP _IP = $ (ime gostitelja -I) || res, če ["$ _IP"]; nato printf "Moj naslov IP je %s / n" "$ _IP" fi cd /home/rxhf/loriot/1.0.2 sudo systemctl stop pktfwd sudo gwrst wget https://cn1.loriot.io/home/gwsw/loriot -risinghf-r… -O loriot-gw.bin chmod +x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io izhod 0
Spletna stran
Spletno mesto smo razmestili na CentOS 7. Naslednji koraki vam bodo pokazali, kako uvesti.
Korak 1. Namestite Python3
sudo yum -y namestite epel -release
sudo yum -y namestite python36
Korak 2. Namestite Python pip in virtualno okolje
wget
sudo python36 get-pip.py sudo pip namestite virtualenv
Setp 3. Klonirajte našo spletno stran z GitHub -a
sudo yum -y install git
git clone
Korak 4. Ustvarite in aktivirajte virtualno okolje
virtualenv -p python36 iotea -hb
cd iotea-hb vir bin/enable
Korak 5. Namestite odvisne knjižnice
pip namestite pymysql
pip install dbutils pip install flask pip install websocket-client pip install cofigparser
Korak 6. Ustvarite bazo podatkov
sudo yum -y namestite mariadb mariabd -server
sudo systemctl omogoči mariadb sudo systemctl začni mariadb mysql -uroot -p
in nato z iotea_hb.sql ustvarite tabelo.
Korak 7. Ustvarite db.ini in mu zapišite te kode
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
spremenite pot db.ini v db.py
# v db.py
#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")
Korak 8. Spremenite vrata v app.py in zaženite spletno mesto:
# v app.py
#app.run (debug = True, port = 6000) app.run (debug = True, port = 8080)
# v terminalu
pip install gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app: app
zdaj obiščite 127.0.0.1:8080 v svojem spletnem brskalniku, lahko vidite spletno mesto, vendar podatki v realnem času niso prikazani.
Korak 9. Pridobite podatke o loriotu
Odprite drug terminal, znova vnesite virtualno okolje in zaženite aplikacijo loriot:
cd iotea-hb
vir bin/aktiviraj pištolo loriot: app
Počakajte nekaj časa, na spletnem mestu bodo prikazani podatki ali pa lahko spremenite wss v loriot.py:
# v loriot.py
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = ustvari_povezavo ()
5. korak: Delovanje
Na naših spletnih straneh si lahko ogledate podatke v realnem času:
- V Ya'anu
- Za demonstracijo
Priporočena:
Glejte LoRa IoTea Rešitev: 5 korakov
Glejte LoRa IoTea Rešitev: Samodejni sistem zbiranja informacij, uporabljen na nasadih čaja. Je del inteligentnega zbiranja kmetijskih informacij
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