Мазмұны:

Қаралған IoTea LoRa шешімі (1811 жаңарту): 5 қадам
Қаралған IoTea LoRa шешімі (1811 жаңарту): 5 қадам

Бейне: Қаралған IoTea LoRa шешімі (1811 жаңарту): 5 қадам

Бейне: Қаралған IoTea LoRa шешімі (1811 жаңарту): 5 қадам
Бейне: ГЕОГРАФИЯ НАУРЫЗ ҰБТ-2021. ДАЙЫНДЫҚ! 2024, Шілде
Anonim
Қаралған IoTea LoRa шешімі (1811 жаңарту)
Қаралған IoTea LoRa шешімі (1811 жаңарту)

Интернет+ қазір кең тараған ұғым. Бұл жолы біз Интернет -плюс ауыл шаруашылығын пайдаланып, шайды Интернет -шайға айналдырдық.

1 -қадам: Бұл жобада қолданылатын заттар

Аппараттық компоненттер

  • Grove - көмірқышқыл газының сенсоры (MH -Z16)
  • Grove - сандық жарық сенсоры
  • Grove - шаң сенсоры (PPD42NS)
  • Grove-оттегі сенсоры (ME2-O2-Ф20)
  • Топырақ ылғалдылығы мен температура сенсоры
  • LoRa LoRaWAN шлюзі - Raspberry Pi 3 бар 868 МГц жиынтығы
  • Grove - Temp & Humi және барометр сенсоры (BME280)

Бағдарламалық жасақтама және онлайн қызметтері

Microsoft Visual Studio 2015

2 -қадам: Әңгіме

Сиань Яаньның солтүстік -шығысындағы Мендинг тауында, тау жотасы жасыл теңізде батыстан шығысқа қарай созылады. Теңіз деңгейінен 1100 м биіктікте орналасқан 50 мұ (= 3,3 га) плантациясы бар 36 жастағы Дэнг, өз ұрпағының өте сирек кездесетін шай жасаушыларының бірі. Дэн шай қайнатушылар отбасынан шыққан, бірақ отбасылық мұраны жалғастыру оңай жұмыс емес. «Біздің шайлар жоғары сапада органикалық ортада өсіріледі, бұл оның керемет сапасын қамтамасыз етеді. Бірақ сонымен бірге өсу тығыздығы төмен, бағасы жоғары және бүршіктері біркелкі емес, бұл шай жинауды қиындатады. Сондықтан биік тау шайы әдетте аз жиналады және олардың құндылығы нарықта көрсетілмейді. »Соңғы екі жыл ішінде Дэн олардың құндылығын жоғарылату үшін тұтынушылардың биік тау шайы туралы хабардарлығын арттыруға тырысады. Және ол Seeed’s IoTea технологиясын енгізу үшін плантацияны іздейтін Фанмен кездескенде, шешімге тамаша сәйкестік табылды.

3 -қадам: аппараттық қосылым

Бұл жобаның аппараттық құралдарын 4 бөлікке бөлуге болады: қуат, сенсорлар, түйін және шлюз. Келесі мақалада оны кезең -кезеңмен қалай аяқтау керектігі көрсетіледі.

Қуат бөлігі

Қуат бөлігінде негізінен күн панелі мен литий батареясы бар, егер сіз бұл жобаны демонстрация үшін салсаңыз, оларды елемеуге болады. Немесе түйін қуатын орнату үшін Алдыңғы оқулықты орындауға болады.

Датчиктер бөлігі

Сенсорлар бөлігінде сенсорлардың көп болуына байланысты біз метеорологиялық станцияны қолдандық, сонымен қатар оларды орнату үшін акрил жақшасын жасадық.

Кескін
Кескін

