Агуулгын хүснэгт:

IoTea LoRa шийдлийг үзсэн (1811 -ийг шинэчлэх): 5 алхам
IoTea LoRa шийдлийг үзсэн (1811 -ийг шинэчлэх): 5 алхам

Видео: IoTea LoRa шийдлийг үзсэн (1811 -ийг шинэчлэх): 5 алхам

Видео: IoTea LoRa шийдлийг үзсэн (1811 -ийг шинэчлэх): 5 алхам
Видео: Мэйсун Зайид: У меня 99 проблем... и церебральный паралич лишь одна из них 2024, Арваннэгдүгээр
Anonim
IoTea LoRa шийдлийг үзсэн (Шинэчлэлт 1811)
IoTea LoRa шийдлийг үзсэн (Шинэчлэлт 1811)

Интернет+ бол одоо түгээмэл хэрэглэгддэг ойлголт юм. Энэ удаад бид интернэт, хөдөө аж ахуйг ашиглан цайны цэцэрлэгийг Интернет цайгаар ургуулахыг хичээсэн.

Алхам 1: Энэхүү төсөлд ашигласан зүйлс

Тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүд

  • Гроув - Нүүрстөрөгчийн давхар ислийн мэдрэгч (MH -Z16)
  • Гроув - Дижитал гэрэл мэдрэгч
  • Grove - Тоосны мэдрэгч (PPD42NS)
  • Гроув-хүчилтөрөгчийн мэдрэгч (ME2-O2-Ф20)
  • Хөрсний чийг ба температур мэдрэгч
  • LoRa LoRaWAN гарц - Raspberry Pi 3 бүхий 868MHz багц
  • Grove - Temp & Humi & Barometer Sensor (BME280)

Програм хангамж, онлайн үйлчилгээ

Microsoft Visual Studio 2015

Алхам 2: Түүх

Сычуань мужийн Яань мужийн зүүн хойд хэсэгт орших Мэндинг ууланд уулын нуруу нь баруунаас зүүн тийш ногоон тэнгисээр урсдаг. Далайн түвшнээс дээш 1100 метрийн өндөрт байрлах 50мг (= 3.3 га) талбай бүхий өөрийн үеийн цөөхөн хэдэн Мэндиндин цай үйлдвэрлэгчдийн нэг 36 настай Дэнгийн хувьд энэ бол хамгийн танил үзэгдэл юм. Дэн цай үйлдвэрлэгчдийн гэр бүлээс гаралтай боловч гэр бүлийнхээ өв залгамжлалыг авч явах нь тийм ч амар ажил биш юм. “Манай цай маш сайн чанарыг хангахын тулд органик орчинд өндөр өндөрт ургадаг. Гэхдээ үүнтэй зэрэгцэн ургалтын нягт бага, өртөг өндөр, нахиалах нь жигд бус байгаа нь цай хураахад хэцүү болгодог. Тийм ч учраас өндөр уулын цай нь ихэвчлэн бага ургац бөгөөд үнэ цэнийг нь зах зээлд тусгадаггүй.”Сүүлийн хоёр жилийн турш Дэнг тэдний үнэ цэнийг сурталчлахын тулд өндөр уулын цайны талаар хэрэглэгчдийн мэдлэгийг дээшлүүлэхийг хичээж ирсэн. Тэрээр Seeed -ийн IoTea технологийг хэрэгжүүлэх тариалангийн талбай хайж буй Фантай уулзахдаа шийдэлд төгс тохирсон байна.

Алхам 3: Тоног төхөөрөмжийн холболт

Энэхүү төслийн техник хангамжийг хүч, мэдрэгч, зангилаа, гарц гэсэн 4 хэсэгт хувааж болно. Дараагийн нийтлэлд үүнийг хэрхэн яаж алхам алхамаар хийж болохыг харуулах болно.

Эрчим хүчний хэсэг

Цахилгаан хэсэг нь ихэвчлэн нарны хавтан ба лити батерейг агуулдаг бөгөөд хэрэв та энэ төслийг зөвхөн үзүүлэх зорилгоор бүтээсэн бол тэдгээрийг үл тоомсорлож болно. Эсвэл зангилааны хүчийг суулгахын тулд Өмнөх зааврыг дагаж болно.

Мэдрэгч хэсэг

Мэдрэгчийн хэсэгт олон тооны мэдрэгч байдаг тул бид цаг уурын станц ашиглаж, мөн нийлэг хаалт хийж суулгасан.

Зураг
Зураг

Дээрх зураг дээр харагдаж байгаа шиг дижитал гэрэл мэдрэгч нь үргэлж дээд талд байрладаг тул гэрэлтүүлгийн мэдээллийг цуглуулж чаддаг. Дулаан ялгаруулах мэдрэгчийг нийлэг хаалтны дунд байрлуулна, тухайлбал O2, Tust Sensor, CO2 Sensor. Эцэст нь нийлэг хаалтны доод хэсэгт температур ба чийгшил мэдрэгч байна.

Үүнээс гадна хөрсний температур, чийгшил мэдрэгчийг хөрсөнд дангаар нь суулгадаг. Зангилааны хэсэг

Зураг
Зураг

Зангилааны хэсэг нь ус нэвтэрдэггүй хайрцагт суурилуулсан Seeeduino LoRaWan бөгөөд усны холболтоор дамжуулан хүч ба мэдрэгчтэй холбогддог. Эдгээрийн дотроос тоосны мэдрэгч нь LoRaWan -ийн дижитал зүү D3, CO2 мэдрэгч нь D4 ба D5 зүү, хөрсний мэдрэгч нь D6 ба D7 зүү, O2 мэдрэгч нь аналог зүү A1, гэрэл мэдрэгч ба барометр мэдрэгч I2C порт руу холбогддог.

ТАЙЛБАР: Хөрсний мэдрэгчийн цэнхэр (өгөгдөл) кабель ба улаан (Vcc) кабелийн хооронд 10к эсэргүүцэл нэмэх шаардлагатай.

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; / * О2 мэдрэгчийн алдаа */ бит5: 1; / * Хөрсний мэдрэгчийн алдаа */ нөөцлөгдсөн: 2; / * Захиалсан */}

Гарцын хэсэг

Зураг
Зураг

Gateway хэсэг нь RHF0M301–868 Gateway модуль ба PRI 2 гүүр RHF4T002 -ийг залгасан 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 -ийг ашигласнаар иймэрхүү харагдаж байна.

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

}

Бид мөн Application class -ийг багцалсан бөгөөд 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 суулгах boto3

sudo pip суулгах awscli

дараа нь AWS CLI ажиллуулна уу:

sudo aws -ийг тохируулах

AWS хандалтын түлхүүр ID, AWS нууц хандалтын ID болон үндсэн бүсийн нэрийг тохируулна уу.

Хэрэв та зургаа байршуулах дургүй бол 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 # Default-Stop: 0 1 6 # Богино тайлбар: зураг авах initscript # Тайлбар: Энэхүү үйлчилгээ нь зураг авах ажлыг удирдахад ашиглагддаг ### 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 эхлэх

Хэрэв ямар ч асуудал байхгүй бол үүнийг зогсоож, эхлүүлэх програмд нэмнэ үү

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 суулгах virtualenv

Тохиргоо 3. Манай вэбсайтыг GitHub -аас хуулбарлана уу

sudo yum -y суулгаарай

git clone

Алхам 4. Виртуал орчныг бий болгож, идэвхжүүлнэ үү

virtualenv -p python36 iotea -hb

cd iotea-hb эх сурвалж бин/идэвхжүүлэх

Алхам 5. Хамааралтай номын санг суулгах

pymysql -ийг pip суулгах

pip install dbutils pip install колбо pip install websocket-client pip install cofigparser

Алхам 6. Мэдээллийн сан үүсгэх

sudo yum -y mariadb mariabd -server суулгаарай

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 дахь портыг өөрчилж вэбсайтыг эхлүүлнэ үү.

# in app.py

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

# терминал дотор

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

одоо вэб хөтөч дээрээ 127.0.0.1:8080 хаягаар зочилно уу, та вэбсайтыг харж болно, гэхдээ бодит цагийн мэдээллийг харуулдаггүй.

Алхам 9. Лориотын өгөгдлийг авах

Өөр терминал нээгээд виртуал орчинд дахин орж loriot програмыг ажиллуулна уу.

cd iotea-hb

эх сав/идэвхжүүлэх gunicorn loriot: апп

Хэсэг хугацаанд хүлээгээрэй, та вэбсайтад байгаа өгөгдлийг харах болно, эсвэл wss -ийг loriot.py дээр өөрчилж болно:

# in loriot.py

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

ws = create_connection ()

Алхам 5: Үйл ажиллагаа

Та манай вэбсайтад зочилж бодит цагийн мэдээллийг үзэх боломжтой.

  • Яан хотод
  • Жагсаалын хувьд

Зөвлөмж болгож буй: