Tartalomjegyzék:

Látta az IoTea LoRa megoldást (1811 frissítés): 5 lépés
Látta az IoTea LoRa megoldást (1811 frissítés): 5 lépés

Videó: Látta az IoTea LoRa megoldást (1811 frissítés): 5 lépés

Videó: Látta az IoTea LoRa megoldást (1811 frissítés): 5 lépés
Videó: Высокая плотность 2022 2024, November
Anonim
Látta az IoTea LoRa megoldást (1811 frissítés)
Látta az IoTea LoRa megoldást (1811 frissítés)

Az Internet+ ma már népszerű koncepció. Ezúttal kipróbáltuk az internetet és a mezőgazdaságot, hogy teakertet készítsünk az Internet Tea -ból.

1. lépés: A projektben használt dolgok

Hardver alkatrészek

  • Grove - Szén -dioxid érzékelő (MH -Z16)
  • Grove - Digitális fényérzékelő
  • Grove - Porérzékelő (PPD42NS)
  • Grove-oxigénérzékelő (ME2-O2-Ф20)
  • Talaj nedvesség és hőmérséklet érzékelő
  • LoRa LoRaWAN átjáró - 868 MHz -es készlet Raspberry Pi 3 -mal
  • Grove - Temp & Humi és barométer érzékelő (BME280)

Szoftveralkalmazások és online szolgáltatások

Microsoft Visual Studio 2015

2. lépés: Történet

A Mengding -hegyen, Ya'an -tól északkeletre, Szecsuánban a hegygerinc nyugatról keletre, zöld tengerben fut. Ez a leghíresebb látnivaló a 36 éves Deng számára, aki egyike azon kevés Mengding teafőzőknek, akiknek 50mu (= 3,3 hektár) ültetvénye 1100 m tengerszint feletti magasságban található. Deng teafőző családból származik, de a családi örökség továbbvitele nem könnyű feladat. „Teáinkat nagy tengerszint feletti magasságban, organikus környezetben termesztik, hogy kiváló minőségűek legyenek. Ugyanakkor a növekedési sűrűség alacsony, a költségek magasak és a bimbózás egyenetlen, ami megnehezíti a tea betakarítását. Ezért a magashegyi teák általában kis termésűek, és értékeik nem tükröződnek a piacon.”Az elmúlt két évben a Deng arra törekedett, hogy felhívja a fogyasztók figyelmét a magashegyi teákra, hogy népszerűsítse azok értékét. És amikor találkozott Fannel, aki ültetvényt keresett Seeed IoTea technológiájának megvalósítására, tökéletesen megfelelt a megoldásnak.

3. lépés: Hardvercsatlakozás

Ennek a projektnek a hardvere 4 részre osztható: tápellátás, érzékelők, csomópont és átjáró. A következő cikk lépésről lépésre bemutatja, hogyan kell befejezni.

Teljesítmény rész

A tápegység főleg napelemet és lítium akkumulátort tartalmaz, ha ezt a projektet csak demonstrációra építi, figyelmen kívül hagyhatja őket. Vagy kövesse az előző útmutatót a csomópont -teljesítmény telepítéséhez.

Érzékelők rész

Az érzékelők részben a sok érzékelő miatt időjárás állomást használtunk, és egy akril konzolt is készítettünk a telepítéshez.

Kép
Kép

Amint a fenti képen látható, a digitális fényérzékelő mindig a tetején van, így képes megvilágítani a világítást. A hőt termelő érzékelők az akril tartó közepére vannak felszerelve, mint például az O2 érzékelő, a porérzékelő és a CO2 érzékelő. Végül a hőmérséklet és páratartalom érzékelő az akril konzol alján.

Ezenkívül a talajhőmérséklet- és páratartalom -érzékelőt egyedül telepítik a talajba. Csomópont rész

Kép
Kép

A Node Part egy Seeeduino LoRaWan, amely vízálló dobozba van szerelve, és a vízcsatlakozásokon keresztül csatlakozik az áramhoz és az érzékelőkhöz. Közülük a Porérzékelő csatlakozik a LoRaWan digitális D3 tűjéhez, a CO2 érzékelő a D4 és D5 tűhöz, a Talajérzékelő a D6 és D7 érintkezőhöz, az O2 érzékelő az analóg A1 tűhöz, a Fényérzékelő és Barométer érzékelő pedig az I2C porthoz.

MEGJEGYZÉS: 10 k -es ellenállást kell hozzáadni a Talajérzékelő kék (adat) és piros (Vcc) kábeleihez.

A Seeeduino LoRaWan időnként összegyűjti az érzékelők értékét, és elküldi azokat a Gateway -re a LoRa -n keresztül. Az alábbi adatformátum:

{

[0], /* Levegő hőmérséklet (℃)* /[1], /* Levegő páratartalom (%)* /[2], /* Magasság (m) magas bájt* /[3], /* Magasság (m) alacsony bájt */[4],/ * CO2 -koncentráció (PPM) magas bájt */[5],/ * CO2 -koncentráció (PPM) alacsony bájt */[6],/ * Porkoncentráció (db/0,01 cf) magas bájt */[7],/ *Porkoncentráció (db/0,01 cf) alacsony bájt */[8],/ *Fényerősség (lux) magas bájt */[9],/ *Fényerősség (lux) alacsony bájt */ [10], /* O2 koncentráció (%)* /[11], /* Talaj hőmérséklete (℃)* /[12], /* Talaj páratartalma (%)* /[13], /* Akkumulátor feszültsége (V) */ [14]/ *Érzékelő hibakód */}

Az érzékelő hibakód -bájtjában lévő bitek mindegyike eltérő jelentéssel bír, mint az alábbiakban:

{

bit0: 1; / * Barométer érzékelő hiba */ bit1: 1; / * CO2 érzékelő hiba */ bit2: 1; / * Porérzékelő hiba */ bit3: 1; / * Fényérzékelő hiba */ bit4: 1; / * O2 érzékelő hiba */ bit5: 1; / * Talajérzékelő hiba */ fenntartva: 2; / * Fenntartva */}

Átjáró rész

Kép
Kép

A Gateway Part egy Raspberry Pi, amely csatlakoztatta az RHF0M301-868 és a PRI 2 Bridge RHF4T002 átjárómodult, vízálló dobozba telepítve, és a vízcsatlakozásokon keresztül csatlakozik az áramellátáshoz és az USB -kamerához. Mivel speciális firmware -t használ, kérjük, kövesse a Seeed Wiki konfigurációját.

4. lépés: Szoftverprogramozás

Mivel a hardverkapcsolat, a szoftverprogramozás is felosztható, három részre osztható: csomópont, átjáró és webhely.

Csomópont rész

A csomópont -részhez szükséges illesztőprogramok többsége már megtalálható az origin_driver mappában. Az alábbi könyvtárakat manuálisan kell telepíteni:

Adafruit_ASFcore

Mivel a projekt bonyolult, javasoljuk, hogy a Microsoft Visual Studio alkalmazást használja az Arduino IDE helyett. A Visual Micro nevű beépülő modul segíthet egy Arduino projekt létrehozásában a Visual Studio használatával, kattintson ide további információkért.

A jobb olvashatóság és karbantarthatóság érdekében ezúttal objektumorientált programozást használunk. A projekt osztálydiagramja az alábbiak szerint néz ki:

Kép
Kép

Azoknak az érzékelőknek, amelyek már rendelkeznek OOP illesztőprogrammal, újracsomagoltuk, hogy adaptálhassuk ezt a projektet, mások számára átírtuk az illesztőprogramjaikat az OOP használatával. A köztes szoftveres rétegben található érzékelőosztály a valódi érzékelők interfészeinek egységesítésére szolgál, például egy barométer -érzékelő egyszerre képes gyűjteni a hőmérsékletet, a páratartalmat és a magasságot, így 3 interfésszel rendelkezik a hőmérséklet, a páratartalom és a magasság meghatározásához. De van különböző módszer nevük, ami bonyolultabbá teszi az érzékelők értékének megszerzésére irányuló programot, a következőképpen:

barométer-> getTemperature ();

barométer-> getHumidity (); barométer-> getAltitude (); //… another_sensor-> getSomeValue (); //…

De az OOP használatával így néz ki:

for (auto i = 0; i getValue ();

}

Csomagoltunk egy Application osztályt is, amely megvalósítja az IApplication felületet, a setup () és a loop () metódust az IoTea.ino -ban.

MEGJEGYZÉS: Az USB Serial CSAK hibakeresésre használható. A hibakeresés után kérjük, írja meg megjegyzéseit, hogy inicializáló kódja van a setup () metódusban.

Átjáró rész

A Gateway Part Python programja az otthoni mappában fényképek készítésére és feltöltésére szolgál az Amazon S3 Serverre óránként. Használat előtt győződjön meg arról, hogy az fswebcam már telepítve van a Raspberry Pi -be:

sudo apt-get update && sudo apt-get install fswebcam

Ha fényképeket szeretne feltölteni, konfigurálja az AWS -t a következő lépésekkel. Először telepítse az AWS SDK -t és az AWS CLI -t Raspberry Pi készülékére a következő parancsok használatával:

sudo pip telepítse a boto3 -at

sudo pip telepítse awscli

majd futtassa az AWS CLI -t:

sudo aws configure

Állítsa be az AWS hozzáférési kulcs azonosítóját, az AWS titkos hozzáférési azonosítóját és az alapértelmezett régiónevet.

Ha nem szereti feltölteni fényképeit, kihagyhatja az AWS konfigurációs lépéseit és a photo.py fájlba történő feltöltéssel kapcsolatos megjegyzéskódokat. Ha a Raspberry Pi minden indítása után szeretné futtatni ezt a programot, létrehozhat egy fájlnévfotót az /etc/init.d mappában, és beírhatja a következő kódot.

#!/bin/bash

# /etc/init.d/photo ### BEGIN INIT INFO # Biztosítja: seeed_photo # Kötelező-Start: $ remote_fs $ syslog # Kötelező-Stop: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Rövid leírás: fénykép készítése incript &;; stop) echo "A fotózás leállítása" kill $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) echo "Használat: szervizfotó start | stop" kilépés 1;; esac kilépés 0

végrehajtási engedély megadása

sudo chmod 777 /etc/init.d/photo

sudo chmod 777 /home/rxhf/photo.py

és tesztelje

sudo /etc/init.d/photo start

Ha nincs probléma, állítsa le, és adja hozzá az indítási alkalmazáshoz

sudo /etc/init.d/photo stop

sudo update-rc.d fotó alapértelmezett beállításai

MEGJEGYZÉS: Ha a Raspberry Pi indítása után szeretné elindítani az átjárót, adja hozzá az átjáró kezdő kódjait a Seeed Wiki -ben a /etc/rc.local fájlhoz, így nézzen ki:

#!/bin/sh -e

# # rc.local # # Ez a szkript minden többfelhasználós futási szint végén kerül végrehajtásra. # Győződjön meg arról, hogy a szkript sikeresen "0" lesz, vagy hiba esetén más # érték. # # A szkript engedélyezéséhez vagy letiltásához csak módosítsa a végrehajtási # biteket. # # Alapértelmezés szerint ez a szkript nem tesz semmit. # Nyomtassa ki az IP -címet _IP = $ (gazdagépnév -I) || igaz, ha ["$ _IP"]; majd printf "Az IP -címem %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

Weboldal

A webhelyet a CentOS 7 rendszeren telepítettük. A következő lépések bemutatják a telepítés módját.

1. lépés: Telepítse a Python3 programot

sudo yum -y telepítse az epel -release programot

sudo yum -telepítse a python36 programot

2. lépés: Telepítse a Python pip és a virtuális környezetet

wget

sudo python36 get-pip.py sudo pip install virtualenv

3. beállítás: Klónozza honlapunkat a GitHubból

sudo yum -y telepítse a git -et

git klón

4. lépés: Hozzon létre és aktiváljon virtuális környezetet

virtualenv -p python36 iotea -hb

cd iotea-hb forrás bin/aktiválás

5. lépés: Függő könyvtárak telepítése

pip install pymysql

pip install dbutils pip install flask pip install websocket-client pip install cofigparser

6. lépés. Adatbázis létrehozása

sudo yum -y telepítse a mariadb mariabd -server -t

sudo systemctl engedélyezze a mariadb -t sudo systemctl indítsa el a mariadb mysql -uroot -p

majd az iotea_hb.sql használatával hozzon létre egy táblázatot.

7. Létrehozás db.ini, és írja be ezeket a kódokat

[db]

db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea

módosítsa a db.ini útvonalát a db.py fájlban

# db.py -ben

#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")

8. lépés: Cserélje ki az app.py portját, és indítsa el a webhelyet:

# in app.py

#app.run (debug = True, port = 6000) app.run (debug = True, port = 8080)

# a terminálban

pip install gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app: kb

most látogasson el a 127.0.0.1:8080 böngészőbe, láthatja a webhelyet, de a valós idejű adatok nem jelennek meg.

9. lépés. Loriot adatok beszerzése

Nyisson meg egy másik terminált, lépjen be újra a virtuális környezetbe, és indítsa el a loriot alkalmazást:

cd iotea-hb

forrás bin/aktiválja a gunicorn loriot: kb

Várjon egy kicsit, és az adatok megjelennek a webhelyen, vagy módosíthatja a wss fájlt a loriot.py fájlban:

# in loriot.py

#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")

ws = create_connection ()

5. lépés: Művelet

Látogassa meg weboldalainkat valós idejű adatok megtekintéséhez:

  • Ya'anban
  • Demonstrációra

Ajánlott: