Sadržaj:
- Korak 1: Stvari korištene u ovom projektu
- Korak 2: Priča
- Korak 3: Povezivanje hardvera
- Korak 4: Programiranje softvera
- Korak 5: Operacija
Video: Vidjeli IoTea LoRa rješenje (ažuriranje 1811): 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Internet+ je danas popularan koncept. Ovaj put smo isprobali Internet i poljoprivredu kako bismo iz čajskog vrta izrasli Internet čaj.
Korak 1: Stvari korištene u ovom projektu
Hardverske komponente
- Grove - Senzor ugljičnog dioksida (MH -Z16)
- Grove - digitalni svjetlosni senzor
- Grove - Senzor prašine (PPD42NS)
- Grove-Senzor kisika (ME2-O2-F20)
- Senzor vlage i temperature tla
- LoRa LoRaWAN pristupnik - 868MHz komplet s Raspberry Pi 3
- Grove - Senzor za temp i Humi i barometar (BME280)
Softverske aplikacije i mrežne usluge
Microsoft Visual Studio 2015
Korak 2: Priča
Na planini Mengding sjeveroistočno od Ya’ana, Sichuan, planinski greben ide od zapada prema istoku u zelenom moru. Ovo je najpoznatiji prizor za 36-godišnjeg Denga, jednog od rijetkih proizvođača čaja Mengding svoje generacije, s plantažom od 50mu (= 3,3 hektara) smještenom na 1100 m nadmorske visine. Deng potječe iz obitelji proizvođača čajeva, no nošenje obiteljskog naslijeđa nije lak zadatak. “Naši čajevi uzgajaju se na velikim nadmorskim visinama u organskom okruženju kako bi se osigurala njegova izvrsna kvaliteta. No, u isto vrijeme, gustoća rasta je niska, troškovi su visoki i pupoljci su neravnomjerni, što otežava berbu čaja. Zato su visokoplaninski čajevi obično male berbe i njihove se vrijednosti ne odražavaju na tržištu.”Posljednje dvije godine Deng pokušava podići svijest potrošača o planinskim čajevima kako bi promicao njihovu vrijednost. A kad je upoznao Fan, koji je tražio plantažu za implementaciju Seeedove IoTea tehnologije, napravljeno je savršeno rješenje.
Korak 3: Povezivanje hardvera
Hardver ovog projekta može se podijeliti na 4 dijela: Napajanje, Senzori, Čvor i Gateway. Sljedeći članak će vam pokazati kako to učiniti korak po korak.
Snažni dio
Power Part uglavnom sadrži solarnu ploču i litijevu bateriju, ako samo napravite ovaj projekt za demonstraciju, možete ih zanemariti. Ili možete slijediti prethodni vodič za instaliranje napajanja čvora.
Dio senzora
U dijelu Senzori, zbog mnogih senzora, koristili smo meteorološku stanicu, a također smo napravili i akrilni nosač za njihovu ugradnju.
Kao što vidite na gornjoj slici, digitalni senzor svjetla uvijek je na vrhu, tako da može prikupljati informacije o osvjetljenju. Senzori koji će generirati toplinu ugrađeni su u sredinu akrilnog držača, poput osjetnika O2, senzora prašine i osjetnika CO2. Konačno, osjetnik temperature i vlažnosti na dnu akrilnog držača.
Osim toga, osjetnik temperature i vlažnosti tla ugrađuje se sam u tlo. Dio čvora
Node Part je Seeeduino LoRaWan koji se instalira u vodootpornu kutiju, spaja se na napajanje i senzore preko vodenih spojeva. Među njima, senzor prašine spojen je na LoRaWan -ov digitalni pin D3, senzor CO2 spojen na pin D4 & D5, osjetnik tla spojen na pin D6 & D7, senzor O2 spojen na analogni pin A1 i senzor svjetla i senzor barometra spojeni na I2C priključak.
NAPOMENA: Između plavog (podatkovnog) kabela osjetnika tla i crvenog (Vcc) kabela potrebno je dodati 10k otpornik.
Seeeduino LoRaWan povremeno prikuplja vrijednosti senzora i šalje ih na Gateway putem LoRa -e. Format podataka kao što je dolje:
{
[0], /* Temperatura zraka (℃)* /[1], /* Vlažnost zraka (%)* /[2], /* Nadmorska visina (m) visoki bajt* /[3], /* Nadmorska visina (m) niski bajt */[4],/ * koncentracija CO2 (PPM) visoki bajt */[5],/ * koncentracija CO2 (PPM) niski bajt */[6],/ * Koncentracija prašine (kom/0,01 cf) visoki bajt */[7],/ *Koncentracija prašine (kom/0,01 cf) niski bajt */[8],/ *Intenzitet svjetla (lux) visoki bajt */[9],/ *Intenzitet svjetla (lux) niski bajt */ [10], /* koncentracija O2 (%)* /[11], /* temperatura tla (℃)* /[12], /* vlažnost tla (%)* /[13], /* napon baterije (V) */ [14]/ *Kôd pogreške senzora */}
Svaki bit u bajtu koda greške senzora ima različito značenje, baš kao u nastavku:
{
bit0: 1; / * Pogreška senzora barometra */ bit1: 1; / * Pogreška senzora CO2 */ bit2: 1; / * Greška senzora prašine */ bit3: 1; / * Pogreška senzora svjetla */ bit4: 1; / * Pogreška osjetnika O2 */ bit5: 1; / * Pogreška osjetnika tla */ rezervirano: 2; /* Rezervirano */ }
Dio pristupnika
Gateway Part je Raspberry Pi koji je priključio Gateway modul RHF0M301–868 i PRI 2 Bridge RHF4T002, instalirao ga je u vodootpornu kutiju i spojio na napajanje i USB kameru putem vodenih spojeva. Budući da koristi specijalizirani firmver, slijedite Seeed Wiki za njegovu konfiguraciju.
Korak 4: Programiranje softvera
Kao hardverska veza, softversko programiranje se također može podijeliti, može se podijeliti na 3 dijela: čvor, pristupnik i web mjesto.
Dio čvora
Većina upravljačkih programa kojima je potreban Node Part već se nalaze u folderu origin_driver. Knjižnice koje slijede moraju se instalirati ručno:
Adafruit_ASFcore
Budući da je projekt kompliciran, preporučujemo da umjesto Arduino IDE -a koristite Microsoft Visual Studio. Dodatak pod nazivom Visual Micro može vam pomoći da osmislite Arduino projekt pomoću Visual Studija, kliknite ovdje za više informacija.
Za bolju čitljivost i održavanje, ovaj put koristimo Objektno orijentirano programiranje. Dijagram klasa ovog projekta izgleda ovako:
Za te senzore već imamo OOP upravljački program, prepakirali smo ga kako bismo prilagodili ovaj projekt, za druge smo njihove upravljačke programe prepisali pomoću OOP -a. Klasa senzora u sloju međuopreme koristi se za ujednačavanje sučelja stvarnih senzora, na primjer, senzor barometra može istovremeno prikupljati temperaturu, vlagu i nadmorsku visinu, pa ima 3 sučelja za stjecanje temperature, vlažnosti i nadmorske visine. Ali oni imaju različit naziv metode, što će program stjecanja vrijednosti senzora zakomplicirati, baš ovako:
barometar-> getTemperature ();
barometar-> getHumidity (); barometar-> getAltitude (); //… drugi_senzor-> getSomeValue (); //…
No, koristeći OOP, to izgleda ovako:
for (auto i = 0; i getValue ();
}
Pakirali smo i klasu Application, koja implementira IApplication sučelje, setup () i loop () metodu u IoTea.ino može pozvati setup () i loop () metodu u Application objektu.
NAPOMENA: USB serijski poslužitelj koristi se SAMO za otklanjanje pogrešaka. Nakon otklanjanja pogrešaka, komentirajte da je inicijalizirani kod u metodi setup ().
Dio pristupnika
Python program Gateway Part u početnoj mapi koristi se za snimanje fotografija i njihovo postavljanje na Amazon S3 Server svakih sat vremena. Prije nego ga upotrijebite, provjerite je li fswebcam već instaliran na vašem Raspberry Pi:
sudo apt-get update && sudo apt-get install fswebcam
Ako želite prenijeti fotografije, konfigurirajte svoj AWS slijedeći korake. Najprije instalirajte AWS SDK i AWS CLI na svoj Raspberry Pi pomoću ovih naredbi:
sudo pip instalirajte boto3
sudo pip install awscli
a zatim pokrenite AWS CLI:
sudo aws konfigurirati
Konfigurirajte svoj ID pristupnog ključa AWS, ID tajnog pristupa AWS -a i zadani naziv regije.
Ako ne volite učitavati svoje fotografije, možete preskočiti korake konfiguracije AWS -a i kodove komentara o prijenosu u photo.py. Za pokretanje ovog programa nakon svakog pokretanja programa Raspberry Pi, možete stvoriti fotografiju naziva datoteke u /etc/init.d i upisati joj sljedeći kod.
#!/bin/bash
# /etc/init.d/photo ### BEGIN INIT INFO # Pruža: seeed_photo # Obavezno-Pokreni: $ remote_fs $ syslog # Obavezno-Zaustavi: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Kratak opis: snimanje fotografija initscript # Opis: Ova se usluga koristi za upravljanje snimanjem fotografija ### END INIT INFO slučaj "$ 1" u početku) odjek "Počni snimanje fotografije" /home/rxhf/photo.py &;; stop) echo "Prestani snimati" kill $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) echo "Usage: service photo start | stop" izlaz 1;; esac izlaz 0
postaviti dopuštenje za izvršenje
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
i isprobajte ga
sudo /etc/init.d/photo start
Ako nema problema, zaustavite ga i dodajte u aplikaciju za pokretanje
sudo /etc/init.d/photo stop
sudo update-rc.d zadane fotografije
NAPOMENA: Ako želite pokrenuti gateway nakon podizanja sustava Raspberry Pi, dodajte početne kodove pristupnika u Seeed Wiki u /etc/rc.local, neka izgleda ovako:
#!/bin/sh -e
# # rc.local # # Ova se skripta izvršava na kraju svake višekorisničke razine izvođenja. # Provjerite hoće li skripta "izaći 0" u slučaju uspjeha ili bilo koje druge # vrijednosti u slučaju pogreške. # # Da biste omogućili ili onemogućili ovu skriptu, samo promijenite # bita izvođenja. # # Prema zadanim postavkama, ova skripta ne radi ništa. # Ispišite IP adresu _IP = $ (naziv hosta -I) || true if ["$ _IP"]; tada printf "Moja IP adresa 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 izlaz 0
Web stranica
Web stranicu smo postavili na CentOS 7. Sljedeći koraci pokazat će vam kako se primjenjuje.
Korak 1. Instalirajte Python3
sudo yum -y instalirajte epel -release
sudo yum -y instalirajte python36
Korak 2. Instalirajte Python pip i virtualno okruženje
wget
sudo python36 get-pip.py sudo pip instaliraj virtualenv
Setp 3. Klonirajte našu web stranicu s GitHub -a
sudo yum -y install git
git klon
Korak 4. Izradite i aktivirajte virtualno okruženje
virtualenv -p python36 iotea -hb
cd iotea-hb izvor kanta/aktiviranje
Korak 5. Instalirajte ovisne knjižnice
pip install pymysql
pip install dbutils pip install flask pip install websocket-client pip install cofigparser
Korak 6. Stvorite bazu podataka
sudo yum -y instalirajte mariadb mariabd -server
sudo systemctl omogućiti mariadb sudo systemctl pokrenuti mariadb mysql -uroot -p
a zatim upotrijebite iotea_hb.sql za izradu tablice.
Korak 7. Napravite db.ini i upišite mu ove kodove
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
promijenite db.ini putanju u db.py
# u db.py
#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")
Korak 8. Promijenite port u app.py i pokrenite web stranicu:
# u app.py
#app.run (debug = True, port = 6000) app.run (debug = True, port = 8080)
# u terminalu
pip install gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app: app
sada posjetite 127.0.0.1:8080 u svom web pregledniku, možete vidjeti web stranicu, ali se podaci u stvarnom vremenu ne prikazuju.
Korak 9. Nabavite loriot podatke
Otvorite drugi terminal, ponovno uđite u virtualno okruženje i pokrenite aplikaciju loriot:
cd iotea-hb
izvorni spremnik/aktiviranje oružja loriot: app
Pričekajte malo, vidjet ćete podatke prikazane na web stranici ili možete promijeniti wss u loriot.py:
# u loriot.py
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
Korak 5: Operacija
Možete posjetiti naše web stranice kako biste vidjeli podatke u stvarnom vremenu:
- U Ya'anu
- Za demonstraciju
Preporučeni:
Slack ažuriranje statusa s ESP8266: 5 koraka (sa slikama)
Alat za ažuriranje statusa Slack s ESP8266: Ovaj projekt pomaže vam olakšati dan ako ste udaljeni radnik koji koristi Slack. Pokazat ću vam kako ga izgraditi pomoću WiFi ploče ESP8266. Ne propustite gornji video za pregled. Jeste li tek počeli koristiti Slack ili ste tek koristili
Vidjeli LoRa IoTea rješenje: 5 koraka
Vidjeli LoRa IoTea rješenje: Automatski sustav prikupljanja informacija primijenjen na plantaži čaja. To je dio inteligentnog prikupljanja poljoprivrednih informacija
Vidjeli IoTea LoRa rješenje (s Azure, ažuriranje 1812): 5 koraka
Vidjeli ste IoTea LoRa rješenje (s Azureom, ažuriranje 1812): Microsoft Azure je usluga u oblaku koja pruža snažniju i stabilniju računalnu snagu. Ovaj put pokušali smo mu poslati svoje IoTea podatke
Arduino projekt: Testni raspon LoRa modul RF1276 za rješenje GPS praćenja: 9 koraka (sa slikama)
Arduino projekt: Testni raspon LoRa modul RF1276 za GPS praćenje Rješenje: Spajanje: USB - Serijski Potreban: Chrome preglednik Potreba: 1 X Arduino Mega potreba: 1 X GPS potreba: 1 X SD kartica Potreba: 2 X LoRa modem RF1276 Funkcija: Arduino Pošalji GPS vrijednost na glavnu bazu - Glavna baza pohranjuje podatke u Dataino poslužiteljski Lora modul: Ultra veliki domet
Savršena sadnica - najpametniji sadnjak koji ste ikada vidjeli: 6 koraka
Savršena sadilica - najpametniji sadnjak koji ste ikada vidjeli: Ova sadilica vjerojatno je jedna od najpametnijih sadnica koju ste ikada vidjeli. U svom elegantnom i modernom dizajnu, ova sadilica se može pohvaliti senzorom tla koji detektira kada je vaše tlo suho. Kad se osuši, uključuje se peristaltička pumpa i automatski zalijeva