Taula de continguts:
- Pas 1: coses utilitzades en aquest projecte
- Pas 2: història
- Pas 3: connexió de maquinari
- Pas 4: programació de programari
- Pas 5: operació
Vídeo: Seeed IoTea LoRa Solution (Actualització 1811): 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Internet + és ara un concepte popular. Aquesta vegada hem provat Internet i l'agricultura perquè el jardí del te creixi a Internet.
Pas 1: coses utilitzades en aquest projecte
Components de maquinari
- Grove - Sensor de diòxid de carboni (MH-Z16)
- Grove - Sensor de llum digital
- Grove - Sensor de pols (PPD42NS)
- Grove - Sensor d'oxigen (ME2-O2-Ф20)
- Sensor de temperatura i humitat del sòl
- LoRa LoRaWAN Gateway: kit de 868 MHz amb Raspberry Pi 3
- Grove - Sensor de temperatura i temperatura i baròmetre (BME280)
Aplicacions de programari i serveis en línia
Microsoft Visual Studio 2015
Pas 2: història
A la muntanya Mengding al nord-est de Ya’an, Sichuan, la cresta de la muntanya discorre d’oest a est en un mar verd. Aquest és un espectacle molt familiar per a Deng, de 36 anys, un dels pocs fabricants de te Mengding de la seva generació, amb una plantació de 50mu (= 3,3 hectàrees) situada a 1100m sobre el nivell del mar. Deng prové d’una família de fabricants de te, però continuar el llegat familiar no és una tasca fàcil. “Els nostres tes es conreen a gran altitud en un entorn orgànic per garantir la seva excel·lent qualitat. Però, al mateix temps, la densitat de creixement és baixa, el cost és elevat i la brotació és desigual, cosa que fa que el te sigui difícil de collir. Per això, els tes d’alta muntanya són normalment collites petites i els seus valors no es reflecteixen al mercat . Durant els darrers dos anys, Deng ha intentat sensibilitzar els consumidors sobre el te d’alta muntanya per promoure el seu valor. I quan va conèixer Fan, que buscava una plantació per implementar la tecnologia IoTea de Seeed, es va fer una combinació perfecta per a una solució.
Pas 3: connexió de maquinari
El maquinari d’aquest projecte es pot dividir en 4 parts: alimentació, sensors, node i passarel·la. El següent article us mostrarà com completar-lo pas a pas.
Part de la potència
Power Part conté principalment un panell solar i una bateria de liti, si només construïu aquest projecte per demostrar-lo, podeu ignorar-los. O bé podeu seguir el tutorial anterior per instal·lar l'alimentació del node.
Part dels sensors
A Sensors Part, a causa de la gran quantitat de sensors, hem utilitzat una estació meteorològica i també hem fet un suport acrílic per instal·lar-los.
Com veieu a la imatge superior, el sensor de llum digital sempre està a la part superior, de manera que pugui recollir informació sobre il·luminació. Els sensors que generaran calor s’instal·len al centre del suport d’acrílic, com ara el sensor O2, el sensor de pols i el sensor de CO2. Per fi, sensor de temperatura i humitat a la part inferior del suport d’acrílic.
A més, el sensor de temperatura i humitat del sòl s’instal·la sol al sòl. Part del node
Node Part és un Seeeduino LoRaWan que s’instal·la en una caixa impermeable, que es connecta a l’alimentació i als sensors mitjançant Water Joints. Entre ells, el sensor de pols es connecta al pin digital D3 de LoRaWan, el sensor de CO2 es connecta al pin D4 i D5, el sensor de sòl es connecta al pin D6 i D7, el sensor O2 es connecta al pin analògic A1 i el sensor de llum i baròmetre es connecta al port I2C.
NOTA: S'ha d'afegir una resistència de 10 k entre el cable blau (dades) del sensor del sòl i el cable vermell (Vcc).
Seeeduino LoRaWan recull el valor dels sensors de tant en tant i els envia a Gateway mitjançant LoRa. El format de dades que es mostra a continuació:
{
[0], / * Temperatura de l'aire (℃) * / [1], / * Humitat de l'aire (%) * / [2], / * Altitud (m) byte alt * / [3], / * Altitud (m) byte baix * / [4], / * concentració de CO2 (PPM) byte alt * / [5], / * concentració de CO2 (PPM) byte baix * / [6], / * concentració de pols (pcs / 0,01cf) byte alt * / [7], / * Concentració de pols (pcs / 0,01cf) byte baix * / [8], / * Intensitat lumínica (lux) byte alt * / [9], / * Intensitat lumínica (lux) byte baix * / [10], / * Concentració d’O2 (%) * / [11], / * Temperatura del sòl (℃) * / [12], / * Humitat del sòl (%) * / [13], / * Tensió de la bateria (V) * / [14] / * Codi d'error del sensor * /}
Cada bit del byte del codi d'error del sensor té un significat diferencial, igual que a continuació:
{
bit0: 1; / * Error del sensor de baròmetre * / bit1: 1; / * Error del sensor de CO2 * / bit2: 1; / * Error del sensor de pols * / bit3: 1; / * Error del sensor de llum * / bit4: 1; / * Error del sensor O2 * / bit5: 1; / * Error del sensor del sòl * / reservat: 2; / * Reservat * /}
Part de la passarel·la
Gateway Part és un Raspberry Pi que connecta el mòdul Gateway RHF0M301–868 i el PRI 2 Bridge RHF4T002, que s’instal·la en una caixa impermeable i es connecta a la càmera d’alimentació i USB mitjançant Water Joints. Com que utilitza un firmware especialitzat, seguiu Seeed Wiki per configurar-lo.
Pas 4: programació de programari
Com a connexió de maquinari, la programació de programari també es pot dividir, es pot dividir en 3 parts: node, passarel·la i lloc web.
Part del node
La majoria dels controladors necessaris per a la part del node ja es troben a la carpeta origin_driver. Cal instal·lar manualment les biblioteques següents:
Adafruit_ASFcore
Com que el projecte és complicat, us recomanem que utilitzeu Microsoft Visual Studio en lloc d'Arduino IDE. Un connector anomenat Visual Micro us pot ajudar a generar un projecte Arduino mitjançant Visual Studio; feu clic aquí per obtenir més informació.
Per a una millor llegibilitat i facilitat de manteniment, utilitzem aquesta vegada la programació orientada a objectes. El diagrama de classes d’aquest projecte té l’aspecte següent:
Per a aquells sensors que ja tenen controlador OOP, el vam tornar a empaquetar per adaptar aquest projecte; per a altres, vam canviar els seus controladors mitjançant OOP. La classe de sensor en capa middleware s’utilitza per unificar interfícies de sensors reals, per exemple, un sensor de baròmetre pot recollir temperatura, humitat i altitud al mateix temps, de manera que té 3 interfícies per adquirir temperatura, humitat i altitud. Però tenen un nom de mètode de diferència que farà que el programa d’adquisició de sensors sigui més complicat, així:
baròmetre-> getTemperature ();
baròmetre-> getHumidity (); baròmetre-> getAltitude (); // … un altre_sensor-> getSomeValue (); // …
Però fent servir POO, es veu així:
for (auto i = 0; i getValue ();
}
També hem empaquetat una classe d'aplicació, implementa la interfície IApplication, el mètode setup () i loop () a IoTea.ino pot cridar el mètode setup () i loop () a l'objecte Application.
NOTA: El serial USB s’utilitza NOMÉS per depurar. Després de la depuració, comenteu que inicialitza el codi al mètode setup ().
Part de la passarel·la
El programa Python de Gateway Part a la carpeta inicial s’utilitza per fer fotos i penjar-les al servidor Amazon S3 cada hora. Abans d’utilitzar-lo, assegureu-vos que fswebcam ja estigui instal·lada al vostre Raspberry Pi:
sudo apt-get update && sudo apt-get install fswebcam
Si voleu penjar fotos, configureu el vostre AWS seguint els passos següents. En primer lloc, instal·leu AWS SDK i AWS CLI al vostre Raspberry Pi mitjançant aquestes ordres:
sudo pip instal·lar boto3
sudo pip instal·la awscli
i, a continuació, executeu AWS CLI:
sudo aws configure
Configureu l'identificador de clau d'accés AWS, l'identificador d'accés secret d'AWS i el nom de regió per defecte.
Si no us agrada penjar les vostres fotos, podeu ometre els passos de configuració d'AWS i codis de comentaris sobre la càrrega a photo.py. Per executar aquest programa després d'arrencar Raspberry Pi cada vegada, podeu crear una foto de nom de fitxer a /etc/init.d i escriure-hi el següent codi.
#! / bin / bash
# /etc/init.d/photo ### BEGIN INIT INFO # Ofereix: seeed_photo # Required-Start: $ remote_fs $ syslog # Required-Stop: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Descripció breu: presa de fotografies initscript # Descripció: aquest servei s'utilitza per gestionar la presa de fotos ### END INIT INFO cas "$ 1" a l'inici) eco "Comença a fer fotos" /home/rxhf/photo.py &;; stop) eco "Deixa de fer fotos" kill $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) ressò "Ús: foto de servei inici | parada" sortida 1;; sortida 0 d'esac
defineix el permís d'execució
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
i proveu-lo
sudo /etc/init.d/photo start
Si no hi ha cap problema, atureu-lo i afegiu-lo a l'aplicació d'inici
sudo /etc/init.d/photo stop
sudo update-rc.d per defecte de la foto
NOTA: Si voleu iniciar la passarel·la després de l’arrencada de Raspberry Pi, afegiu els codis d’inici de la passarel·la a Seeed Wiki a /etc/rc.local, deixeu que sembli:
#! / bin / sh -e
# # rc.local # # Aquest script s'executa al final de cada nivell d'execució multiusuari. # Assegureu-vos que l'script "sortirà de 0" en cas d'èxit o de qualsevol altre # valor en cas d'error. # # Per habilitar o desactivar aquest script, canvieu l'execució # bits. # # Per defecte, aquest script no fa res. # Imprimiu l'adreça IP _IP = $ (nom de l'amfitrió -I) || cert si ["$ _IP"]; després printf "La meva adreça IP és% 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 sortida 0
Lloc web
Hem desplegat el lloc web a CentOS 7. Els passos següents us mostraran com implementar-lo.
Pas 1. Instal·leu Python3
sudo yum -y instal·leu epel-release
sudo yum -y instal·lar python36
Pas 2. Instal·leu Python pip i entorn virtual
wget
sudo python36 get-pip.py sudo pip instal·la virtualenv
Setp 3. Cloneu el nostre lloc web des de GitHub
sudo yum -y install git
git clone
Pas 4. Creeu i activeu l'entorn virtual
virtualenv -p python36 iotea-hb
cd iotea-hb source bin / activate
Pas 5. Instal·leu biblioteques dependents
pip instal·lar pymysql
pip install dbutils pip install flask pip install websocket-client pip install cofigparser
Pas 6. Crea una base de dades
sudo yum -y instal·leu mariadb mariabd-server
sudo systemctl habilitar mariadb sudo systemctl iniciar mariadb mysql -uroot -p
i després utilitzeu iotea_hb.sql per crear una taula.
Pas 7. Creeu db.ini i escriviu-hi aquests codis
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
canvieu el camí de db.ini a db.py
# a db.py
# cf.read ("/ data / www / python3_iotea_hb / iotea / conf / db.ini") cf.read ("/ home // iotea-hb / db.ini")
Pas 8. Canvieu el port a app.py i inicieu el lloc web:
# a app.py
# app.run (depuració = True, port = 6000) app.run (depuració = True, port = 8080)
# al terminal
pip install gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app: app
ara visiteu 127.0.0.1:8080 al navegador web, podeu veure el lloc web, però no es mostren dades en temps real.
Pas 9. Obteniu dades loriot
Obriu un altre terminal, torneu a introduir l’entorn virtual i inicieu l’aplicació loriot:
cd iotea-hb
paperera font / activa gunicorn loriot: aplicació
Espereu una estona, veureu dades mostrades al lloc web o podeu canviar wss a loriot.py:
# a loriot.py
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
Pas 5: operació
Podeu visitar els nostres llocs web per veure dades en temps real:
- A Ya'an
- Per a la demostració
Recomanat:
Actualització de trepant sense fil econòmica: 4 passos
Actualització de trepant sense fil econòmica: aquesta vegada, compartiré com actualitzar la bateria de trepant sense fils econòmica. L’únic que actualitzarem és només la bateria, ja que el trepant barat té poca capacitat de bateria. Afegirem alguna funció a la bateria ! Funcions afegides: carregueu el b
(ACTUALITZACIÓ - HI HA UNA POCA PROBLEMA) CONTROLADOR DE JOC USB PER A P.C: 10 passos (amb imatges)
(ACTUALITZACIÓ: HI HA UN POC PROBLEMA) CONTROLADOR DE JOC USB PER P.C: UN CONTROLADOR DE JOC PER A QUALSEVOL JOC (QUASI)
Controlar els electrodomèstics sobre LoRa - LoRa en domòtica - Control remot LoRa: 8 passos
Controlar els electrodomèstics sobre LoRa | LoRa en domòtica | Control remot LoRa: controleu i automatitzeu els aparells elèctrics des de llargues distàncies (quilòmetres) sense la presència d'Internet. Això és possible a través de LoRa! Ei, què passa, nois? Akarsh aquí de CETech.This PCB també té una pantalla OLED i 3 relés que un
Seeed LoRa IoTea Solució: 5 passos
Seeed LoRa IoTea Solution: un sistema automàtic de recollida d’informació aplicat a les plantacions de te. Forma part de la recopilació d'informació agrícola intel·ligent
Seeed IoTea LoRa Solution (amb Azure, actualització 1812): 5 passos
Seeed IoTea LoRa Solution (amb Azure, actualització 1812): Microsoft Azure és un servei al núvol que proporciona una potència informàtica més potent i estable. Aquesta vegada hem intentat enviar-hi les nostres dades IoTea