Sisällysluettelo:

Nähtiin IoTea LoRa -ratkaisu (päivitys 1811): 5 vaihetta
Nähtiin IoTea LoRa -ratkaisu (päivitys 1811): 5 vaihetta

Video: Nähtiin IoTea LoRa -ratkaisu (päivitys 1811): 5 vaihetta

Video: Nähtiin IoTea LoRa -ratkaisu (päivitys 1811): 5 vaihetta
Video: Seeed IoTea Lora Solution 2024, Heinäkuu
Anonim
Näki IoTea LoRa -ratkaisun (päivitys 1811)
Näki IoTea LoRa -ratkaisun (päivitys 1811)

Internet+ on nyt suosittu käsite. Tällä kertaa kokeilimme Internetiä ja maataloutta teepuutarhan kasvattamiseksi kasvaa Internet -teetä.

Vaihe 1: Tässä projektissa käytetyt asiat

Laitteiston osat

  • Grove - hiilidioksidianturi (MH -Z16)
  • Grove - digitaalinen valotunnistin
  • Grove - Pölyanturi (PPD42NS)
  • Grove-happianturi (ME2-O2-Ф20)
  • Maaperän kosteus- ja lämpötila -anturi
  • LoRa LoRaWAN -yhdyskäytävä - 868 MHz: n sarja ja Raspberry Pi 3
  • Grove - lämpötila- ja humi- ja ilmanpainemittari (BME280)

Ohjelmistosovellukset ja verkkopalvelut

Microsoft Visual Studio 2015

Vaihe 2: Tarina

Mengding -vuorella Yaichista koilliseen, Sichuanissa, vuoristoharja kulkee länteen itään vihreässä meressä. Tämä on tutuin näky 36-vuotiaalle Dengille, joka on yksi harvoista sukupolvensa Mengding-teenkeittimistä ja jonka istutusalue on 50 m (= 3,3 hehtaaria) 1100 m merenpinnan yläpuolella. Deng tulee teekoneiden perheestä, mutta perheen perinnön jatkaminen ei ole helppo tehtävä.”Teemme on kasvatettu korkealla luonnonmukaisessa ympäristössä sen erinomaisen laadun varmistamiseksi. Mutta samaan aikaan kasvutiheys on alhainen, kustannukset ovat korkeat ja orastaminen on epätasaista, mikä tekee teestä vaikean sadon. Siksi korkean vuoren teet ovat yleensä pieniä satoja, eikä niiden arvot näy markkinoilla.”Deng on kahden viime vuoden ajan pyrkinyt lisäämään kuluttajien tietoisuutta korkean vuoren teestä edistääkseen niiden arvoa. Ja kun hän tapasi Fanin, joka etsi istutusta Seeedin IoTea -tekniikan toteuttamiseen, ratkaisu löytyi täydellisesti.

Vaihe 3: Laitteistoyhteys

Tämän projektin laitteisto voidaan jakaa neljään osaan: teho, anturit, solmu ja yhdyskäytävä. Seuraava artikkeli näyttää sinulle, kuinka se suoritetaan vaihe vaiheelta.

Virtaosa

Virtaosa sisältää pääasiassa aurinkopaneelin ja litiumakun, jos vain rakennat tämän projektin esittelyä varten, voit jättää ne huomiotta. Tai voit seurata solmun tehon noudattamista edellisen opetusohjelman avulla.

Anturit Osa

Anturien osassa käytimme monien antureiden vuoksi sääasemaa ja teimme myös akryylikannattimen niiden asentamiseen.

Kuva
Kuva

Kuten yllä olevasta kuvasta näkyy, digitaalinen valotunnistin on aina päällä, jotta se voi kerätä valaistustietoja. Lämpöä tuottavat anturit asennetaan akryylipidikkeen keskelle, kuten O2 -anturi, pölyanturi ja CO2 -anturi. Lopuksi lämpötila- ja kosteusanturi akryylipidikkeen pohjassa.

Lisäksi maaperän lämpötila- ja kosteusanturi asennetaan yksin maaperään. Solmun osa

Kuva
Kuva

Solmun osa on Seeeduino LoRaWan, joka on asennettu vedenkestävään laatikkoon, ja se kytketään sähköön ja antureihin vesiliitosten kautta. Niistä pölyanturi kytketään LoRaWanin digitaaliseen nastaan D3, CO2 -anturi liitetään nastoihin D4 ja D5, maaperäanturi liitetään nastoihin D6 ja D7, O2 -anturi yhdistetään analogiseen nastaan A1 ja valoanturi ja ilmanpainemittari yhdistetään I2C -porttiin.

HUOMAUTUS: 10k vastus on lisättävä maaperäanturin sinisen (data) kaapelin ja punaisen (Vcc) kaapelin väliin.

