Obsah:

Videl som riešenie IoTea LoRa (aktualizácia 1811): 5 krokov
Videl som riešenie IoTea LoRa (aktualizácia 1811): 5 krokov

Video: Videl som riešenie IoTea LoRa (aktualizácia 1811): 5 krokov

Video: Videl som riešenie IoTea LoRa (aktualizácia 1811): 5 krokov
Video: Высокая плотность 2022 2024, Júl
Anonim
Videl som riešenie IoTea LoRa (aktualizácia 1811)
Videl som riešenie IoTea LoRa (aktualizácia 1811)

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.

Obrázok
Obrázok

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

Obrázok
Obrázok

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

Obrázok
Obrázok

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:

Obrázok
Obrázok

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: