Obsah:
- Krok 1: Veci použité v tomto projekte
- Krok 2: Príbeh
- Krok 3: Pripojenie hardvéru
- Krok 4: Programovanie softvéru
- Krok 5: Prevádzka
Video: Videl som riešenie IoTea LoRa (aktualizácia 1811): 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Internet+ je teraz populárny koncept. Tentokrát sme vyskúšali internet a poľnohospodárstvo, aby čajová záhrada vyrástla z internetu čaj.
Krok 1: Veci použité v tomto projekte
Hardvérové komponenty
- Grove - snímač oxidu uhličitého (MH -Z16)
- Grove - digitálny svetelný senzor
- Grove - snímač prachu (PPD42NS)
- Grove-snímač kyslíka (ME2-O2-Ф20)
- Senzor vlhkosti a teploty pôdy
- LoRa LoRaWAN Gateway - súprava 868 MHz s Raspberry Pi 3
- Grove - snímač teploty a vlhkosti a barometra (BME280)
Softvérové aplikácie a online služby
Microsoft Visual Studio 2015
Krok 2: Príbeh
Na hore Mengding severovýchodne od Ya’an v S' -čchuane hrebeň hrebeňa prebieha západne až východne v zelenom mori. Toto je najznámejší pohľad na 36-ročného Denga, jedného z mála mengdingských čajníkov svojej generácie, s plantážou 50 m (= 3,3 ha), ktorá sa nachádza v nadmorskej výške 1 100 m. Teng pochádza z rodiny čajníkov, ale pokračovať v rodinnom dedičstve nie je ľahká úloha. „Naše čaje sa pestujú vo vysokej nadmorskej výške v organickom prostredí, aby sa zabezpečila vynikajúca kvalita. Ale zároveň je hustota rastu nízka, náklady sú vysoké a pučanie je nerovnomerné, takže zber čaju je náročný. To je dôvod, prečo sú vysokohorské čaje zvyčajne malou úrodou a ich hodnoty sa na trhu neodrážajú. “Posledné dva roky sa Deng snaží zvýšiť povedomie spotrebiteľov o vysokohorskom čaji, aby propagoval ich hodnotu. A keď sa stretol s Fanom, ktorý hľadal plantáž na implementáciu technológie IoTea spoločnosti Seeed, bolo nájdené perfektné riešenie.
Krok 3: Pripojenie hardvéru
Hardvér tohto projektu je možné rozdeliť na 4 časti: Napájanie, senzory, uzol a brána. Nasledujúci článok vám ukáže, ako ho krok za krokom dokončiť.
Napájacia časť
Power Part obsahuje predovšetkým solárny panel a lítiovú batériu, ak tento projekt postavíte len na ukážku, môžete ho ignorovať. Alebo môžete podľa predchádzajúceho tutoriálu nainštalovať napájanie uzlov.
Časť senzorov
V časti Senzory sme kvôli množstvu senzorov použili meteorologickú stanicu a na ich inštaláciu sme tiež vyrobili akrylový držiak.
Ako vidíte na obrázku vyššie, digitálny svetelný senzor je vždy na vrchu, takže dokáže zhromažďovať informácie o osvetlení. Senzory, ktoré budú generovať teplo, sú nainštalované v strede akrylového držiaka, ako napríklad snímač O2, prachový senzor a snímač CO2. Nakoniec senzor teploty a vlhkosti v spodnej časti akrylového držiaka.
Okrem toho je snímač teploty a vlhkosti pôdy inštalovaný samostatne v pôde. Časť uzla
Node Part je Seeeduino LoRaWan, ktorý je nainštalovaný vo vodotesnom boxe a pripája sa k napájaniu a senzorom pomocou vodných spojov. Medzi nimi je snímač prachu pripojený k digitálnemu kolíku D3 LoRaWan, snímač CO2 je pripojený ku kolíku D4 a D5, snímač pôdy je pripojený k pinom D6 a D7, snímač O2 sa pripája k analógovému kolíku A1 a snímač svetla a barometra sa pripája k portu I2C.
POZNÁMKA: Medzi modrý (dátový) kábel pôdneho senzora a červený (Vcc) kábel by mal byť pridaný odpor 10 k.
Seeeduino LoRaWan raz za čas zozbiera hodnoty senzorov a odošle ich do brány prostredníctvom LoRa. Nasledujúci formát údajov:
{
[0], /* Teplota vzduchu (℃)* /[1], /* Vlhkosť vzduchu (%)* /[2], /* Nadmorská výška (m) vysoký bajt* /[3], /* Nadmorská výška (m) nízky bajt */[4],/ * koncentrácia CO2 (PPM) vysoký bajt */[5],/ * koncentrácia CO2 (PPM) nízky bajt */[6],/ * koncentrácia prachu (ks/0,01 cf) vysoký bajt */[7],/ *Koncentrácia prachu (ks/0,01 cf) nízky bajt */[8],/ *intenzita svetla (lux) vysoký bajt */[9],/ *intenzita svetla (lux) nízky bajt */ [10], /* koncentrácia O2 (%)* /[11], /* teplota pôdy (℃)* /[12], /* vlhkosť pôdy (%)* /[13], /* napätie batérie (V) */ [14]/ *Kód chyby snímača */}
Každý bit v bajte kódu chyby snímača má rozdielny význam, rovnako ako nižšie:
{
bit0: 1; / * Chyba snímača barometra */ bit1: 1; / * Chyba senzora CO2 */ bit2: 1; / * Chyba snímača prachu */ bit3: 1; / * Chyba svetelného senzora */ bit4: 1; / * Chyba senzora O2 */ bit5: 1; / * Chyba senzora pôdy */ vyhradené: 2; / * Rezervované */}
Časť brány
Gateway Part je Raspberry Pi, ktorý zapojil modul brány RHF0M301–868 a PRI 2 Bridge RHF4T002, nainštaloval sa do vodotesného boxu a pomocou vodných spojov sa pripájal k napájaniu a kamere USB. Pretože používa špecializovaný firmvér, nakonfigurujte ho podľa Seeed Wiki.
Krok 4: Programovanie softvéru
Hardvérové pripojenie a softvérové programovanie je možné rozdeliť aj na 3 časti: uzol, bránu a webovú stránku.
Časť uzla
Väčšina ovládačov, ktoré Node Part vyžaduje, je už obsiahnutá v priečinku origin_driver. Nasledujúce knižnice je potrebné nainštalovať manuálne:
Adafruit_ASFcore
Pretože je projekt komplikovaný, odporúčame vám namiesto Arduino IDE použiť Microsoft Visual Studio. Doplnok s názvom Visual Micro vám môže pomôcť pri vytváraní projektu Arduino pomocou programu Visual Studio, kliknutím sem získate ďalšie informácie.
Aby bola čitateľnosť a údržba lepšia, tentokrát používame objektovo orientované programovanie. Diagram triedy tohto projektu vyzerá nasledovne:
Pretože tieto senzory už majú ovládač OOP, prebalili sme ho, aby sme prispôsobili tento projekt, v prípade ostatných sme ich ovládače prepísali pomocou OOP. Trieda senzorov v middlewarovej vrstve sa používa na zjednotenie rozhraní skutočných senzorov, napríklad senzor barometra môže súčasne zbierať teplotu, vlhkosť a nadmorskú výšku, takže má 3 rozhrania na získavanie teploty, vlhkosti a nadmorskej výšky. Majú však názov rozdielovej metódy, čo zjednoduší program získavania hodnôt senzorov takto:
barometer-> getTemperature ();
barometer-> getHumidity (); barometer-> getAltitude (); //… another_sensor-> getSomeValue (); //…
Ale pomocou OOP to vyzerá takto:
pre (auto i = 0; i getValue ();
}
Zabalili sme tiež triedu aplikácií, ktorá implementuje rozhranie IApplication, metódu setup () a loop () v IoTea.ino je možné v objektoch Application volať metódu setup () a loop ().
POZNÁMKA: Sériové rozhranie USB sa používa IBA na ladenie. Po ladení komentujte, že je to inicializačný kód v metóde setup ().
Časť brány
Program Python Gateway Part v domovskom priečinku sa používa na fotografovanie a odosielanie ich na server Amazon S3 každú hodinu. Pred použitím sa uistite, že fswebcam je už nainštalovaný vo vašom Raspberry Pi:
sudo apt-get update && sudo apt-get install fswebcam
Ak chcete odosielať fotografie, nakonfigurujte svoj AWS podľa nasledujúcich krokov. Najprv nainštalujte AWS SDK a AWS CLI do svojho Raspberry Pi pomocou týchto príkazov:
sudo pip install boto3
sudo pip install awscli
a potom spustite AWS CLI:
sudo aws configure
Nakonfigurujte svoje ID prístupového kľúča AWS, tajné prístupové ID AWS a predvolený názov oblasti.
Ak neradi nahrávate svoje fotografie, môžete preskočiť kroky konfigurácie AWS a komentovať kódy o odoslaní do súboru photo.py. Na spustenie tohto programu po každom spustení Raspberry Pi môžete vytvoriť fotografiu s názvom súboru v priečinku /etc/init.d a napísať doň nasledujúci kód.
#!/bin/bash
# /etc/init.d/photo ### BEGIN INIT INFO # Poskytuje: seeed_photo # Required-Start: $ remote_fs $ syslog # Required-Stop: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Krátky popis: fotografovanie initscript # Popis: Táto služba sa používa na správu fotografovania ### END INIT INFO prípad „$ 1“na začiatku) echo „Začnite fotografovať“/home/rxhf/photo.py &;; stop) echo „Prestať fotografovať“zabiť $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) echo „Použitie: spustenie servisnej fotografie | zastavenie“, výjazd 1;; esac exit 0
nastaviť povolenie na spustenie
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
a otestuj to
sudo /etc/init.d/photo štart
Ak nie je problém, zastavte ho a pridajte ho do spúšťacej aplikácie
sudo /etc/init.d/photo stop
predvolené fotografie pre sudo update-rc.d
POZNÁMKA: Ak chcete spustiť bránu po štarte Raspberry Pi, pridajte počiatočné kódy brány do Seeet Wiki na /etc/rc.local, nech to vyzerá takto:
#!/bin/sh -e
# # rc.local # # Tento skript sa spustí na konci každej viacužívateľskej úrovne spustenia. # Uistite sa, že skript pri úspechu skončí „0“alebo pri chybe akúkoľvek inú # hodnotu. # # Ak chcete povoliť alebo zakázať tento skript, zmeňte iba počet bitov vykonania. # # Štandardne tento skript nerobí nič. # Vytlačte IP adresu _IP = $ (názov hostiteľa -I) || true if ["$ _IP"]; potom 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 exit 0
Webové stránky
Web sme nasadili na CentOS 7. Nasledujúce kroky vám ukážu, ako nasadiť.
Krok 1. Nainštalujte Python3
sudo yum -y nainštalovať epel -release
sudo yum -y nainštalovať python36
Krok 2. Nainštalujte Python pip a virtuálne prostredie
wget
sudo python36 get-pip.py sudo pip install virtualenv
Setp 3. Klonujte náš web z GitHubu
sudo yum -y nainštalovať git
klon git
Krok 4. Vytvorte a aktivujte virtuálne prostredie
virtualenv -p python36 iotea -hb
cd zdrojový kôš iotea-hb/aktivovať
Krok 5. Nainštalujte závislé knižnice
pip install pymysql
pip install dbutils pip install flask pip install websocket-client pip install cofigparser
Krok 6. Vytvorte databázu
sudo yum -y nainštalovať mariadb mariabd -server
sudo systemctl povoliť mariadb sudo systemctl spustiť mariadb mysql -uroot -p
a potom pomocou iotea_hb.sql vytvorte tabuľku.
Krok 7. Vytvorte db.ini a napíšte doň tieto kódy
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
zmeňte cestu db.ini v db.py
# v db.py
#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")
Krok 8. Zmeňte port v app.py a spustite webovú stránku:
# v app.py
#app.run (debug = True, port = 6000) app.run (debug = True, port = 8080)
# v termináli
pip install gunicorn gunicorn -w 5 -b 0,0.0.0:8080 app: app
teraz navštívte vo webovom prehliadači adresu 127.0.0.1:8080, webovú stránku si môžete pozrieť, ale údaje v reálnom čase sa nezobrazujú.
Krok 9. Získajte údaje o loriotoch
Otvorte iný terminál, zadajte znova virtuálne prostredie a spustite aplikáciu loriot:
cd iotea-hb
zdrojový kôš/aktivujte gunicorn loriot: app
Chvíľu počkajte, uvidíte údaje zobrazené na webových stránkach, alebo môžete zmeniť wss na loriot.py:
# v loriot.py
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
Krok 5: Prevádzka
Na našich webových stránkach môžete navštíviť údaje v reálnom čase:
- V Ya'an
- Na ukážku
Odporúča:
(AKTUALIZÁCIA - JE TO MNOHÉ VYDANIE) USB GAME CONTROLLER PRE P.C: 10 krokov (s obrázkami)
(AKTUALIZÁCIA - EXISTUJE SVETELÝ VÝDEL) USB GAME CONTROLLER PRE PC: HERNÝ OVLÁDAČ PRE KAŽDÚ HRU (TAKMER)
Aktualizácia závodného drona: 10 krokov
Aktualizácia závodného drona: Toto je môj krok za krokom proces, ako som upgradoval závodný dron
Videl som riešenie LoRa IoTea: 5 krokov
Videné riešenie LoRa IoTea: Systém automatického zberu informácií aplikovaný na čajovú plantáž. Je súčasťou inteligentného zberu poľnohospodárskych informácií
Videli ste riešenie IoTea LoRa (s Azure, aktualizácia 1812): 5 krokov
Videné riešenie IoTea LoRa (s Azure, aktualizácia 1812): Microsoft Azure je cloudová služba, ktorá poskytuje výkonnejší a stabilnejší výpočtový výkon. Tentokrát sme sa pokúsili poslať doň naše údaje IoTea
Arduino Project: Testovací rozsah LoRa modul RF1276 pre sledovanie GPS Riešenie: 9 krokov (s obrázkami)
Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Solution: Connection: USB - SerialNeed: Chrome Browser Need: 1 X Arduino Mega Need: 1 X GPS Need: 1 X SD card Need: 2 X LoRa Modem RF1276Function: Arduino Send GPS value k hlavnej základni - údaje o hlavnej základni ukladajú do modulu Dataino Server Lora: Ultra dlhý dosah