Sadržaj:
- Korak 1: Stvari koje se koriste 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 izmjena: 2024-01-30 08:07
Internet+ je danas popularan koncept. Ovaj put smo pokušali putem Interneta i poljoprivrede napraviti vrt iz čaja iz interneta.
Korak 1: Stvari koje se koriste 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 sa 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, u Sečuanu, planinski greben ide zapadno -istočno u zelenom moru. Ovo je najpoznatiji prizor za 36-godišnjeg Denga, jednog od rijetkih proizvođača čaja Mengding svoje generacije, sa plantažom od 50mu (= 3,3 hektara) smještenom na 1100m nadmorske visine. Deng dolazi iz porodice proizvođača čajeva, ali nošenje porodičnog naslijeđa nije lak zadatak. „Naši čajevi uzgajaju se na velikim nadmorskim visinama u organskom okruženju kako bi se osigurala njihova izvrsna kvaliteta. Ali u isto vrijeme, gustoća rasta je niska, troškovi su visoki i pupoljci su neujednačeni, što otežava berbu čaja. Zato su visokoplaninski čajevi obično male berbe i njihove vrijednosti se ne odražavaju na tržištu.”Posljednje dvije godine Deng pokušava podići svijest potrošača o planinskim čajevima kako bi promovirao njihovu vrijednost. A kad je upoznao Fan, koji je tražio plantažu za implementaciju Seeed -ove 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.
Power Part
Power Part uglavnom sadrži solarnu ploču i litijumsku bateriju, ako samo napravite ovaj projekat za demonstraciju, možete ih zanemariti. Ili možete slijediti prethodni vodič za instaliranje napajanja čvora.
Sensors Part
U dijelu senzora, zbog brojnih senzora, koristili smo meteorološku stanicu, a također smo napravili i akrilni držač 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 senzora O2, senzora prašine i senzora CO2. Konačno, osjetnik temperature i vlažnosti na dnu akrilnog držača.
Osim toga, senzor temperature i vlažnosti tla ugrađuje se sam u tlo. Node Part
Node Part je Seeeduino LoRaWan koji se instalira u vodootpornu kutiju, povezuje se na napajanje i senzore preko vodenih spojeva. Među njima, senzor prašine spojen je na LoRaWan -ov digitalni pin D3, CO2 senzor spojen na pin D4 & D5, senzor tla povezan na pin D6 & D7, O2 senzor 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 senzora tla potrebno je dodati otpornik od 10 k.
Seeeduino LoRaWan povremeno prikuplja vrijednosti senzora i šalje ih na Gateway putem LoRa -e. Format podataka je sljedeći:
{
[0], /* Temperatura vazduha (℃)* /[1], /* Vlažnost vazduha (%)* /[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 greške senzora */}
Svaki bit u bajtu koda greške senzora ima različito značenje, baš kao u nastavku:
{
bit0: 1; / * Greška senzora barometra */ bit1: 1; / * Greška senzora CO2 */ bit2: 1; / * Greška senzora prašine */ bit3: 1; / * Greška senzora svjetla */ bit4: 1; / * Greška senzora O2 */ bit5: 1; / * Greška senzora tla */ rezervirano: 2; / * Rezervisano */}
Gateway Part
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 preko vodenih spojeva. Budući da koristi specijalizirani firmver, slijedite Seeed Wiki kako biste ga konfigurirali.
Korak 4: Programiranje softvera
Kao hardverska veza, i softversko programiranje se može podijeliti, može se podijeliti na 3 dijela: čvor, pristupnik i web mjesto.
Node Part
Većina upravljačkih programa kojima je potreban Node Part već se nalaze u folderu origin_driver. Biblioteke 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, vlažnost i nadmorsku visinu, tako da ima 3 sučelja za mjerenje 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 (); //… još jedan_senzor-> getSomeValue (); //…
No, koristeći OOP, to izgleda ovako:
for (auto i = 0; i getValue ();
}
Pakirali smo i klasu aplikacije, ona implementira IApplication interfejs, metod setup () i loop () u IoTea.ino može pozvati setup () i loop () metodu u objektu Application.
NAPOMENA: Serijski USB se koristi samo za otklanjanje grešaka. Nakon otklanjanja grešaka, molimo vas da komentarišete da je inicijalizirani kod u metodi setup ().
Gateway Part
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 učitati fotografije, konfigurirajte svoj AWS slijedeći korake. Prvo instalirajte AWS SDK i AWS CLI na svoj Raspberry Pi pomoću ovih naredbi:
sudo pip install boto3
sudo pip install awscli
a zatim pokrenite AWS CLI:
sudo aws configure
Konfigurirajte svoj ID pristupnog ključa za AWS, ID tajnog pristupa AWS -a i naziv zadanog regiona.
Ako ne volite učitavati svoje fotografije, možete preskočiti korake konfiguracije AWS -a i kodove komentara o otpremanju u photo.py. Za pokretanje ovog programa nakon svakog pokretanja Raspberry Pi -a, možete stvoriti sliku naziva datoteke u /etc/init.d i upisati joj sljedeći kod.
#!/bin/bash
# /etc/init.d/photo ### BEGIN INIT INFO # Obezbeđuje: seeed_photo # Obavezan start: $ remote_fs $ syslog # Obavezno-zaustavi: $ remote_fs $ syslog # Podrazumevano-početak: 2 3 4 5 # Podrazumevano-zaustavi: 0 1 6 # Kratak opis: snimanje fotografija initscript # Opis: Ova usluga se koristi za upravljanje snimanjem fotografija ### END INIT INFO futrola "$ 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 dozvolu za izvršenje
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
i testirajte 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 postavke fotografije
NAPOMENA: Ako želite pokrenuti gateway nakon pokretanja Raspberry Pi, dodajte početne kodove gatewaya u Seeed Wiki u /etc/rc.local, neka izgleda ovako:
#!/bin/sh -e
# # rc.local # # Ova skripta se izvršava na kraju svake višekorisničke razine izvođenja. # Uvjerite se da će skripta "izaći 0" u slučaju uspjeha ili bilo koje druge # vrijednosti u slučaju greške. # # Da biste omogućili ili onemogućili ovu skriptu, samo promijenite # bita izvođenja. # # Prema zadanim postavkama, ova skripta ne radi ništa. # Odštampajte IP adresu _IP = $ (ime hosta -I) || true ako ["$ _IP"]; onda 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
Website
Web lokaciju 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 install virtualenv
3. korak Klonirajte našu web stranicu s GitHub -a
sudo yum -y install git
git clone
Korak 4. Kreirajte 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. Kreirajte bazu podataka
sudo yum -y instalirajte mariadb mariabd -server
sudo systemctl omogući mariadb sudo systemctl start mariadb mysql -uroot -p
a zatim upotrijebite iotea_hb.sql za kreiranje tablice.
Korak 7. Kreirajte db.ini i upišite mu ove kodove
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
promijenite putanju db.ini 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, ponovo unesite virtualno okruženje i pokrenite loriot aplikaciju:
cd iotea-hb
izvor kanta/aktiviraj gunicorn 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čuje se:
Blu Media Robot (ažuriranje): 7 koraka
Blu Media Robot (ažuriranje): blu je robot koji radi s makeblock matičnom pločom i malinom za elektroniku za popis dijelova koje možete kupiti od makebloka kao ja na početku, sada imam 3d pisač (wanahoa i3 +) i možete ga preuzeti različitim dijelovima za njihovo štampanje na
Vidjeli LoRa IoTea rješenje: 5 koraka
Vidjeli LoRa IoTea rješenje: Automatski sistem prikupljanja informacija primijenjen na plantaži čaja. To je dio inteligentnog prikupljanja poljoprivrednih informacija
Vidjeli IoTea LoRa rješenje (sa Azure, ažuriranje 1812): 5 koraka
Vidjeli 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 smo pokušali poslati svoje IoTea podatke
Arduino projekt: LoRa modul za testiranje RF1276 za rješenje za GPS praćenje: 9 koraka (sa slikama)
Arduino projekt: Testni domet LoRa modul RF1276 za GPS praćenje Rješenje: Povezivanje: USB - SerijskiPotrebno: Chrome preglednik Potreban: 1 X Arduino Mega potreba: 1 X GPS potreba: 1 X SD kartica Potreba: 2 X LoRa modem RF1276Funkcija: Arduino Pošalji GPS vrijednost na glavnu bazu - Glavna baza čuva podatke u Dataino Server Lora modulu: 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 je vjerojatno jedna od najpametnijih sadnica koje ste ikada vidjeli. Sve 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