Satura rādītājs:

Redzēts IoTea LoRa risinājums (1811. atjauninājums): 5 soļi
Redzēts IoTea LoRa risinājums (1811. atjauninājums): 5 soļi

Video: Redzēts IoTea LoRa risinājums (1811. atjauninājums): 5 soļi

Video: Redzēts IoTea LoRa risinājums (1811. atjauninājums): 5 soļi
Video: Laura Schulz: The surprisingly logical minds of babies 2024, Novembris
Anonim
Redzēts IoTea LoRa risinājums (atjauninājums 1811)
Redzēts IoTea LoRa risinājums (atjauninājums 1811)

Internets+ tagad ir populārs jēdziens. Šoreiz mēs izmēģinājām internetu un lauksaimniecību, lai izveidotu tējas dārzu, kas izaudzē interneta tēju.

1. darbība. Šajā projektā izmantotās lietas

Aparatūras komponenti

  • Grove - oglekļa dioksīda sensors (MH -Z16)
  • Grove - digitālais gaismas sensors
  • Grove - putekļu sensors (PPD42NS)
  • Grove-skābekļa sensors (ME2-O2-Ф20)
  • Augsnes mitruma un temperatūras sensors
  • LoRa LoRaWAN vārteja - 868 MHz komplekts ar Raspberry Pi 3
  • Grove - Temp & Humi & Barometer sensors (BME280)

Programmatūras lietotnes un tiešsaistes pakalpojumi

Microsoft Visual Studio 2015

2. darbība: stāsts

Mengdingas kalnā uz ziemeļaustrumiem no Jaņas, Sičuaņā, kalnu grēda iet zaļā jūrā uz rietumiem uz austrumiem. Šis ir vispazīstamākais skats 36 gadus vecajam Dengam, vienam no nedaudzajiem savas paaudzes Mengding tējas ražotājiem, ar plantāciju 50mu (= 3,3 hektāri), kas atrodas 1100 m virs jūras līmeņa. Dengs nāk no tējas ražotāju ģimenes, taču ģimenes mantojuma saglabāšana nav viegls uzdevums. “Mūsu tējas tiek audzētas lielā augstumā bioloģiskā vidē, lai nodrošinātu tās izcilo kvalitāti. Bet tajā pašā laikā augšanas blīvums ir zems, izmaksas ir augstas un pumpuri ir nevienmērīgi, tāpēc tēju ir grūti novākt. Tāpēc augstkalnu tējas parasti ir nelielas ražas, un to vērtības netiek atspoguļotas tirgū.”Pēdējos divus gadus Dengs ir centies vairot patērētāju izpratni par augstkalnu tēju, lai veicinātu to vērtību. Un, kad viņš satika Fanu, kurš meklēja plantāciju, lai ieviestu Seeed IoTea tehnoloģiju, tika panākta ideāla risinājuma atbilstība.

3. darbība. Aparatūras savienojums

Šī projekta aparatūru var sadalīt 4 daļās: jauda, sensori, mezgls un vārteja. Nākamais raksts jums parādīs, kā to soli pa solim pabeigt.

Jaudas daļa

Barošanas daļā galvenokārt ir saules panelis un litija akumulators, ja jūs vienkārši veidojat šo projektu demonstrācijai, varat tos ignorēt. Vai arī varat sekot iepriekšējai apmācībai, lai instalētu mezgla jaudu.

Sensoru daļa

Sensoru daļā daudzo sensoru dēļ mēs izmantojām laika staciju, kā arī izgatavojām akrila kronšteinu, lai tos uzstādītu.

Attēls
Attēls

Kā redzat attēlā iepriekš, digitālais gaismas sensors vienmēr atrodas augšpusē, lai tas varētu savākt apgaismojuma informāciju. Sensori, kas radīs siltumu, ir uzstādīti akrila kronšteina vidū, piemēram, O2 sensors, putekļu sensors un CO2 sensors. Visbeidzot, temperatūras un mitruma sensors akrila kronšteina apakšā.

Turklāt augsnes temperatūras un mitruma sensors ir uzstādīts atsevišķi augsnē. Mezgla daļa

Attēls
Attēls

Mezgla daļa ir Seeeduino LoRaWan, kas uzstādīta ūdensnecaurlaidīgā kastē, tā savienojas ar strāvu un sensoriem, izmantojot ūdens savienojumus. Starp tiem putekļu sensors savienojas ar LoRaWan digitālo tapu D3, CO2 sensors pieslēdzas pie tapām D4 un D5, augsnes sensors pieslēdzas pie tapas D6 un D7, O2 sensors savienojas ar analogo tapu A1 un gaismas sensors un barometra sensors pieslēdzas I2C portam.

PIEZĪME. Starp augsnes sensora zilo (datu) un sarkano (Vcc) kabeli jāpievieno 10 k rezistors.

