Mundarija:
- 1 -qadam: Ushbu loyihada ishlatilgan narsalar
- 2 -qadam: hikoya
- 3 -qadam: Uskuna ulanishi
- 4 -qadam: dasturiy ta'minot
- 5 -qadam: operatsiya
Video: IoTea LoRa qarori (yangilanish 1811): 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Internet+ - hozir mashhur tushunchadir. Bu safar biz Internet va qishloq xo'jaligini sinab ko'rdik, choy bog'i Internet -choy bo'lib o'sdi.
1 -qadam: Ushbu loyihada ishlatilgan narsalar
Uskuna komponentlari
- Grove - karbonat angidrid sensori (MH -Z16)
- Grove - Raqamli yorug'lik sensori
- Grove - chang sensori (PPD42NS)
- Grove-kislorod sensori (ME2-O2-F20)
- Tuproq namligi va harorat sensori
- LoRa LoRaWAN Gateway - Raspberry Pi 3 bilan 868 MGts to'plami
- Grove - Temp va Humi va barometr sensori (BME280)
Dasturiy ta'minot va onlayn xizmatlar
Microsoft Visual Studio 2015
2 -qadam: hikoya
Sichuan, Yaanning shimoli -sharqidagi Mengding tog'ida, tog 'tizmasi g'arbdan sharqqa yashil dengizda oqadi. Dengiz sathidan 1100 m balandlikda joylashgan 50mu (= 3,3 gektar) plantatsiyaga ega bo'lgan 36 yoshli Deng, o'z avlodining kam sonli choy ishlab chiqaruvchilardan biri uchun eng tanish manzara. Deng choy ishlab chiqaruvchilar oilasidan, lekin oilaviy merosni davom ettirish oson ish emas. Bizning choylarimiz yuqori sifatda organik muhitda o'stiriladi va uning sifatini ta'minlaydi. Shu bilan birga, o'sish zichligi past, narxi yuqori va kurtaklari notekis bo'lib, choyni yig'ib olishni qiyinlashtiradi. Shuning uchun baland tog'li choylar odatda kichik hosil bo'lib, ularning qiymati bozorda aks ettirilmaydi.”So'nggi ikki yil mobaynida Deng o'z qadrini oshirish uchun iste'molchilarning baland tog'li choy haqida xabardorligini oshirishga harakat qilmoqda. Va u Seeedning IoTea texnologiyasini amalga oshirish uchun plantatsiya qidirayotgan Fan bilan uchrashganida, yechim uchun mukammal moslik topildi.
3 -qadam: Uskuna ulanishi
Loyihaning texnik jihozlari 4 qismga bo'linishi mumkin: quvvat, sensorlar, tugun va shlyuz. Keyingi maqolada buni qanday bosqichma -bosqich bajarish kerakligi ko'rsatiladi.
Quvvat qismi
Quvvat qismi asosan quyosh paneli va lityum batareyani o'z ichiga oladi, agar siz ushbu loyihani namoyish qilish uchun qursangiz, ularni e'tiborsiz qoldirishingiz mumkin. Yoki tugun kuchini o'rnatish uchun oldingi qo'llanmani bajarishingiz mumkin.
Sensorlar qismi
Sensorlar bo'limida, ko'plab sensorlar tufayli biz ob -havo stantsiyasidan foydalanganmiz, shuningdek ularni o'rnatish uchun akril qavs yasaganmiz.
Yuqoridagi rasmda ko'rib turganingizdek, Raqamli yorug'lik sensori har doim tepada joylashganki, u yorug'lik ma'lumotlarini to'play oladi. Issiqlik chiqaradigan sensorlar O2 sensori, Chang sensori va CO2 sensori kabi akril qavsning o'rtasiga o'rnatiladi. Nihoyat, akril qavsning pastki qismidagi harorat va namlik sensori.
Bundan tashqari, tuproq harorati va namligi sensori faqat tuproqda o'rnatiladi. Tugun qismi
Tugun qismi - bu suv o'tkazmaydigan qutiga o'rnatilgan Seeeduino LoRaWan, u suv bo'g'inlari orqali quvvat va sensorlarga ulanadi. Chang sensori LoRaWan D3 raqamli piniga, CO2 sensori D4 va D5 piniga, Tuproq sensori D6 va D7 piniga, O2 sensori analog pin A1 ga va yorug'lik sensori va barometr sensori I2C portiga ulanadi.
QAYD: Tuproq sensori ko'k (ma'lumot) kabeli va qizil (Vcc) kabeli orasiga 10k rezistor qo'shilishi kerak.
Seeeduino LoRaWan vaqti -vaqti bilan sensorlar qiymatini yig'adi va ularni LoRa orqali Gateway -ga yuboradi. Ma'lumot formati quyidagi kabi:
{
[0], /* Havo harorati (℃)* /[1], /* Havoning namligi (%)* /[2], /* Balandlik (m) yuqori bayt* /[3], /* Balandlik (m) past bayt */[4],/ * CO2 kontsentratsiyasi (PPM) yuqori bayt */[5],/ * CO2 konsentratsiyasi (PPM) past bayt */[6],/ * Chang kontsentratsiyasi (dona/0.01cf) yuqori bayt */[7],/ *Chang kontsentratsiyasi (dona/0.01 sm) past bayt */[8],/ *Yorug'lik intensivligi (lyuks) yuqori bayt */[9],/ *Yorug'lik zichligi (lyuks) past bayt */ [10], /* O2 kontsentratsiyasi (%)* /[11], /* Tuproq harorati (℃)* /[12], /* Tuproq namligi (%)* /[13], /* Batareya quvvati (V) */ [14]/ *Sensor xato kodi */}
Sensor xato kodi baytidagi har bir bit boshqacha ma'noga ega, xuddi quyida:
{
bit0: 1; / * Barometr sensori xatosi */ bit1: 1; / * CO2 sensori xatosi */ bit2: 1; / * Chang sensori xatosi */ bit3: 1; / * Yorug'lik sensori xatosi */ bit4: 1; / * O2 sensori xatosi */ bit5: 1; / * Tuproq sensori xatosi */ himoyalangan: 2; / * Zaxiralangan */}
Gateway qismi
Gateway qismi - bu RHF0M301-8868 Gateway moduli va RHF4T002 PRI 2 ko'prigiga ulangan, Raspberry Pi, u suv o'tkazmaydigan qutiga o'rnatilgan va suv ulanishlari orqali quvvat va USB kamerasiga ulanadi. Ixtisoslashtirilgan dasturiy ta'minotdan foydalanganligi sababli, uni sozlash uchun Seeed Wiki -ga amal qiling.
4 -qadam: dasturiy ta'minot
Uskuna ulanishi sifatida, dasturiy ta'minotni ham 3 qismga bo'lish mumkin: tugun, shlyuz va veb -sayt.
Tugun qismi
Tugun qismi talab qiladigan drayverlarning aksariyati allaqachon orig_driver papkasida joylashgan. Quyidagi kutubxonalar qo'lda o'rnatilishi kerak:
Adafruit_ASFcore
Loyiha murakkab bo'lgani uchun sizga Arduino IDE o'rniga Microsoft Visual Studio dasturidan foydalanishni tavsiya etamiz. Visual Micro deb nomlangan plagin sizga Visual Studio yordamida Arduino loyihasini bajarishga yordam beradi, qo'shimcha ma'lumot uchun bu erni bosing.
Yaxshi o'qilishi va saqlanishi uchun biz bu safar Ob'ektga yo'naltirilgan dasturlashdan foydalanamiz. Ushbu loyihaning sinf diagrammasi quyidagicha ko'rinadi:
OOP drayveri allaqachon mavjud bo'lgan sensorlar uchun biz ushbu loyihani moslashtirish uchun uni qayta qadoqladik, boshqalari uchun biz haydovchilarni OOP yordamida qayta yozdik. O'rta dasturlar qatlamidagi Sensor klassi haqiqiy sensorlar interfeyslarini birlashtirish uchun ishlatiladi, masalan, barometr sensori bir vaqtning o'zida harorat, namlik va balandlikni to'play oladi, shuning uchun harorat, namlik va balandlikni olish uchun 3 ta interfeys mavjud. Ammo ular farqli usul nomiga ega, bu sensorlar qiymatini olish dasturini xuddi shunday murakkablashtiradi:
barometr-> getTemperature ();
barometr-> getHumidity (); barometr-> getAltitude (); //… boshqa_sensor-> getSomeValue (); //…
Ammo OOPdan foydalanib, u shunday ko'rinadi:
uchun (auto i = 0; i getValue ();
}
Biz, shuningdek, Application sinfini to'pladik, u IApplication interfeysini, IoTea.ino -dagi setup () va loop () usulini Application ob'ektidagi setup () va loop () usullarini chaqira oladi.
ESLATMA: USB Serial faqat disk raskadrovka uchun ishlatiladi. Nosozliklarni tuzatgandan so'ng, iltimos, setup () usulida kodni ishga tushiring.
Gateway qismi
Gateway Part -ning uy papkasidagi Python dasturi har soatda suratga olish va ularni Amazon S3 Server -ga yuklash uchun ishlatiladi. Ishlatishdan oldin, Raspberry Pi -da fswebcam o'rnatilganligiga ishonch hosil qiling:
sudo apt-get update && sudo apt-get fswebcam-ni o'rnating
Agar siz rasm yuklamoqchi bo'lsangiz, quyidagi amallarni bajarib AWS -ni sozlang. Birinchidan, quyidagi buyruqlar yordamida AWS SDK va AWS CLI -ni Raspberry Pi -ga o'rnating:
sudo pip o'rnatish boto3
sudo pip install awscli
va keyin AWS CLI -ni ishga tushiring:
sudo aws ni sozlash
AWS kirish kalit identifikatorini, AWS maxfiy kirish identifikatorini va standart viloyat nomini sozlang.
Agar siz rasmlaringizni yuklashni yoqtirmasangiz, photo.py -ga yuklash haqidagi AWS konfiguratsiya bosqichlarini va sharh kodlarini o'tkazib yuborishingiz mumkin. Har safar Raspberry Pi -ni ishga tushirgandan so'ng, ushbu dasturni ishga tushirish uchun siz /etc/init.d da fayl nomli rasm yaratishingiz va unga quyidagi kodni yozishingiz mumkin.
#!/bin/bash
# /etc/init.d/photo ### INIT INFO'NI BOSHLASH # Ta'minlaydi: seeed_photo # Majburiy-Boshlash: $ remote_fs $ syslog # Zarur-To'xtatish: $ remote_fs $ syslog # Standart-Boshlash: 2 3 4 5 # Default-Stop: 0 1 6 # Qisqacha tavsif: rasm olish initscript # Tavsif: Bu xizmat suratga olishni boshqarish uchun ishlatiladi ### END INIT INFO holatida "$ 1" boshida) echo "Suratga olishni boshlash" /home/rxhf/photo.py &;; to'xtatish) echo "Suratga olishni to'xtatish" o'ldirish $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{$ 2 chop etish');; *) echo "Foydalanish: xizmat fotosurati boshlanishi | to'xtatish" chiqish 1;; esac chiqish 0
ijro etishga ruxsat berish
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
va uni sinab ko'ring
sudo /etc/init.d/photo boshlanishi
Agar muammo bo'lmasa, uni to'xtating va ishga tushirish dasturiga qo'shing
sudo /etc/init.d/photo to'xtatish
sudo update-rc.d standart rasmlari
QAYD: Agar siz Raspberry Pi -ni yuklaganingizdan so'ng shlyuzni ishga tushirishni xohlasangiz, Seeet Wiki -dagi shlyuzning boshlang'ich kodlarini /etc/rc.local -ga qo'shing, shunday bo'lsin:
#!/bin/sh -e
# # rc.local # # Bu skript har bir ko'p foydalanuvchilik darajasining oxirida bajariladi. # Muvaffaqiyatli skriptda "0 chiqish" yoki xato bo'yicha boshqa # qiymat chiqishiga ishonch hosil qiling. # # Ushbu skriptni yoqish yoki o'chirish uchun # bit bajarilishini o'zgartiring. # # Odatiy bo'lib, bu skript hech narsa qilmaydi. # IP manzilini chop eting _IP = $ (hostname -I) || rost bo'lsa ["$ _IP"]; keyin printf "Mening IP manzilim - %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 chiqish 0
Veb -sayt
Biz veb -saytni CentOS 7 -da joylashtirdik. Quyidagi qadamlar sizga qanday joylashtirishni ko'rsatib beradi.
Qadam 1. Python3 -ni o'rnating
sudo yum -y epel -release ni o'rnating
sudo yum -y python36 ni o'rnating
Qadam 2. Python pip va virtual muhitni o'rnating
wget
sudo python36 get-pip.py sudo pip virtualenv-ni o'rnatadi
O'rnatish 3. GitHub -dan veb -saytimizni klonlang
sudo yum -y ni o'rnatish
git klon
Qadam 4. Virtual muhitni yarating va faollashtiring
virtualenv -p python36 iotea -hb
CD iotea-hb manba bin/faollashtirish
Qadam 5. qaram kutubxonalarni o'rnating
pip o'rnatish pymysql
pip install dbutils pip install flask pip install websocket-client pip install cofigparser
Qadam 6. Ma'lumotlar bazasini yaratish
sudo yum -y mariadb mariabd -serverini o'rnating
sudo systemctl mariadb -ni yoqish sudo systemctl start mariadb mysql -uroot -p
va keyin jadval yaratish uchun iotea_hb.sql dan foydalaning.
7 -qadam. Db.ini yarating va unga ushbu kodlarni yozing
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
db.py db.ini yo'lini o'zgartiring
db.py ichida #
#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")
Qadam 8. app.py -dagi portni o'zgartiring va veb -saytni ishga tushiring:
# ilovada
#app.run (disk raskadrovka = To'g'ri, port = 6000) app.run (disk raskadrovka = To'g'ri, port = 8080)
# terminalda
pip gunicorn gunicorn -w 5 -b 0.0.0.0:8080 ilova: ilova
endi veb-brauzeringizda 127.0.0.1:8080 ga tashrif buyuring, siz veb-saytni ko'rishingiz mumkin, lekin real vaqtda ma'lumotlar ko'rsatilmaydi.
Qadam 9. loriot ma'lumotlarini oling
Boshqa terminalni oching, virtual muhitga kiring va loriot ilovasini ishga tushiring:
CD iotea-hb
manba bin/faollashtirish gunicorn loriot: ilova
Biroz kutib turing, siz veb -saytda ko'rsatiladigan ma'lumotlarni ko'rasiz yoki wss -ni loriot.py -da o'zgartirishingiz mumkin:
# loriot.py da
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
5 -qadam: operatsiya
Siz bizning veb-saytlarimizga tashrif buyurib, real vaqtda ma'lumotlarni ko'rishingiz mumkin:
- Yanda
- Namoyish uchun
Tavsiya:
(YANGILANISH - YUQORI MASLAQA bor) USB O'YINNI KONTROLLASH: 10 qadam (rasmlar bilan)
(YANGILANISH - YUQORI MASALA YO'Q.) PC uchun USB O'YINNI KONTROLLASH: HAR QANDAY O'YINLAR UCHUN O'YIN NAZORI (deyarli)
Orange Pi Plus 2 - Armbian (SDcard yoki bortli 16 Gb xotirada!) - Yangilanish: 6 qadam
Orange Pi Plus 2 - Armbian (SDcard yoki bortda 16 Gb xotira!) - Yangilash: Hammaga salom! Bu mening birinchi ko'rsatma va ingliz tili mening ona tilim emas, shuning uchun menga qiyin bo'lmang. Pi Plus 2 - bu Raspberry Pi kabi ajoyib kichik qurilma, lekin tezroq! Raspberry Pi uchun katta kommunikatsiya bor
Savdo karta mashinasi uchun karta ajratuvchi (yangilanish 2019-01-10): 12 qadam (rasmlar bilan)
Savdo kartalari uchun karta saralash mashinasi (yangilanish 2019-01-10): savdo kartasi uchun karta tartiblagichi O'zgarish jurnalini oxirgi bosqichda topish mumkin. Orqa fon Men o'z loyihamning motivatsiyasini Kartani oziqlantiruvchi maqolasida allaqachon tushuntirganman. Qisqasi, bolalarim bilan men katta miqdordagi savdo kartasini yig'dik
IoTea LoRa Qarori (Azure bilan, 1812 -ni yangilang): 5 qadam
IoTea LoRa qarori (Azure bilan, 1812 yangilanishi bilan): Microsoft Azure - bu bulutli xizmat bo'lib, u yanada kuchli va barqaror hisoblash quvvatini ta'minlaydi. Bu safar biz unga IoTea ma'lumotlarini yuborishga harakat qildik
Oynadan 10 ta yangilanish xabarnomasidan qutuling !!: 10 qadam
Window 10 -ning yangilanish bildirishnomalaridan qutuling !!: Windows 10 -ni har doim yangilashni so'rashdan charchadingizmi? Xavotir olmang, siz bu zerikarli bildirishnomalardan butunlay qutulishingiz mumkin, men sizga ko'rsataman, iltimos, mening kanalimga obuna bo'ling, rahmat