Жоғарыдағы суретте көріп тұрғаныңыздай, сандық жарық сенсоры әрқашан жоғарғы жағында, ол жарықтандыру ақпаратын жинай алады. Жылуды шығаратын сенсорлар акрил кронштейнінің ортасына орнатылады, мысалы, O2 сенсоры, шаң сенсоры және CO2 сенсоры. Соңында, акрил кронштейнінің төменгі жағындағы температура мен ылғалдылық сенсоры.

Сонымен қатар, топырақ температурасы мен ылғалдылық сенсоры топыраққа жалғыз орнатылады. Түйін бөлігі

Кескін
Кескін

Түйін бөлігі - бұл су өткізбейтін қорапқа орнатылған Seeeduino LoRaWan, ол су қосылыстары арқылы қуат пен сенсорларға қосылады. Олардың ішінде шаң сенсоры LoRaWan сандық D3 түйреуішіне, CO2 датчигі D4 және D5 түйреуішіне, топырақ сенсоры D6 және D7 түйреуішіне, О2 сенсоры аналогтық A1 түйініне, жарық сенсоры мен барометр сенсоры I2C портына қосылады.

ЕСКЕРТПЕ: Топырақ сенсорының көк (деректер) кабелі мен қызыл (Vcc) кабелінің арасына 10k резисторды қосу керек.

Seeeduino LoRaWan сенсорлардың мәнін анда -санда жинап, оларды LoRa арқылы шлюзге жібереді. Деректер форматы төмендегідей:

{

[0], /* Ауа температурасы (℃)* /[1], /* Ауаның ылғалдылығы (%)* /[2], /* Биіктік (м) жоғары байт* /[3], /* Биіктік (м) төмен байт */[4],/ * CO2 концентрациясы (PPM) жоғары байт */[5],/ * CO2 концентрациясы (PPM) төмен байт */[6],/ * Шаң концентрациясы (дана/0,01cf) жоғары байт */[7],/ *Шаңның концентрациясы (дана/0.01cf) төмен байт */[8],/ *Жарықтың қарқындылығы (люкс) жоғары байт */[9],/ *Жарықтың қарқындылығы (люкс) төмен байт */ [10], /* O2 концентрациясы (%)* /[11], /* Топырақ температурасы (℃)* /[12], /* Топырақ ылғалдылығы (%)* /[13], /* Батарея кернеуі (V) */ [14]/ *Сенсордың қате коды */}

Сенсорлық қате кодының байтындағы әрбір бит төмендегідей айырмашылықты білдіреді:

{

бит0: 1; / * Барометр сенсорының қатесі */ бит1: 1; / * CO2 датчигінің қатесі */ bit2: 1; / * Шаң датчигінің қатесі */ bit3: 1; / * Жарық сенсорының қатесі */ bit4: 1; / * O2 датчигінің қатесі */ бит5: 1; / * Топырақ сенсорының қателігі */ резервтелген: 2; / * Резервтелген */}

Шлюз бөлігі

Кескін
Кескін

Шлюз бөлігі - бұл RHF0M301–868 шлюзі модулін және RHF4T002 PRI 2 көпірін қосатын Raspberry Pi, ол су өткізбейтін қорапқа орнатылған және су қосылыстары арқылы қуат пен USB камерасына қосылады. Ол мамандандырылған микробағдарламаны қолданатындықтан, оны реттеу үшін Seeed Wiki -ді орындаңыз.

4 -қадам: бағдарламалық қамтамасыз ету

Аппараттық қосылым ретінде Бағдарламалық қамтамасыз етуді де бөлуге болады, оны 3 бөлікке бөлуге болады: түйін, шлюз және веб -сайт.

Түйін бөлігі

Түйін бөлігін қажет ететін драйверлердің көпшілігі orig_driver қалтасында бар. Келесі кітапханаларды қолмен орнату қажет:

Adafruit_ASFcore

Жоба күрделі болғандықтан, Arduino IDE орнына Microsoft Visual Studio қолдануды ұсынамыз. Visual Micro деп аталатын плагин Visual Studio көмегімен Arduino жобасын құруға көмектеседі, қосымша ақпарат алу үшін мына жерді басыңыз.

Жақсырақ оқылуы мен күтімділігі үшін біз бұл жолы объектіге бағытталған бағдарламалауды қолданамыз. Бұл жобаның сынып диаграммасы төмендегідей:

Кескін
Кескін

OOP драйвері бар сенсорлар үшін біз оны жобаны бейімдеу үшін қайта орадық, басқалары үшін драйверлерін OOP көмегімен қайта жаздық. Орташа бағдарлама деңгейіндегі Sensor класы нақты сенсорлардың интерфейстерін біріктіру үшін қолданылады, мысалы, барометр сенсоры температураны, ылғалдылық пен биіктікті бір уақытта жинай алады, сондықтан температураны, ылғалдылық пен биіктікті алу үшін 3 интерфейс бар. Бірақ оларда сенсорлардың бағасын алу бағдарламасын күрделендіретін әдіс әдісінің айырмашылығы бар:

барометр-> getTemperature ();

барометр-> getHumidity (); барометр-> getAltitude (); //… another_sensor-> getSomeValue (); //…

Бірақ OOP көмегімен келесідей көрінеді:

үшін (авто i = 0; i getValue ();

}

Біз сондай -ақ Application сыныбын жинадық, ол IApplication интерфейсін қолданады, IoTea.ino -дегі setup () және loop () әдісі Application объектісінде setup () және loop () әдісін шақыра алады.

ЕСКЕРТПЕ: USB сериясы тек қана күйін келтіру үшін қолданылады. Отладкадан кейін, setup () әдісінде кодты инициализациялау туралы түсініктеме беріңіз.

Шлюз бөлігі

Gateway Part үй қалтасындағы Python бағдарламасы әр сағат сайын Amazon S3 серверіне фотосуреттер түсіруге және жүктеуге арналған. Қолданар алдында, Raspberry Pi -де fswebcam орнатылғанына көз жеткізіңіз:

sudo apt-get update && sudo apt-get fswebcam орнатыңыз

Егер сіз фотосуреттерді жүктегіңіз келсе, келесі әрекеттерді орындау арқылы AWS конфигурациялаңыз. Алдымен AWS SDK пен AWS CLI -ді Raspberry Pi -ге мына пәрмендерді қолданып орнатыңыз:

sudo pip install boto3

sudo pip install awscli

содан кейін AWS CLI іске қосыңыз:

sudo aws конфигурациясы

AWS қатынас кілтінің идентификаторын, AWS құпия кіру идентификаторын және әдепкі аймақ атауын конфигурациялаңыз.

Егер сіз фотосуреттерді жүктеуді ұнатпайтын болсаңыз, photo.py файлына жүктеу туралы AWS конфигурациясы мен түсініктеме кодтарын өткізіп жіберуге болады. Raspberry Pi жүктелгеннен кейін бұл бағдарламаны іске қосу үшін /etc/init.d ішінде файл атауының фотосын жасауға және оған келесі кодты жазуға болады.

#!/bin/bash

# /etc/init.d/photo ### INIT INFO БАСТАУ # Береді: seeed_photo # Қажетті-Бастау: $ remote_fs $ syslog # Қажетті-Тоқтату: $ remote_fs $ syslog # Әдепкі-Бастау: 2 3 4 5 # Әдепкі-Тоқтату: 0 1 6 # Қысқаша сипаттама: фотосурет түсіру # Сипаттама: Бұл қызмет суретке түсіруді басқару үшін қолданылады ### END INIT INFO жағдайда «$ 1» жағдайда) echo «Фотоға түсуді бастау» /home/rxhf/photo.py &;; тоқтату) жаңғырық «Фотоға түсуді тоқтату» $ өлтүріңіз (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{$ 2 басып шығару'));; *) жаңғырық «Қолданылуы: қызметтік фотосуреттің басталуы | тоқтату» шығу 1;; esac шығу 0

орындауға рұқсат беру

sudo chmod 777 /etc/init.d/photo

sudo chmod 777 /home/rxhf/photo.py

және оны тексеріңіз

sudo /etc/init.d/photo start

Егер проблема болмаса, оны тоқтатып, іске қосу қосымшасына қосыңыз

sudo /etc/init.d/photo stop

sudo update-rc.d фотосуреттердің әдепкі мәндері

ЕСКЕРТПЕ: Егер сіз Raspberry Pi жүктелгеннен кейін шлюзді іске қосқыңыз келсе, Seeet Wiki ішіндегі шлюздің бастапқы кодтарын /etc/rc.local файлына қосыңыз, келесідей болсын:

#!/bin/sh -e

# # rc.local # # Бұл сценарий әр көп пайдаланушының жұмыс деңгейінің соңында орындалады. # Сценарий сәттілікке немесе қате кезіндегі басқа # мәнге «0 шығады» екеніне көз жеткізіңіз. # # Бұл сценарийді қосу немесе өшіру үшін # бит орындалуын өзгертіңіз. # # Әдепкі бойынша бұл сценарий ештеңе жасамайды. # IP адресін _IP = $ басып шығарыңыз (хост атауы -I) || шын болса, егер [«$ _IP»]; содан кейін printf «Менің IP мекенжайым - %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 шығу 0

Веб -сайт

Біз веб -сайтты CentOS 7 -де орналастырдық. Келесі қадамдар сізге қалай орналастыру керектігін көрсетеді.

Қадам 1. Python3 орнатыңыз

sudo yum -y epel -release орнатыңыз

sudo yum -y python36 орнатыңыз

Қадам 2. Python pip пен виртуалды ортаны орнатыңыз

wget

sudo python36 get-pip.py sudo pip install virtualenv

3 -бап. Біздің веб -сайтты GitHub -тен клондау

sudo yum -y орнатыңыз

git клоны

4 -қадам. Виртуалды ортаны жасаңыз және іске қосыңыз

virtualenv -p python36 iotea -hb

cd iotea-hb бастапқы қоқыс жәшігі/белсендіру

Қадам 5. Тәуелді кітапханаларды орнатыңыз

pip pymysql орнатыңыз

pip install dbutils pip install flask pip install websocket-client pip install cofigparser

Қадам 6. Деректер қорын құру

sudo yum -y mariadb mariabd -серверін орнатыңыз

sudo systemctl mariadb қосу sudo systemctl іске қосу mariadb mysql -uroot -p

содан кейін кесте құру үшін iotea_hb.sql пайдаланыңыз.

Қадам 7. db.ini жасаңыз және оған осы кодтарды жазыңыз

[db]

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

db.py ішіндегі db.ini жолын өзгерту

db.py файлында

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

Қадам 8. app.py ішіндегі портты өзгертіңіз және веб -сайтты іске қосыңыз:

# app.py ішінде

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

# терминалда

gunicorn gunicorn -w 5 -b 0.0.0.0:8080 қолданбасы: қолданба

енді веб-шолғышта 127.0.0.1:8080 сайтына кіріңіз, сіз веб-сайтты көре аласыз, бірақ нақты уақыттағы деректер көрсетілмейді.

Қадам 9. loriot деректерін алыңыз

Басқа терминалды ашыңыз, виртуалды ортаға қайта кіріңіз және loriot қолданбасын іске қосыңыз:

cd iotea-hb

бастапқы қоқыс жәшігі/gunicorn loriot белсендіру: қолданба

Біраз уақыт күтіңіз, сіз веб -сайтта көрсетілген деректерді көресіз немесе loriot.py ішіндегі wss параметрін өзгерте аласыз:

# loriot.py ішінде

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

ws = create_connection ()

5 -қадам: операция

Нақты уақыттағы деректерді көру үшін сіз біздің веб-сайттарға кіре аласыз:

  • Яанда
  • Демонстрация үшін

Ұсынылған: