Obsah:
- Krok 1: Věci použité v tomto projektu
- Krok 2: Příběh
- Krok 3: Hardwarové připojení
- Krok 4: Programování softwaru
- Krok 5: Provoz
Video: Viděné řešení IoTea LoRa (aktualizace 1811): 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Internet+ je nyní populární koncept. Tentokrát jsme vyzkoušeli internet plus zemědělství, aby z čajové zahrady vyrostl internetový čaj.
Krok 1: Věci použité v tomto projektu
Hardwarové komponenty
- Grove - senzor oxidu uhličitého (MH -Z16)
- Grove - digitální světelný senzor
- Grove - prachový senzor (PPD42NS)
- Grove-Kyslíkový senzor (ME2-O2-Ф20)
- Čidlo vlhkosti a teploty půdy
- LoRa LoRaWAN Gateway - souprava 868 MHz s Raspberry Pi 3
- Grove - snímač teploty a humusu a barometru (BME280)
Softwarové aplikace a online služby
Microsoft Visual Studio 2015
Krok 2: Příběh
Na hoře Mengding severovýchodně od Ya’an, S' -čchuan, vede horský hřeben v zeleném moři na západ k východu. Toto je nejznámější pohled na 36letého Denga, jednoho z mála Mengdingových čajovníků své generace, s plantáží 50 m (= 3,3 ha) situovanou v 1100 m nad mořem. Deng pochází z rodiny čajovníků, ale pokračovat v rodinném odkazu není snadný úkol. "Naše čaje se pěstují ve vysoké nadmořské výšce v organickém prostředí, aby byla zajištěna jeho vynikající kvalita." Ale zároveň je hustota růstu nízká, náklady jsou vysoké a pučení je nerovnoměrné, takže je těžké čaj sklízet. Proto jsou vysokohorské čaje obvykle malou sklizní a jejich hodnoty se na trhu neprojevují. “Poslední dva roky se Deng snaží zvýšit povědomí spotřebitelů o vysokohorském čaji, aby propagoval jejich hodnotu. A když se setkal s Fanem, který hledal plantáž pro implementaci technologie Seeed IoTea, bylo dosaženo dokonalého řešení.
Krok 3: Hardwarové připojení
Hardware tohoto projektu lze rozdělit na 4 části: napájení, senzory, uzel a brána. Následující článek vám ukáže, jak jej krok za krokem dokončit.
Power Part
Power Part obsahuje hlavně solární panel a lithiovou baterii, pokud tento projekt postavíte jen na ukázku, můžete je ignorovat. Nebo můžete podle pokynů v předchozím kurzu nainstalovat napájení uzlu.
Senzory Část
V části Senzory jsme kvůli mnoha senzorům použili meteorologickou stanici a také jsme pro jejich instalaci vyrobili akrylový držák.
Jak vidíte na obrázku výše, digitální světelný senzor je vždy nahoře, takže dokáže sbírat informace o osvětlení. Senzory, které budou generovat teplo, jsou instalovány uprostřed akrylového držáku, jako je senzor O2, prachový senzor a snímač CO2. Konečně snímač teploty a vlhkosti na spodní straně akrylového držáku.
Kromě toho je snímač teploty a vlhkosti půdy instalován samostatně v půdě. Část uzlu
Node Part je Seeeduino LoRaWan, který je instalován ve vodotěsném boxu a připojuje se k napájení a senzorům pomocí Water Joints. Mezi nimi je senzor prachu připojen k digitálnímu kolíku D3 LoRaWan, senzor CO2 připojen ke kolíku D4 a D5, snímač půdy připojen ke kolíku D6 a D7, senzor O2 připojen k analogovému kolíku A1 a senzor světla a barometr připojen k portu I2C.
POZNÁMKA: Mezi modrý (datový) kabel čidla půdy a červený (Vcc) kabel by měl být přidán odpor 10k.
Seeeduino LoRaWan sbírá hodnoty senzorů jednou za čas a odesílá je do brány přes LoRa. Datový formát jako níže:
{
[0], /* Teplota vzduchu (℃)* /[1], /* Vlhkost vzduchu (%)* /[2], /* Nadmořská výška (m) vysoký bajt* /[3], /* Nadmořská výška (m) nízký byte */[4],/ * koncentrace CO2 (PPM) vysoký byte */[5],/ * koncentrace CO2 (PPM) nízký byte */[6],/ * koncentrace prachu (ks/0,01 cf) vysoký byte */[7],/ *Koncentrace prachu (ks/0,01 cf) nízký byte */[8],/ *intenzita světla (lux) vysoký byte */[9],/ *intenzita světla (lux) nízký byte */ [10], /* koncentrace O2 (%)* /[11], /* teplota půdy (℃)* /[12], /* vlhkost půdy (%)* /[13], /* napětí baterie (V) */ [14]/ *Kód chyby senzoru */}
Každý bit v bajtu chybového kódu senzoru má rozdílný význam, stejně jako níže:
{
bit0: 1; / * Chyba senzoru barometru */ bit1: 1; / * Chyba senzoru CO2 */ bit2: 1; / * Chyba senzoru prachu */ bit3: 1; / * Chyba snímače světla */ bit4: 1; / * Chyba senzoru O2 */ bit5: 1; / * Chyba snímače půdy */ rezervováno: 2; / * Rezervováno */}
Část brány
Gateway Part je Raspberry Pi, který zapojil Gateway modul RHF0M301–868 a PRI 2 Bridge RHF4T002, nainstaloval se do vodotěsného boxu a připojil se k napájení a USB kameře pomocí Water Joints. Protože používá specializovaný firmware, nakonfigurujte jej podle Seeed Wiki.
Krok 4: Programování softwaru
Hardwarové připojení a softwarové programování lze také rozdělit na tři části: Node, Gateway a Web.
Část uzlu
Většina ovladačů, které Node Part vyžaduje, je již obsažena ve složce origin_driver. Následující knihovny je třeba nainstalovat ručně:
Adafruit_ASFcore
Protože je projekt komplikovaný, doporučujeme místo Arduino IDE použít Microsoft Visual Studio. Plugin s názvem Visual Micro vám může pomoci s projektem Arduino pomocí Visual Studia, kliknutím sem získáte další informace.
Pro lepší čitelnost a udržovatelnost tentokrát používáme objektově orientované programování. Diagram tříd tohoto projektu vypadá takto:
Protože tyto senzory již mají ovladač OOP, přepracovali jsme jej, abychom přizpůsobili tento projekt, u ostatních jsme jejich ovladače přepsali pomocí OOP. Třída Sensor ve střední vrstvě slouží ke sjednocení rozhraní skutečných senzorů, například senzor barometru může současně sbírat teplotu, vlhkost a nadmořskou výšku, takže má 3 rozhraní pro získávání teploty, vlhkosti a nadmořské výšky. Mají však název rozdílové metody, což zkomplikuje program získávání hodnoty senzorů, a to takto:
barometr-> getTemperature ();
barometr-> getHumidity (); barometr-> getAltitude (); //… another_sensor-> getSomeValue (); //…
Ale pomocí OOP to vypadá takto:
for (auto i = 0; i getValue ();
}
Zabalili jsme také třídu Application, která implementuje rozhraní IApplication, metoda setup () a loop () v IoTea.ino může volat metodu setup () a loop () v objektu Application.
POZNÁMKA: USB Serial se používá pouze k ladění. Po ladění prosím komentujte jeho inicializaci kódu v metodě setup ().
Část brány
Program Python Gateway Part v domovské složce slouží k pořizování fotografií a jejich odesílání na server Amazon S3 každou hodinu. Než jej použijete, ujistěte se, že je fswebcam již nainstalován ve vašem Raspberry Pi:
sudo apt-get update && sudo apt-get install fswebcam
Pokud chcete nahrávat fotografie, nakonfigurujte svůj AWS podle následujících kroků. Nejprve nainstalujte AWS SDK a AWS CLI do svého Raspberry Pi pomocí těchto příkazů:
sudo pip install boto3
sudo pip install awscli
a poté spusťte AWS CLI:
sudo aws configure
Nakonfigurujte své ID přístupového klíče AWS, tajné přístupové ID AWS a výchozí název oblasti.
Pokud neradi nahráváte své fotografie, můžete přeskočit kroky konfigurace AWS a komentovat kódy o nahrávání do souboru photo.py. Pro spuštění tohoto programu po každém spuštění Raspberry Pi můžete vytvořit fotografii s názvem souboru v souboru /etc/init.d a zapsat do něj následující 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átký popis: pořizování fotografií initscript # Popis: Tato služba slouží ke správě fotografování ### END INIT INFO případ „$ 1“na začátku) echo „Začít fotit“/home/rxhf/photo.py &;; stop) echo „Přestaňte fotografovat“zabít $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) echo "Použití: spuštění servisní fotografie | zastavení" exit 1;; esac exit 0
nastavit oprávnění ke spuštění
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
a vyzkoušet to
sudo /etc/init.d/photo start
Pokud není žádný problém, zastavte jej a přidejte jej do spouštěcí aplikace
sudo /etc/init.d/photo stop
výchozí nastavení fotografie sudo update-rc.d
POZNÁMKA: Pokud chcete spustit bránu po spuštění Raspberry Pi, přidejte do Seeed Wiki počáteční kódy brány do /etc/rc.local, ať to vypadá takto:
#!/bin/sh -e
# # rc.local # # Tento skript je spuštěn na konci každé víceuživatelské úrovně běhu. # Ujistěte se, že skript při úspěchu „opustí 0“nebo jakákoli jiná # hodnota při chybě. # # Chcete -li povolit nebo zakázat tento skript, změňte pouze počet bitů provádění #. # # Ve výchozím nastavení tento skript nedělá nic. # Vytiskněte IP adresu _IP = $ (název hostitele -I) || true if ["$ _IP"]; pak printf "Moje 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 ukončení 0
webová stránka
Web jsme nasadili na CentOS 7. Následující kroky vám ukážou, jak nasadit.
Krok 1. Nainstalujte Python3
sudo yum -y install epel -release
sudo yum -y nainstalovat python36
Krok 2. Nainstalujte Python pip a virtuální prostředí
wget
sudo python36 get-pip.py sudo pip install virtualenv
Setp 3. Klonujte náš web z GitHubu
sudo yum -y nainstalovat git
klon git
Krok 4. Vytvořte a aktivujte virtuální prostředí
virtualenv -p python36 iotea -hb
cd iotea-hb zdrojový bin/aktivovat
Krok 5. Nainstalujte závislé knihovny
pip install pymysql
pip install dbutils pip install flask pip install websocket-client pip install cofigparser
Krok 6. Vytvořte databázi
sudo yum -y nainstalovat mariadb mariabd -server
sudo systemctl povolit mariadb sudo systemctl spustit mariadb mysql -uroot -p
a poté pomocí iotea_hb.sql vytvořte tabulku.
Krok 7. Vytvořte db.ini a zapište do něj tyto kódy
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
změň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. Změňte port v app.py a spusťte web:
# v app.py
#app.run (debug = True, port = 6000) app.run (debug = True, port = 8080)
# v terminálu
pip install gunicorn gunicorn -w 5 -b 0,0.0.0:8080 aplikace: app
nyní ve webovém prohlížeči navštivte stránku 127.0.0.1:8080, webovou stránku vidíte, ale data v reálném čase se nezobrazují.
Krok 9. Získejte data loriot
Otevřete jiný terminál, znovu zadejte virtuální prostředí a spusťte aplikaci loriot:
cd iotea-hb
zdrojový koš/aktivujte gunicorn loriot: app
Chvíli počkejte, uvidíte data zobrazená na webových stránkách, nebo můžete změnit wss v loriot.py:
# v loriot.py
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
Krok 5: Provoz
Můžete navštívit naše webové stránky a zobrazit data v reálném čase:
- V Ya'an
- Na ukázku
Doporučuje:
(AKTUALIZACE - JE TO MÍRNÉ VYDÁNÍ) USB GAME CONTROLLER FOR P.C: 10 kroků (s obrázky)
(AKTUALIZACE - JE TO MÍRNÝ ČÍSLO) USB GAME CONTROLLER PRO P.C: HERNÍ OVLADAČ PRO JAKOUKOLI HRU (TÉMĚŘ)
Aktualizace baterie Logitech G930: 5 kroků
Aktualizace baterie Logitech G930: Stručný průvodce upgradem baterie bezdrátové náhlavní soupravy logitech G930
Viděné řešení LoRa IoTea: 5 kroků
Viděné řešení LoRa IoTea: Systém automatického shromažďování informací aplikovaný na čajové plantáže. Je součástí inteligentního shromažďování zemědělských informací
Viděné řešení IoTea LoRa (s Azure, aktualizace 1812): 5 kroků
Viděné řešení IoTea LoRa (s Azure, aktualizace 1812): Microsoft Azure je cloudová služba, která poskytuje výkonnější a stabilnější výpočetní výkon. Tentokrát jsme do něj zkusili poslat naše data IoTea
Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Řešení: 9 kroků (s obrázky)
Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Řešení: Připojení: USB - SerialNeed: Prohlížeč Chrome Potřeba: 1 X Arduino Mega Potřeba: 1 X GPS Potřeba: 1 X SD karta Potřeba: 2 X LoRa Modem RF1276 Funkce: Arduino Odeslat hodnotu GPS na hlavní základnu - Hlavní základna ukládá data v modulu Dataino Server Lora: Ultra dlouhý dosah