Cuprins:
- Pasul 1: Lucruri utilizate în acest proiect
- Pasul 2: Poveste
- Pasul 3: Conexiune hardware
- Pasul 4: Programare software
- Pasul 5: Operațiune
Video: Seeed IoTea LoRa Solution (Update 1811): 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Internet + este un concept popular acum. De data aceasta am încercat internetul, plus agricultura, pentru a face ca ceaiul să crească pe internet.
Pasul 1: Lucruri utilizate în acest proiect
Componente hardware
- Grove - Senzor de dioxid de carbon (MH-Z16)
- Grove - senzor digital de lumină
- Grove - Senzor de praf (PPD42NS)
- Grove - Senzor de oxigen (ME2-O2-Ф20)
- Senzor de umiditate și temperatură a solului
- LoRa LoRaWAN Gateway - Kit 868MHz cu Raspberry Pi 3
- Grove - Senzor de temp & Humi și barometru (BME280)
Aplicații software și servicii online
Microsoft Visual Studio 2015
Pasul 2: Poveste
Pe muntele Mengding la nord-est de Ya’an, Sichuan, creasta montană se îndreaptă spre vest spre est, într-o mare verde. Aceasta este o priveliște familiară pentru Deng, în vârstă de 36 de ani, unul dintre puținii producători de ceai Mengding din generația sa, cu o plantație de 50mu (= 3,3 hectare) situată la 1100m deasupra nivelului mării. Deng provine dintr-o familie de producători de ceai, dar continuarea moștenirii familiei nu este o sarcină ușoară. „Ceaiurile noastre sunt cultivate la mare altitudine într-un mediu organic pentru a asigura calitatea sa excelentă. Dar, în același timp, densitatea de creștere este scăzută, costul este ridicat și înmugurirea este inegală, ceea ce face ca ceaiul să fie greu de recoltat. De aceea, ceaiurile de munte sunt în mod normal recolte mici, iar valorile lor nu se reflectă pe piață.”În ultimii doi ani, Deng a încercat să sensibilizeze consumatorii cu privire la ceaiul de munte pentru a le promova valoarea. Și când l-a întâlnit pe Fan, care căuta o plantație pentru a implementa tehnologia IoTea a lui Seeed, s-a făcut o potrivire perfectă pentru o soluție.
Pasul 3: Conexiune hardware
Hardware-ul acestui proiect poate fi împărțit în 4 părți: putere, senzori, nod și gateway. Articolul următor vă va arăta cum să îl finalizați pas cu pas.
Partea de putere
Partea de alimentare conține în principal un panou solar și o baterie cu litiu, dacă doar construiți acest proiect pentru demonstrație, le puteți ignora. Sau puteți urma tutorialul anterior pentru a instala alimentarea nodului.
Partea senzorilor
În partea senzorilor, din cauza multor senzori, am folosit o stație meteo și, de asemenea, am realizat un suport acrilic pentru a le instala.
După cum vedeți în imaginea de mai sus, senzorul digital de lumină este întotdeauna în partea de sus, astfel încât să poată colecta informații despre iluminat. Senzorii care vor genera căldură sunt instalați în mijlocul suportului acrilic, cum ar fi senzorul O2, senzorul de praf și senzorul de CO2. În cele din urmă, senzor de temperatură și umiditate pe partea inferioară a suportului acrilic.
În plus, senzorul de temperatură și umiditate al solului este instalat singur în sol. Partea nodului
Node Part este un Seeeduino LoRaWan care este instalat într-o cutie impermeabilă, se conectează la alimentare și senzori prin îmbinări de apă. Dintre acestea, senzorul de praf se conectează la pinul digital D3 al LoRaWan, senzorul de CO2 se conectează la pinul D4 și D5, senzorul de sol se conectează la pinul D6 și D7, senzorul O2 se conectează la pinul analog A1 și senzorul de lumină și senzorul barometru se conectează la portul I2C.
NOTĂ: Trebuie adăugat un rezistor de 10 k între cablul albastru (de date) al senzorului de sol și cablul roșu (Vcc).
Seeeduino LoRaWan colectează din când în când valoarea senzorilor și le trimite la Gateway prin LoRa. Formatul de date ca mai jos:
{
[0], / * Temperatura aerului (℃) * / [1], / * Umiditatea aerului (%) * / [2], / * Altitudine (m) octet mare * / [3], / * Altitudine (m) octet scăzut * / [4], / * concentrație CO2 (PPM) octet ridicat * / [5], / * concentrație CO2 (PPM) octet scăzut * / [6], / * concentrație de praf (bucăți / 0,01cf) octet ridicat * / [7], / * Concentrație de praf (bucăți / 0,01cf) octet scăzut * / [8], / * Intensitate luminoasă (lux) octet mare * / [9], / * Intensitate lumină (lux) octet scăzut * / [10], / * Concentrația de O2 (%) * / [11], / * Temperatura solului (℃) * / [12], / * Umiditatea solului (%) * / [13], / * Tensiunea bateriei (V) * / [14] / * Cod eroare senzor * /}
Fiecare bit din codul de eroare al senzorului octet are o semnificație diferențiată, la fel ca mai jos:
{
bit0: 1; / * Eroare senzor barometru * / bit1: 1; / * Eroare senzor CO2 * / bit2: 1; / * Eroare senzor de praf * / bit3: 1; / * Eroare senzor de lumină * / bit4: 1; / * Eroare senzor O2 * / bit5: 1; / * Eroare senzor sol * / rezervat: 2; / * Rezervat * /}
Piesa Gateway
Gateway Part este un Raspberry Pi care a conectat modulul Gateway RHF0M301–868 și PRI 2 Bridge RHF4T002, a fost instalat într-o cutie impermeabilă și se conectează la camera de alimentare și USB prin Water Joints. Deoarece folosește firmware specializat, vă rugăm să urmați Seeed Wiki pentru a-l configura.
Pasul 4: Programare software
Ca conexiune hardware, programarea software poate fi, de asemenea, împărțită, poate fi împărțită în 3 părți: nod, gateway și site web.
Partea nodului
Majoritatea driverelor necesare pentru Node Part sunt deja conținute în folderul origin_driver. Bibliotecile care urmează trebuie instalate manual:
Adafruit_ASFcore
Deoarece proiectul este complicat, vă recomandăm să utilizați Microsoft Visual Studio în loc de Arduino IDE. Un plugin numit Visual Micro vă poate ajuta să creați un proiect Arduino utilizând Visual Studio, faceți clic aici pentru mai multe informații.
Pentru o mai bună lizibilitate și întreținere, de data aceasta folosim programarea orientată pe obiecte. Diagrama de clasă a acestui proiect arată ca mai jos:
Pentru acei senzori au deja driver OOP, l-am reambalat pentru a adapta acest proiect, pentru alții, le-am rescris driverele folosind OOP. Clasa de senzori în stratul middleware este utilizată pentru unificarea interfețelor senzorilor reali, de exemplu, un senzor barometru poate colecta temperatura, umiditatea și altitudinea în același timp, deci are 3 interfețe pentru a dobândi temperatură, umiditate și altitudine. Dar au denumirea metodei diferenței, ceea ce va face programul de achiziție a senzorilor mai complicat, la fel:
barometru-> getTemperature ();
barometru-> getHumidity (); barometru-> getAltitude (); // … another_sensor-> getSomeValue (); // …
Dar folosind OOP, arată astfel:
for (auto i = 0; i getValue ();
}
Am ambalat și o clasă de aplicație, implementează interfața IApplication, metoda setup () și loop () în IoTea.ino poate apela metoda setup () și loop () în obiectul Application.
NOTĂ: Seria USB este utilizată NUMAI pentru depanare. După depanare, vă rugăm să comentați codul de inițializare în metoda setup ().
Piesa Gateway
Programul Python al Gateway Part din folderul principal este utilizat pentru a face fotografii și a le încărca pe Amazon S3 Server în fiecare oră. Înainte de ao utiliza, asigurați-vă că fswebcam este deja instalată în Raspberry Pi:
sudo apt-get update && sudo apt-get install fswebcam
Dacă doriți să încărcați fotografii, configurați AWS urmând pașii. Mai întâi, instalați AWS SDK și AWS CLI pe Raspberry Pi utilizând aceste comenzi:
sudo pip instala boto3
sudo pip instalează awscli
și apoi, rulați AWS CLI:
sudo aws configure
Configurați ID-ul cheii de acces AWS, ID-ul accesului AWS secret și numele regiunii implicite.
Dacă nu vă place să încărcați fotografiile, puteți sări peste pașii de configurare AWS și codurile de comentarii despre încărcare în photo.py. Pentru a rula acest program după ce porniți de fiecare dată Raspberry Pi, puteți crea o fotografie cu numele fișierului în /etc/init.d și să scrieți următorul cod.
#! / bin / bash
# /etc/init.d/photo ### BEGIN INIT INFO # Oferă: seeed_photo # Required-Start: $ remote_fs $ syslog # Required-Stop: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Descriere scurtă: realizarea fotografiei în scriptul # Descriere: Acest serviciu este utilizat pentru gestionarea fotografierii ### END INIT INFO caz „$ 1” la început) ecou „Începe fotografierea” /home/rxhf/photo.py &;; opriți) ecou „Opriți fotografierea” ucide $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) ecou „Utilizare: pornire fotografie service | stop” ieșire 1;; esac ieșire 0
setați permisiunea de execuție
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
și testați-l
sudo /etc/init.d/photo start
Dacă nu există nicio problemă, opriți-o și adăugați-o la aplicația de pornire
sudo /etc/init.d/photo stop
sudo update-rc.d implicit foto
NOTĂ: Dacă doriți să porniți gateway-ul după pornirea Raspberry Pi, adăugați coduri de pornire ale gateway-ului în Seeed Wiki la /etc/rc.local, să arate ca:
#! / bin / sh -e
# # rc.local # # Acest script este executat la sfârșitul fiecărui nivel de rulare multi-utilizator. # Asigurați-vă că scriptul va „ieși de la 0” la succes sau orice altă valoare # la eroare. # # Pentru a activa sau dezactiva acest script, trebuie doar să schimbați # de biți de execuție. # # În mod implicit, acest script nu face nimic. # Imprimați adresa IP _IP = $ (hostname -I) || adevărat dacă ["$ _IP"]; apoi printf "Adresa mea IP este% 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 exit 0
Site-ul web
Am implementat site-ul web pe CentOS 7. Următorii pași vă vor arăta cum să implementați.
Pasul 1. Instalați Python3
sudo yum -y install epel-release
sudo yum -y install python36
Pasul 2. Instalați Python pip și mediul virtual
wget
sudo python36 get-pip.py sudo pip instala virtualenv
Setp 3. Clonați site-ul nostru web din GitHub
sudo yum -y install git
git clone
Pasul 4. Creați și activați mediul virtual
virtualenv -p python36 iotea-hb
cd iotea-hb bin sursă / activați
Pasul 5. Instalați biblioteci dependente
pip instalează pymysql
pip install dbutils pip install flask pip install websocket-client pip install cofigparser
Pasul 6. Creați baza de date
sudo yum -y install mariadb mariabd-server
sudo systemctl activate mariadb sudo systemctl start mariadb mysql -uroot -p
și apoi utilizați iotea_hb.sql pentru a crea un tabel.
Pasul 7. Creați db.ini și scrieți aceste coduri
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
modificați calea db.ini în db.py
# în db.py
# cf.read ("/ data / www / python3_iotea_hb / iotea / conf / db.ini") cf.read ("/ home // iotea-hb / db.ini")
Pasul 8. Schimbați portul în app.py și porniți site-ul web:
# în app.py
# app.run (debug = True, port = 6000) app.run (debug = True, port = 8080)
# în terminal
pip instala gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app: app
acum vizitați 127.0.0.1:8080 în browserul dvs. web, puteți vedea site-ul web, dar datele în timp real nu sunt afișate.
Pasul 9. Obțineți date loriot
Deschideți un alt terminal, reintroduceți mediul virtual și porniți aplicația loriot:
cd iotea-hb
coș sursă / activează gunicorn loriot: aplicație
Așteptați un timp, veți vedea datele afișate pe site-ul web sau puteți schimba wss în loriot.py:
# în loriot.py
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
Pasul 5: Operațiune
Puteți vizita site-urile noastre web pentru a vizualiza date în timp real:
- În Ya'an
- Pentru demonstrație
Recomandat:
Covid-19 Update Tracker folosind ESP8266: 9 pași
Covid-19 Update Tracker folosind ESP8266: Acesta este un proiect care prezintă datele actuale ale focarului de coronavirus din diferite orașe ale statelor din India în timp real pe afișaj OLED. Acest tracker de stare live vă ajută să monitorizați actualizarea covid-19 în timp real a districtului dvs. Acest proiect este complet b
Controlul electrocasnicelor peste LoRa - LoRa în automatizarea caselor - Telecomandă LoRa: 8 pași
Controlul electrocasnicelor peste LoRa | LoRa în automatizarea caselor | Telecomandă LoRa: Controlează și automatizează aparatele tale electrice de la distanțe mari (Kilometri) fără prezența internetului. Acest lucru este posibil prin LoRa! Hei, ce se întâmplă, băieți? Akarsh aici de la CETech. Acest PCB are, de asemenea, un afișaj OLED și 3 relee care
Soluție Loeed LoRa IoTea: 5 pași
Soluție Seeed LoRa IoTea: un sistem automat de colectare a informațiilor aplicat plantației de ceai. Face parte din colectarea inteligentă a informațiilor agricole
Seeed IoTea LoRa Solution (cu Azure, Update 1812): 5 pași
Soluție Loeed IoTea LoRa (cu Azure, Update 1812): Microsoft Azure este un serviciu cloud care oferă o putere de calcul mai puternică și stabilă. De data aceasta am încercat să îi trimitem datele IoTea către acesta
Seeed Studio CAN-BUS V2.0 Hacking - Noțiuni introductive: 5 pași
Seeed Studio CAN-BUS V2.0 Hacking - Noțiuni introductive: Acest instructiv este destinat începătorilor care își cunosc deja drumul în jurul Arduino. Știința inițială pentru a începe este întotdeauna durere și consum de timp în orice proiect. Dar până când nu-ți vei da seama, aproape întotdeauna ți-ai dori să ai pe cineva de care să