Seeeduino LoRaWan laiku pa laikam apkopo sensoru vērtību un nosūta tos uz vārteju, izmantojot LoRa. Datu formāts, kā norādīts zemāk:

{

[0], /* gaisa temperatūra (℃)* /[1], /* gaisa mitrums (%)* /[2], /* augstums (m) augsts baits* /[3], /* augstums (m) zems baits */[4],/ * CO2 koncentrācija (PPM) augsts baits */[5],/ * CO2 koncentrācija (PPM) zems baits */[6],/ * putekļu koncentrācija (gab./0,01 cf) augsts baits */[7],/ *Putekļu koncentrācija (gab./0,01 cf) zems baits */[8],/ *Gaismas intensitāte (lux) augsts baits */[9],/ *Gaismas intensitāte (lux) zems baits */ [10], /* O2 koncentrācija (%)* /[11], /* Augsnes temperatūra (℃)* /[12], /* Augsnes mitrums (%)* /[13], /* Akumulatora spriegums (V) */ [14]/ *Sensora kļūdas kods */}

Katram sensora kļūdas koda baitā esošajam bitam ir atšķirīga nozīme, tāpat kā zemāk:

{

bits 0: 1; / * Barometra sensora kļūda */ bit1: 1; / * CO2 sensora kļūda */ bit2: 1; / * Putekļu sensora kļūda */ bit3: 1; / * Gaismas sensora kļūda */ bit4: 1; / * O2 sensora kļūda */ bit5: 1; / * Augsnes sensora kļūda */ rezervēts: 2; / * Rezervēts */}

Vārtejas daļa

Attēls
Attēls

Vārtejas daļa ir Raspberry Pi, kurai pievienots vārtejas modulis RHF0M301–868 un PRI 2 Bridge RHF4T002, tas uzstādīts ūdensnecaurlaidīgā kastē un savienots ar barošanas un USB kameru, izmantojot ūdens savienojumus. Tā kā tā izmanto specializētu programmaparatūru, lūdzu, sekojiet vietnei Seeed Wiki, lai to konfigurētu.

4. solis: programmatūras programmēšana

Tā kā aparatūras savienojumu, programmatūras programmēšanu var arī sadalīt, to var sadalīt 3 daļās: mezgls, vārteja un vietne.

Mezgla daļa

Lielākā daļa draiveru, kas nepieciešami mezgla daļai, jau atrodas mapē origin_driver. Tālāk norādītās bibliotēkas jāinstalē manuāli:

Adafruit_ASFcore

Tā kā projekts ir sarežģīts, mēs iesakām izmantot Microsoft Visual Studio, nevis Arduino IDE. Spraudnis Visual Micro var palīdzēt jums izveidot Arduino projektu, izmantojot Visual Studio, lai iegūtu vairāk informācijas, noklikšķiniet šeit.

Labākai lasāmībai un uzturēšanai mēs šoreiz izmantojam objektorientētu programmēšanu. Šī projekta klases diagramma izskatās šādi:

Attēls
Attēls

Tiem sensoriem, kuriem jau ir OOP draiveris, mēs to iepakojām, lai pielāgotu šo projektu, citiem mēs pārrakstījām viņu draiverus, izmantojot OOP. Sensoru klase starpprogrammatūras slānī tiek izmantota, lai apvienotu reālu sensoru saskarnes, piemēram, barometra sensors var vienlaicīgi savākt temperatūru, mitrumu un augstumu, tāpēc tam ir 3 saskarnes, lai iegūtu temperatūru, mitrumu un augstumu. Bet tiem ir atšķirības metodes nosaukums, kas padarīs sensoru iegūšanas programmu sarežģītāku, tāpat kā šis:

barometrs-> getTemperature ();

barometrs-> getHumidity (); barometrs-> getAltitude (); //… cits_sensors-> getSomeValue (); //…

Bet, izmantojot OOP, tas izskatās šādi:

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

}

Mēs arī iepakojām lietojumprogrammu klasi, tā īstenoja IApplication saskarni, iestatīšanas () un cilpas () metodi vietnē IoTea.ino var izsaukt iestatīšanas () un cilpas () metodi lietojumprogrammas objektā.

PIEZĪME: USB Serial tiek izmantots TIKAI atkļūdošanai. Pēc atkļūdošanas, lūdzu, komentējiet tā inicializācijas kodu iestatīšanas () metodē.

Vārtejas daļa

Gateway Part Python programma mājas mapē tiek izmantota, lai katru stundu uzņemtu fotoattēlus un augšupielādētu tos Amazon S3 Server. Pirms izmantojat, pārliecinieties, vai fswebcam jau ir instalēts jūsu Raspberry Pi:

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

Ja vēlaties augšupielādēt fotoattēlus, konfigurējiet AWS, veicot tālāk norādītās darbības. Vispirms instalējiet AWS SDK un AWS CLI savā Raspberry Pi, izmantojot šīs komandas:

sudo pip instalēt boto3

sudo pip instalējiet awscli

un pēc tam palaidiet AWS CLI:

konfigurēt sudo aws

Konfigurējiet savu AWS piekļuves atslēgas ID, AWS slepenās piekļuves ID un noklusējuma reģiona nosaukumu.

Ja jums nepatīk augšupielādēt savus fotoattēlus, varat izlaist AWS konfigurācijas darbības un komentāru kodus par augšupielādi vietnē photo.py. Lai palaistu šo programmu pēc Raspberry Pi sāknēšanas katru reizi, varat izveidot faila nosaukuma fotoattēlu mapē /etc/init.d un ierakstīt tajā šādu kodu.

#!/bin/bash

$: 0 1 6 # Īss apraksts: fotoattēlu uzņemšana pēc apraksta # Apraksts: Šo pakalpojumu izmanto, lai pārvaldītu fotoattēlu uzņemšanu &;; stop) echo "Beidz fotografēt" kill $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) echo "Lietošana: dienesta foto sākums | apstāšanās" 1. izeja;; esac izeja 0

iestatiet izpildes atļauju

sudo chmod 777 /etc/init.d/photo

sudo chmod 777 /home/rxhf/photo.py

un pārbaudi to

sudo /etc/init.d/photo start

Ja nav problēmu, pārtrauciet to un pievienojiet to startēšanas lietojumprogrammai

sudo /etc/init.d/photo stop

sudo update-rc.d fotoattēlu noklusējuma iestatījumi

PIEZĪME. Ja vēlaties palaist vārteju pēc Raspberry Pi palaišanas, pievienojiet vārtejas sākuma kodus vietnē Seeet Wiki /etc/rc.local, ļaujiet tam izskatīties šādi:

#!/bin/sh -e

# # rc.local # # Šis skripts tiek izpildīts katra daudzlietotāja darbības līmeņa beigās. # Pārliecinieties, ka skripts "iziet no 0" pēc panākumiem vai jebkuras citas # kļūdas vērtības. # # Lai iespējotu vai atspējotu šo skriptu, vienkārši mainiet izpildes # bitus. # # Pēc noklusējuma šis skripts neko nedara. # Izdrukājiet IP adresi _IP = $ (resursdatora nosaukums -I) || taisnība, ja ["$ _IP"]; tad printf "Mana IP adrese ir %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 izeja 0

Vietne

Mēs izvietojām vietni vietnē CentOS 7. Tālāk norādītās darbības parādīs, kā izvietot.

1. solis. Instalējiet Python3

sudo yum -instalējiet epel -release

sudo yum -instalējiet python36

2. solis. Instalējiet Python pip un virtuālo vidi

wget

sudo python36 get-pip.py sudo pip instalēt virtualenv

3. iestatījums. Klonējiet mūsu vietni no GitHub

sudo yum -instalējiet git

git klons

4. solis. Izveidojiet un aktivizējiet virtuālo vidi

virtualenv -p python36 iotea -hb

cd iotea-hb avota bin/aktivizēt

5. solis. Instalējiet atkarīgās bibliotēkas

pip instalēt pymysql

pip instalēt dbutils pip instalēt kolbu pip instalēt websocket-client pip instal cofigparser

6. Izveidojiet datu bāzi

sudo yum -y instalējiet mariadb mariabd -server

sudo systemctl iespējot mariadb sudo systemctl sākt mariadb mysql -uroot -p

un pēc tam izmantojiet tabulu iotea_hb.sql, lai izveidotu tabulu.

7. solis. Izveidojiet db.ini un ierakstiet tajā šos kodus

[db]

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

mainīt db.ini ceļu db.py

# db.py

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

8. solis. Mainiet portu vietnē app.py un sāciet vietni:

# in app.py

#app.run (atkļūdošana = True, ports = 6000) app.run (atkļūdošana = True, ports = 8080)

# terminālī

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

tagad apmeklējiet 127.0.0.1:8080 savā tīmekļa pārlūkprogrammā, jūs varat redzēt vietni, bet reālā laika dati netiek parādīti.

9. solis. Iegūstiet loriot datus

Atveriet citu termināli, atkārtoti ievadiet virtuālo vidi un palaidiet lietotni loriot:

cd iotea-hb

avota tvertne/aktivizēt gunicorn loriot: lietotne

Pagaidiet kādu laiku, jūs redzēsit datus, kas parādīti vietnē, vai arī varat mainīt vietni wss vietnē loriot.py:

# vietnē loriot.py

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

ws = create_connection ()

5. darbība: darbība

Jūs varat apmeklēt mūsu tīmekļa vietnes, lai skatītu reāllaika datus:

  • Jaanā
  • Demonstrācijai

Ieteicams: