Агуулгын хүснэгт:
- Алхам 1: Энэхүү төсөлд ашигласан зүйлс
- Алхам 2: Түүх
- Алхам 3: Тоног төхөөрөмжийн холболт
- Алхам 4: Програм хангамжийн програмчлал
- Алхам 5: Үйл ажиллагаа
Видео: IoTea LoRa шийдлийг үзсэн (1811 -ийг шинэчлэх): 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Интернет+ бол одоо түгээмэл хэрэглэгддэг ойлголт юм. Энэ удаад бид интернэт, хөдөө аж ахуйг ашиглан цайны цэцэрлэгийг Интернет цайгаар ургуулахыг хичээсэн.
Алхам 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: Үйл ажиллагаа
Та манай вэбсайтад зочилж бодит цагийн мэдээллийг үзэх боломжтой.
- Яан хотод
- Жагсаалын хувьд
Зөвлөмж болгож буй:
StandardFirmata -ээс давж гарах - Дахин үзсэн: 5 алхам
StandardFirmata -ээс давж гарах нь - Дахин үзэгдсэн: Удалгүй pymata4 хэрэглэгч Dr.Martyn Wheeler -тай холбогдож pymata4 номын санд DHT22 чийгшил/температур мэдрэгчийн дэмжлэгийг нэмж өгөх талаар заавар зөвлөгөө авлаа. Pymata4 номын сан нь Arduino -ийн хамтрагч FirmataExpre -тэй хамтран
LoRa IoTea шийдлийг үзнэ үү: 5 алхам
Үзсэн LoRa IoTea Шийдэл: Цайны талбайд мэдээлэл цуглуулах автомат систем. Энэ нь хөдөө аж ахуйн ухаалаг мэдээлэл цуглуулах нэг хэсэг юм
IoTea LoRa шийдлийг үзсэн (Azure -тэй, 1812 -ийг шинэчилсэн): 5 алхам
Үзсэн IoTea LoRa шийдэл (Azure -тэй, 1812 -г шинэчлэх): Microsoft Azure бол илүү хүчирхэг, тогтвортой тооцоолох хүчийг өгдөг үүл үйлчилгээ юм. Энэ удаад бид IoTea мэдээллээ түүнд илгээхийг оролдсон
Mousebot дахин үзсэн: 10 алхам (зурагтай)
Mousebot Revisited: Make vol 2 -ийн Mousebot бол робот техникийн хөгжилтэй танилцуулга юм. Би Mousey -ийн бүтээсэн өргөтгөсөн баримт бичгийг эхнээс нь дуустал нь бүтээсэн нь маш сонирхолтой бөгөөд таны олж чадахгүй цөөн хэдэн жижиг зөвлөмжүүд байна. Үүнийг хэрхэн яаж хийхийг дахин судалсны дараа хамгийн сайн ойлгох болно
Робот хэрхэн бүтээх вэ - BeetleBot V2 (дахин үзсэн): 23 алхам (зурагтай)
Робот хэрхэн бүтээх вэ - BeetleBot V2 (Дахин үзсэн): Энэ бол цох роботын зааварчилгаа бөгөөд MythBusters -ийн хэв маягийг эргэж харсан болно! Би өөрийн цох роботын 1 -р хувилбарын талаар зааварчилгаа өгсөн. Одоо энэ гайхалтай роботын шинэ хувилбарыг танд үзүүлэх цаг боллоо. Энэхүү шинэ хувилбарыг бүтээхэд илүү хялбар болсон