Seeeduino LoRaWan kerää välillä antureiden arvon ja lähettää ne Gatewaylle LoRan kautta. Tietomuoto kuten alla:

{

[0], /* Ilman lämpötila (℃)* /[1], /* Ilmankosteus (%)* /[2], /* Korkeus (m) korkea tavu* /[3], /* Korkeus (m) pieni tavu */[4],/ * CO2 -pitoisuus (PPM) korkea tavu */[5],/ * CO2 -pitoisuus (PPM) pieni tavu */[6],/ * Pölypitoisuus (kpl/0,01 cf) korkea tavu */[7],/ *Pölypitoisuus (kpl/0,01 cf) pieni tavu */[8],/ *Valon voimakkuus (lux) korkea tavu */[9],/ *Valon voimakkuus (lux) pieni tavu */ [10], /* O2 -pitoisuus (%)* /[11], /* Maaperän lämpötila (℃)* /[12], /* Maaperän kosteus (%)* /[13], /* Akun jännite (V) */ [14]/ *Anturin virhekoodi */}

Jokaisella anturin virhekooditavun bitillä on erilainen merkitys, kuten alla:

{

bitti 0: 1; / * Barometrin anturivirhe */ bit1: 1; / * CO2 -anturivirhe */ bit2: 1; / * Pölyanturivirhe */ bit3: 1; / * Valoanturivirhe */ bit4: 1; / * O2 -anturivirhe */ bit5: 1; / * Maaperäanturivirhe */ varattu: 2; / * Varattu */}

Yhdyskäytävän osa

Kuva
Kuva

Gateway Part on Raspberry Pi, johon on liitetty yhdyskäytävämoduuli RHF0M301–868 ja PRI 2 Bridge RHF4T002, joka on asennettu vedenpitävään laatikkoon ja yhdistetty virtalähteeseen ja USB -kameraan vesiliitosten kautta. Koska se käyttää erikoisohjelmistoa, määritä se Seeed Wikin ohjeiden mukaisesti.

Vaihe 4: Ohjelmointi

Koska laitteistoyhteys, ohjelmisto -ohjelmointi voidaan myös jakaa, se voidaan jakaa kolmeen osaan: solmu, yhdyskäytävä ja verkkosivusto.

Solmun osa

Useimmat solmun osan edellyttämät ohjaimet sisältyvät jo alkuperän_ohjaimen kansioon. Seuraavat kirjastot on asennettava manuaalisesti:

Adafruit_ASFcore

Koska projekti on monimutkainen, suosittelemme käyttämään Microsoft Visual Studiota Arduino IDE: n sijasta. Visual Micro -laajennus voi auttaa sinua muodostamaan Arduino -projektin Visual Studion avulla, napsauta tästä saadaksesi lisätietoja.

Luettavuuden ja ylläpidettävyyden parantamiseksi käytämme tällä kertaa olio-ohjelmointia. Tämän projektin luokkakaavio näyttää tältä:

Kuva
Kuva

Niille antureille, joilla on jo OOP -ajuri, pakkasimme sen uudelleen tämän projektin mukauttamiseksi, muille kirjoitimme niiden ohjaimet uudelleen OOP: n avulla. Väliohjelmistokerroksen anturiluokkaa käytetään oikeiden antureiden rajapintojen yhdistämiseen, esimerkiksi ilmanpainemittari voi kerätä lämpötilan, kosteuden ja korkeuden samanaikaisesti, joten siinä on 3 rajapintaa lämpötilan, kosteuden ja korkeuden mittaamiseen. Mutta niillä on erotusmenetelmän nimi, mikä tekee anturien arvo -ohjelman monimutkaisemmaksi, kuten tämä:

barometri-> getTemperature ();

barometri-> getHumidity (); barometri-> getAltitude (); //… toinen_anturi-> getSomeValue (); //…

Mutta käyttämällä OOP: ta, se näyttää tältä:

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

}

Pakkasimme myös sovellusluokan, se toteuttaa IApplication -käyttöliittymän, setup () - ja loop () -menetelmän IoTea.ino -sivustossa.

HUOMAUTUS: USB Serialia käytetään VAIN virheenkorjaukseen. Kommentoi virheenkorjauksen jälkeen sen alustuskoodia setup () -menetelmässä.

Yhdyskäytävän osa

Gateway Partin Python -ohjelmaa kotikansiossa käytetään valokuvien ottamiseen ja lataamiseen Amazon S3 Serveriin joka tunti. Ennen kuin käytät sitä, varmista, että fswebcam on jo asennettu Raspberry Pi -laitteeseesi:

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

Jos haluat ladata valokuvia, määritä AWS seuraavasti. Asenna ensin AWS SDK ja AWS CLI Raspberry Pi -laitteeseen seuraavilla komennoilla:

