Mündəricat:
- Addım 1: Bu Layihədə İstifadə Edilən Şeylər
- Addım 2: Hekayə
- Addım 3: Avadanlıq Bağlantısı
- Addım 4: Proqramlaşdırma
- Addım 5: Əməliyyat
Video: Görülmüş IoTea LoRa Həll (Yeniləmə 1811): 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
İnternet+ indi populyar bir anlayışdır. Çay bağı İnternet Çayını böyütmək üçün bu dəfə İnternet və kənd təsərrüfatını sınadıq.
Addım 1: Bu Layihədə İstifadə Edilən Şeylər
Avadanlıq komponentləri
- Grove - Karbon Dioksid Sensoru (MH -Z16)
- Grove - Rəqəmsal İşıq Sensoru
- Grove - Toz Sensoru (PPD42NS)
- Grove-Oksigen Sensoru (ME2-O2-Ф20)
- Torpaq Nəmliyi və Temperatur Sensoru
- LoRa LoRaWAN Gateway - Raspberry Pi 3 ilə 868MHz dəsti
- Grove - Temp & Humi və Barometr Sensoru (BME280)
Proqram proqramları və onlayn xidmətlər
Microsoft Visual Studio 2015
Addım 2: Hekayə
Sichuan, Yaan'ın şimal -şərqindəki Mengding dağında, dağ silsiləsi yaşıl dənizdə qərbdən şərqə doğru axır. Dəniz səviyyəsindən 1100 m yüksəklikdə yerləşən 50mu (= 3.3 hektar) əkin sahəsinə malik olan, çox az sayda Mengding çay istehsalçılarından biri olan 36 yaşlı Denq üçün ən tanış mənzərədir. Deng çayçı ailəsindən gəlir, lakin ailə mirasını davam etdirmək asan məsələ deyil. Çaylarımız əla keyfiyyətini təmin etmək üçün üzvi bir mühitdə yüksək yüksəkliklərdə yetişdirilir. Ancaq eyni zamanda, böyümə sıxlığı aşağıdır, dəyəri yüksəkdir və qönçələnmə qeyri -bərabərdir, bu da çayın yığılmasını çətinləşdirir. Bu səbəbdən yüksək dağ çayları adətən kiçik məhsullardır və dəyərləri bazara əks olunmur.”Son iki ildə Deng, dəyərini tanıtmaq üçün istehlakçıların yüksək dağ çayı haqqında məlumatlılığını artırmağa çalışır. Və Seeed -in IoTea texnologiyasını tətbiq etmək üçün bir plantasiya axtaran Fanla tanış olanda bir həll üçün mükəmməl bir uyğunluq tapıldı.
Addım 3: Avadanlıq Bağlantısı
Bu layihənin aparatı 4 hissəyə bölünə bilər: Güc, Sensorlar, Node və Ağ Geçidi. Növbəti məqalə bunu addım -addım necə tamamlayacağınızı göstərəcəkdir.
Güc hissəsi
Güc hissəsində əsasən Günəş Paneli və Lityum Batareya var, sadəcə bu layihəni nümayiş üçün qurarsanız, onları görməzdən gələ bilərsiniz. Və ya düyün gücünü quraşdırmaq üçün Əvvəlki təlimatı izləyə bilərsiniz.
Sensorlar hissəsi
Sensorlar hissəsində, çox sayda sensora görə bir hava stansiyasından istifadə etdik və onları quraşdırmaq üçün akril mötərizə də düzəltdik.
Yuxarıdakı şəkildə gördüyünüz kimi, Rəqəmsal İşıq Sensoru hər zaman yuxarıdadır ki, işıqlandırma məlumatlarını toplaya bilsin. İstilik istehsal edəcək sensorlar, O2 Sensor, Toz Sensoru və CO2 Sensoru kimi Akril mötərizənin ortasına quraşdırılmışdır. Nəhayət, Akril mötərizənin altındakı İstilik və Nəmlik Sensoru.
Bundan əlavə, Torpaq İstiliyi və Nəmlik Sensoru torpağa tək quraşdırılır. Düyün hissəsi
Node Part, Su keçirməyən bir qutuya quraşdırılmış bir Seeeduino LoRaWan -dır, su birləşmələri vasitəsilə gücə və sensorlara qoşulur. Bunlardan Toz Sensoru LoRaWanın rəqəmsal pin D3 -ə, CO2 Sensoru D4 və D5 pininə, Torpaq Sensoru D6 və D7 pininə, O2 Sensoru analog pin A1 -ə və İşıq Sensoru və Barometr Sensoru I2C portuna qoşulur.
QEYD: Torpaq Sensorunun Mavi (Məlumat) kabeli ilə Qırmızı (Vcc) kabeli arasına 10k rezistor əlavə edilməlidir.
Seeeduino LoRaWan, sensorlar dəyərini birdəfəlik toplayır və LoRa vasitəsilə Gateway -ə göndərir. Məlumat formatı aşağıdakı kimidir:
{
[0], /* Hava istiliyi (℃)* /[1], /* Hava rütubəti (%)* /[2], /* Yüksəklik (m) yüksək bayt* /[3], /* Yüksəklik (m) aşağı bayt */[4],/ * CO2 konsentrasiyası (PPM) yüksək bayt */[5],/ * CO2 konsentrasiyası (PPM) aşağı bayt */[6],/ * Toz konsentrasiyası (ədəd/0.01cf) yüksək bayt */[7],/ *Toz konsentrasiyası (ədəd/0.01cf) aşağı bayt */[8],/ *İşıq intensivliyi (lüks) yüksək bayt */[9],/ *İşıq intensivliyi (lüks) aşağı bayt */ [10], /* O2 konsentrasiyası (%)* /[11], /* Torpağın temperaturu (℃)* /[12], /* Torpağın rütubəti (%)* /[13], /* Batareya gərginliyi (V) */ [14]/ *Sensor səhv kodu */}
Sensor Hata Kodu baytındakı hər bir bit, aşağıda olduğu kimi bir fərq mənasına malikdir:
{
bit0: 1; / * Barometr Sensor xətası */ bit1: 1; / * CO2 Sensor Hatası */ bit2: 1; / * Toz Sensor xətası */ bit3: 1; / * İşıq Sensor xətası */ bit4: 1; / * O2 Sensor Hatası */ bit5: 1; / * Torpaq Sensor xətası */ qorunur: 2; / * Rezerv edilmiş */}
Ağ geçidi hissəsi
Gateway Part, RHF0M301-8868 Gateway modulunu və PRI 2 Bridge RHF4T002 -ni bağlayan, Suya davamlı bir qutuya quraşdırılmış və Su Bağlantıları vasitəsilə güc və USB Kameraya qoşulan bir Raspberry Pi -dir. Xüsusi bir firmware istifadə etdiyindən, konfiqurasiya etmək üçün Seeed Wiki -ni izləyin.
Addım 4: Proqramlaşdırma
Hardware Connection olaraq, Software Programming də bölünə bilər, 3 hissəyə bölünə bilər: Node, Gateway və Website.
Düyün hissəsi
Düyün hissəsinin tələb etdiyi əksər sürücülər artıq orig_driver qovluğundadır. Aşağıdakı kitabxanalar əl ilə quraşdırılmalıdır:
Adafruit_ASFcore
Layihə çətin olduğu üçün Arduino IDE yerinə Microsoft Visual Studio istifadə etməyinizi məsləhət görürük. Visual Micro adlı bir plugin, Visual Studio istifadə edərək bir Arduino layihəsini həyata keçirməyinizə kömək edə bilər, daha çox məlumat üçün bura vurun.
Daha yaxşı oxunması və davam etdirilməsi üçün bu dəfə Obyekt yönümlü proqramlaşdırmadan istifadə edirik. Bu layihənin sinif diaqramı aşağıdakı kimidir:
Artıq OOP sürücüsü olan bu sensorlar üçün, bu layihəni uyğunlaşdırmaq üçün yenidən qablaşdırdıq, digərləri üçün sürücülərini OOP istifadə edərək yenidən yazdıq. Orta proqram təbəqəsindəki Sensor sinfi, real sensorların interfeyslərini birləşdirmək üçün istifadə olunur, məsələn, barometr sensoru eyni zamanda temperaturu, rütubəti və yüksəkliyi toplaya bilir, buna görə də temperatur, rütubət və yüksəklik əldə etmək üçün 3 interfeysə malikdir. Ancaq sensorlar əldə etmək proqramını daha mürəkkəb hala gətirəcək fərq metodu adları var:
barometr-> getTemperature ();
barometr-> getHumidity (); barometr-> getAltitude (); //… başqa_sensor-> getSomeValue (); //…
Ancaq OOP istifadə edərək, belə görünür:
üçün (avtomatik i = 0; i getValue ();
}
Bir tətbiq sinifini də doldurduq, IApplication interfeysini tətbiq edir, IoTea.inoda quraşdırma () və loop () metodunu Application obyektində setup () və loop () metodlarına zəng edə bilərik.
DİQQƏT: USB Serial SADECƏ ayıklama üçün istifadə olunur. Hata ayıklandıqdan sonra, setup () metodunda kodu başlatdığını bildirin.
Ağ geçidi hissəsi
Gateway Partının ev qovluğundakı Python proqramı, hər saat fotoşəkil çəkmək və Amazon S3 Server -ə yükləmək üçün istifadə olunur. İstifadə etməzdən əvvəl, Raspberry Pi -də fswebcamın artıq quraşdırıldığından əmin olun:
sudo apt-get yeniləmə && sudo apt-get fswebcam quraşdırın
Fotoşəkillər yükləmək istəyirsinizsə, aşağıdakı adımlarla AWS -ni konfiqurasiya edin. Əvvəlcə bu əmrlərdən istifadə edərək AWS SDK və AWS CLI -ni Raspberry Pi -yə quraşdırın:
sudo pip boto3 quraşdırın
sudo pip install awscli
sonra AWS CLI -ni işə salın:
sudo aws konfiqurasiya edin
AWS Giriş Açar ID -nizi, AWS Gizli Giriş ID -nizi və Varsayılan bölgə adınızı konfiqurasiya edin.
Fotoşəkillərinizi yükləməyi sevmirsinizsə, photo.py -də yükləmə ilə əlaqədar AWS konfiqurasiya addımlarını və şərh kodlarını atlaya bilərsiniz. Hər dəfə Raspberry Pi açıldıqdan sonra bu proqramı işə salmaq üçün /etc/init.d -də bir fayl adı şəkli yarada və ona aşağıdakı kodu yaza bilərsiniz.
#!/bin/bash
# /etc/init.d/photo ### INIT MƏLUMATINA BAŞLAYIN # Təmin edir: seeed_photo # Tələb olunur-Başlat: $ remote_fs $ syslog # Tələb olunur-Stop: $ remote_fs $ syslog # Varsayılan-Başlat: 2 3 4 5 # Default-Stop: 0 1 6 # Qısa Təsvir: şəkil çəkmə initscript # Təsvir: Bu xidmət şəkil çəkilişini idarə etmək üçün istifadə olunur ### END INIT INFO halda "$ 1" halda) echo "Şəkil çəkməyə başla" /home/rxhf/photo.py &;; stop) echo "Şəkil çəkməyi dayandır" öldür $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) echo "İstifadə: xidmətin foto başlanğıcı | dayan" çıxış 1;; esac çıxış 0
icra icazəsi təyin edin
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
və sınayın
sudo /etc/init.d/photo başlanğıcı
Heç bir problem yoxdursa, onu dayandırın və başlanğıc tətbiqinə əlavə edin
sudo /etc/init.d/photo stop
sudo update-rc.d fotoşəkilləri
QEYD: Raspberry Pi açılışından sonra ağ geçidini işə salmaq istəyirsinizsə, Seeet Wiki -də /etc/rc.local ünvanına keçid kodlarını əlavə edin, belə görünsün:
#!/bin/sh -e
# # rc.local # # Bu skript hər çox istifadəçi səviyyəsinin sonunda icra olunur. # Skriptin müvəffəqiyyətdə və ya səhvdə hər hansı digər # dəyərdən "0 çıxacağına" əmin olun. # # Bu skriptin işə salınması və ya söndürülməsi üçün # bitin icrasını dəyişmək kifayətdir. # # Varsayılan olaraq bu skript heç bir iş görmür. # IP ünvanını çap edin _IP = $ (hostname -I) || doğru olarsa ["$ _IP"]; sonra printf "IP ünvanım %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 çıxış 0
Veb sayt
Veb saytı CentOS 7 -də yerləşdirdik. Aşağıdakı addımlar sizə necə yerləşdiriləcəyini göstərəcək.
Addım 1. Python3 qurun
sudo yum -y epel -release qurun
sudo yum -y python36 quraşdırın
Addım 2. Python pip və virtual mühit qurun
wget
sudo python36 get-pip.py sudo pip virtualenv quraşdırın
Setp 3. Veb saytımızı GitHub -dan klonlaşdırın
sudo yum -y yüklə
git klonu
Addım 4. Virtual mühit yaradın və aktivləşdirin
virtualenv -p python36 iotea -hb
cd iotea-hb mənbə bin/aktivləşdir
Addım 5. Asılı kitabxanaları quraşdırın
pip pymysql quraşdırın
pip install dbutils pip pip flask pip install websocket-client pip install cofigparser
Addım 6. Verilənlər bazası yaradın
sudo yum -y mariadb mariabd -server quraşdırın
sudo systemctl mariadb imkan verir sudo systemctl start mariadb mysql -uroot -p
və sonra bir masa yaratmaq üçün iotea_hb.sql istifadə edin.
Addım 7. db.ini yaradın və ona bu kodları yazın
[db]
db_port = 3306 db_user = kök db_host = localhost db_pass = db_name = iotea
db.py -də db.ini yolunu dəyişdirin
# db.py -də
#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")
Addım 8. app.py -də portu dəyişdirin və veb saytı işə salın:
# app.py -də
#app.run (debug = True, port = 6000) app.run (debug = True, port = 8080)
# terminalda
pip install gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app: app
İndi veb brauzerinizdə 127.0.0.1:8080 ziyarət edin, veb saytı görə bilərsiniz, ancaq real vaxt məlumatları göstərilmir.
Addım 9. Loriot məlumatlarını əldə edin
Başqa bir terminal açın, virtual mühitə yenidən daxil olun və loriot tətbiqinə başlayın:
cd iotea-hb
mənbə bin/gunicorn loriot aktivləşdirmək: app
Bir müddət gözləyin, veb saytında göstərilən məlumatları görəcəksiniz və ya loriot.py -də wss -i dəyişə bilərsiniz:
# loriot.py -də
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
Addım 5: Əməliyyat
Real vaxt məlumatlarına baxmaq üçün veb saytlarımızı ziyarət edə bilərsiniz:
- Yaanda
- Nümayiş üçün
Tövsiyə:
İşıq Çirkləndirmə Həll - Artemis: 14 Addım
İşıq Çirkləndirmə Həll - Artemis: İşıq çirklənməsi dünyada hamımızı təsir edən bir şeydir. Ampul icad edildikdən bəri işıq daha da populyarlaşdı və xüsusi olaraq Nyu York və Çikaqo kimi böyük şəhərlərdə istifadə edildi. Bütün bu işıq təsir edə bilər
CPU nədir, nə edir və problemi necə həll etmək olar: 5 addım
CPU nədir, nə edir və problemi necə həll etmək olar: Hər gün burada " CPU " və ya " Prosessor " Bir CPU nə olduğunu və nə etdiyini araşdıracağam, sonra ümumi CPU problemlərini və bunları necə həll edəcəyimi araşdıracağam
Baxılan LoRa IoTea Həll: 5 Addım
Baxılan LoRa IoTea Həll: Çay əkinlərində tətbiq olunan avtomatik məlumat toplama sistemi. Ağıllı kənd təsərrüfatı məlumatlarının toplanmasının bir hissəsidir
Görülmüş IoTea LoRa Həll (Azure ilə, Yeniləmə 1812): 5 addım
Görülmüş IoTea LoRa Həll (Azure ilə, Yeniləmə 1812): Microsoft Azure, daha güclü və sabit hesablama gücü təmin edən bir bulud xidmətidir. Bu dəfə IoTea məlumatlarımızı ona göndərməyə çalışdıq
Arduino Layihəsi: GPS İzləmə Həll üçün RF1276 Test Aralığı LoRa Modulu: 9 Addım (Şəkillərlə birlikdə)
Arduino Layihəsi: GPS İzləmə üçün Test Aralığı LoRa Modulu RF1276 Həlli: Bağlantı: USB - SerialNeed: Chrome Brauzer Ehtiyacı: 1 X Arduino Mega Ehtiyacı: 1 X GPS Ehtiyacı: 1 X SD Kart Ehtiyacı: 2 X LoRa Modem RF1276Fəaliyyət: Arduino GPS dəyərini göndər ana bazaya - Dataino Server Lora Modulunda əsas baza məlumatları: Ultra uzun məsafə