sudo pip asenna boto3

sudo pip asenna awscli

ja suorita sitten AWS CLI:

sudo aws configure

Määritä AWS -käyttöavaintunnuksesi, AWS -salaisen käyttöoikeustunnuksesi ja oletusalueen nimi.

Jos et halua ladata valokuviasi, voit ohittaa AWS -määritysvaiheet ja kommenttikoodit lataamisesta osoitteessa photo.py. Jos haluat käyttää tätä ohjelmaa Raspberry Pi: n käynnistämisen jälkeen joka kerta, voit luoda tiedostonimen valokuvan /etc/init.d ja kirjoittaa siihen seuraavan koodin.

#!/bin/bash

# /etc/init.d/photo ### BEGIN INIT INFO # Tarjoaa: seeed_photo # Required-Start: $ remote_fs $ syslog # Required-Stop: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Lyhyt kuvaus: valokuvien ottaminen kirjoitettuna # Kuvaus: Tätä palvelua käytetään valokuvien ottamisen hallintaan. &;; stop) echo "Lopeta valokuvien ottaminen" kill $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) kaiku "Käyttö: huoltokuvan aloitus | pysäytys" Lopeta 1;; esac exit 0

aseta suoritusoikeus

sudo chmod 777 /etc/init.d/photo

sudo chmod 777 /home/rxhf/photo.py

ja testaa se

sudo /etc/init.d/photo start

Jos ongelmaa ei ole, lopeta se ja lisää se käynnistyssovellukseen

sudo /etc/init.d/photo stop

sudo update-rc.d -valokuvan oletusasetukset

HUOMAUTUS: Jos haluat käynnistää yhdyskäytävän Raspberry Pi -käynnistyksen jälkeen, lisää yhdyskäytävän aloituskoodit Seeed Wikissä hakemistoon /etc/rc.local, anna sen näyttää tältä:

#!/bin/sh -e

# # rc.local # # Tämä komentosarja suoritetaan jokaisen monikäyttäjän ajotason lopussa. # Varmista, että komentosarja "poistuu 0" onnistumisesta tai mikä tahansa muu # arvo virheestä. # # Jotta voit ottaa tämän skriptin käyttöön tai poistaa sen käytöstä, muuta vain suoritus # bittiä. # # Oletuksena tämä skripti ei tee mitään. # Tulosta IP -osoite _IP = $ (isäntänimi -I) || tosi jos ["$ _IP"]; sitten printf "IP -osoitteeni on %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

Verkkosivusto

Otimme verkkosivuston käyttöön CentOS 7: ssä. Seuraavat vaiheet osoittavat, kuinka ottaa käyttöön.

Vaihe 1. Asenna Python3

sudo yum -y asenna epel -release

sudo yum -y asenna python36

Vaihe 2. Asenna Python pip ja virtuaalinen ympäristö

wget

sudo python36 get-pip.py sudo pip asenna virtualenv

Asetus 3. Kloonaa verkkosivustomme GitHubista

sudo yum -y asenna git

git-klooni

Vaihe 4. Luo ja aktivoi virtuaalinen ympäristö

virtualenv -p python36 iotea -hb

cd iotea-hb lähdesäiliö/aktivoi

Vaihe 5. Asenna riippuvaisia kirjastoja

pip asenna pymysql

pip install dbutils pip install pullo pip install websocket-client pip install cofigparser

Vaihe 6. Luo tietokanta

sudo yum -y asenna mariadb mariabd -server

sudo systemctl ota käyttöön mariadb sudo systemctl käynnistä mariadb mysql -uroot -p

ja luo sitten taulukko käyttämällä iotea_hb.sql.

Vaihe 7. Luo db.ini ja kirjoita siihen koodit

[db]

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

muuta db.ini -polkua db.py -tiedostossa

# db.py

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

Vaihe 8. Vaihda portti sovelluksessa.py ja käynnistä verkkosivusto:

# sovelluksessa.py

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

# terminaalissa

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

käy nyt osoitteessa 127.0.0.1:8080 selaimessasi, näet sivuston, mutta reaaliaikaisia tietoja ei näytetä.

Vaihe 9. Hanki loriot -tiedot

Avaa toinen pääte, kirjoita virtuaalinen ympäristö uudelleen ja käynnistä loriot -sovellus:

cd iotea-hb

lähdelaatikko/aktivoi gunicorn loriot: sovellus

Odota hetki, näet tiedot verkkosivustolla tai voit muuttaa wss -tiedostoa osoitteessa loriot.py:

# in loriot.py

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

ws = create_connection ()

Vaihe 5: Käyttö

Voit tarkastella reaaliaikaista tietoa verkkosivuillamme:

  • Ya'anissa
  • Esittelyä varten

Suositeltava: