İçindekiler:
- Adım 1: Bu Projede Kullanılanlar
- 2. Adım: Öykü
- 3. Adım: Donanım Bağlantısı
- Adım 4: Yazılım Yapılandırması
- Adım 5: Web Sitesi Yapımı
Video: Seeed LoRa IoTea Çözümü: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Çay ekimine uygulanan otomatik bilgi toplama sistemi. Akıllı tarımsal bilgi toplamanın bir parçasıdır.
Adım 1: Bu Projede Kullanılanlar
Donanım bileşenleri
- Grove - Karbon Dioksit Sensörü(MH-Z16)
- Grove - Dijital Işık Sensörü
- Grove - Toz Sensörü(PPD42NS)
- Grove - Oksijen Sensörü(ME2-O2-Ф20)
- Toprak Nemi ve Sıcaklık Sensörü
- LoRa LoRaWAN Ağ Geçidi - Raspberry Pi 3 ile 868MHz Kiti
- Grove - Sıcaklık&Humi&Barometre Sensörü (BME280)
Yazılım uygulamaları ve çevrimiçi hizmetler
Microsoft Visual Studio 2015
2. Adım: Öykü
Akıllı tarım, tarım üretimini mobil veya bilgisayar platformları aracılığıyla kontrol etmek için sensörler ve yazılımlar kullanarak Nesnelerin İnterneti teknolojisini geleneksel tarıma uygulayarak geleneksel tarımı daha “akıllı” hale getirmektir.
Sichuan, Ya'an'ın kuzeydoğusundaki Mengding Dağı'nda, dağ sırtı yeşil bir denizde batıdan doğuya uzanır. Bu, deniz seviyesinden 1100 m yükseklikte yer alan 50mu (=3.3 hektar) plantasyonuyla neslinin çok az Mengding çay üreticisinden biri olan 36 yaşındaki Deng için en tanıdık manzara. Deng, çay üreticisi bir aileden geliyor, ancak aile mirasını sürdürmek kolay bir iş değil. “Çaylarımız, mükemmel kalitesini sağlamak için organik bir ortamda yüksek rakımda yetiştirilmektedir. Ancak aynı zamanda, büyüme yoğunluğu düşük, maliyet yüksek ve tomurcuklanma düzensiz, bu da çayı hasat etmeyi zorlaştırıyor. Bu nedenle yüksek dağ çayları normalde küçük hasatlardır ve değerleri piyasaya yansımaz.” Deng, son iki yıldır yüksek dağ çayının değerini yükseltmek için tüketici bilincini artırmaya çalışıyor. Ve Seeed'in IoTea teknolojisini uygulamak için bir plantasyon arayan Fan ile tanıştığında, bir çözüm için mükemmel bir eşleşme yapıldı. Seeed IoTea Çözümü, çay çiftçilerinin geleneksel çay yetiştirme uygulamalarını değiştirmeden tarlaları daha iyi yönetmelerine yardımcı olmayı ve açık bir platformda tarlalardan gerçek zamanlı çevresel verileri sunmayı amaçlıyor.
Sensörler, düğümler ve ağ geçitlerinden oluşan IoTea, sıcaklık ve nem, CO2, O2, PM ve ışığa maruz kalma dahil olmak üzere yetiştirme ve üretim süreçleri sırasında çayın kalitesini etkileyebilecek faktörlerin gerçek zamanlı verilerini toplar. Veriler sensörler tarafından toplanır, düğümler tarafından ağ geçidine ve nihayetinde buluta gönderilir ve bir web sayfasındaki son müşteriler tarafından erişilebilir hale getirilir.
3. Adım: Donanım Bağlantısı
Adım 1: Ağ Geçidi Bağlantısı
Ağ geçidi bir kutuya ayrı olarak kurulur. Isı dağılımı sorununu göz önünde bulundurarak 2 adet fan ekledik. Biri Raspberry Pi'nin ısı dağılımı için, diğeri ise iç ve dış hava sirkülasyonu içindir. Ağ geçidi kutusu bir çiftçinin evine yerleştirilmiştir, bu nedenle güç sorununu düşünmemize gerek yoktur.
Adım 2: Düğüm Bağlantısı
Düğüm, verilerin terminalidir ve tüm orijinal veriler buradan elde edilir. Düğüme bağlı 6 adet sensör bulunmaktadır. Toprak nem & sıcaklık sensörüne ek olarak panjur kutusunun içine başka sensörler yerleştiriyoruz.
Düğüm su geçirmez bir kutuya yerleştirilmiştir. Düğüme daha iyi bir bağlantı olması için bir adaptör kartı yapıyoruz. Son olarak, bu panonun şematik indirme bağlantısını sağlayacağız. Aşağıda gösterildiği gibi, sensörlerin kabloları klemensler aracılığıyla adaptör kartına takılır. Sensörlerin ve fanın açılıp kapanmasını kontrol etmek için anahtar devreleri oluşturmak için 3 MOS tüpü (SI2301) kullanıyoruz. Fan soğutmak için kullanılır. Kart üzerine monte edilmiş bir sıcaklık sensörümüz (DS18B20) var. Bize kutunun iç sıcaklığını söyleyebilir ve ardından mikro denetleyici fanı açıp açmamaya karar verir. Kurşun asit akü voltajını ölçmek için bir voltaj bölücü devre yapmak için birkaç direnç kullanıyoruz. Son olarak, daha sonra genişletme ve hata ayıklama için kartta 3 IIC arabirimi ve seri bağlantı noktası ayırdık.
Düğümün güç kaynağı probleminden bahsedelim. Düğüm çay plantasyonuna rastgele yerleştirilir, bu nedenle geleneksel güç kaynağı yöntemi artık geçerli değildir. Bir güneş enerjisi çözümü kullanmak iyi bir fikirdir. Şu anda piyasada sunulan birçok çözüm var. İhtiyaçlarımızı karşılayan birini seçebiliriz. Seçtiğimiz çözümde 3 parça var: güneş paneli, solar şarj kontrolörü ve kurşun asit batarya. Güneş enerjisini daha iyi yakalayabilmek için konsolun üst kısmına güneş paneli yerleştirip açısını güneşe bakacak şekilde ayarlıyoruz. Solar şarj kontrol cihazını node ile aynı kutuya yerleştirdik. Kutunun içinde fazladan boşluk olmadığı için kurşun asit bataryayı yerleştirmek için yeni bir su geçirmez kutu bulmamız gerekti.
Adım 4: Yazılım Yapılandırması
düğüm
Bu bölümde, düğümün temel yazılım yapılandırmasını tanıtacağız.
Veri formatı
Düğüm tarafından ağ geçidine yüklenen veriler:
unsigned char Lora_data[15] ={0, 1, 2, 3,, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
Her veri bitinin anlamı:
Lora_data[0] :Hava sıcaklığı, ℃
Lora_data[1] :Hava nemi, %
Lora_data[2] :İrtifa yüksek sekiz, m
Lora_data[3] :Alçak irtifa sekiz
Lora_data[4] :CO2 konsantrasyonu yüksek sekiz, ppm
Lora_data[5] :CO2 konsantrasyonu düşük sekiz
Lora_data[6] :Toz konsantrasyonu yüksek sekiz, adet/0.01cf
Lora_data[7] :Toz konsantrasyonu düşük sekiz
Lora_data[8] :Işık yoğunluğu yüksek sekiz, lüks
Lora_data[9] :Işık yoğunluğu düşük sekiz
Lora_data[10] :O2 konsantrasyonu, % (ham veri bölü 1000)
Lora_data[11] :Toprak sıcaklığı, ℃
Lora_data[12] :Toprak nemi, %
Lora_data[13] :Akü voltajı, v
Lora_data[14] :Sensör hata kodu
Hata kodu:
Lora_data[14] = [bit7, bit6, bit5, bit4, bit3, bit2, bit1, bit0]
Her bitin anlamı:
bit 0: 1----Sıcaklık ve Humi ve Barometre Sensörü (BME280) hatası
bit 1: 1---- Karbon Dioksit Sensörü(MH-Z16) hatası
bit 2: 1---- Toz Sensörü (PPD42NS) hatası
bit 3: 1---- Dijital Işık Sensörü hatası
bit 4: 1---- Oksijen Sensörü(ME2-O2-Ф20) hatası
bit 5: 1---- Toprak Nemi ve Sıcaklık Sensörü hatası
bit 6: Ayrılmış
bit 7: Ayrılmış
Bir Error_code_transform.exe yaptık, açın ve hata kodunu onaltılı olarak girin, hangi sensörün hatalı olduğunu hemen anlayacaksınız. İndirme bağlantısı bu makalenin sonundadır.
Parametre ayarı:a)Veri iletim döngüsü
// seeedtea.ino
#defineinterval_time 600 //saniye
Bu parametre, veri aktarım döngüsünü değiştirmek için değiştirilebilir. Her döngüde, veri toplama yaklaşık 1 dakika sürer. Bu nedenle bu değerin 60 saniyenin altına düşürülmesi önerilmez.
b)Toz sensörü ısınma süresi
//seeedtea.ino
#definePreheat_time 30000 //DustSensor ısınma süresi, milisaniye //Dust_other.cpp #definesampletime_ms 30000 //samplingtime30s
c) Gerilim katsayısı
//POWER_Ctrl.cpp
#defineBattery_coective 0,159864 //ADC değeri× Battery_katsayısı = pil_voltajı #defineSolar_katsayısı 0,22559 //ADC değeri × Solar_katsayı = solar_voltage
Bu iki parametre gerilim bölücü devresine göre hesaplanır.
d)Fan açma sıcaklığı eşiği
//POWER_Ctrl.cpp
#defineFan_start_temp 45 //sıcaklık eşiği #defineFan_start_light 500 //ışık yoğunluğu
Gerçek sıcaklık eşiği aştığında, fan soğumaya başlayacaktır.
e)O2 sensörü başlatma parametresi
//Oksijen.cpp
#defineO2_percentage 208.00 // %20.8
f) Makro anahtarı
//seeedtea.ino
#defineLORA_RUN //Yorumdan sonra Lora başlatma ve veri iletimi duracak #defineSENSOR_RUN //Yorumdan sonra harici sensörler çalışmayı durduracak //POWER_Ctrl.cpp #defineFAN_ON //Yalnızca test, Pratik uygulamanın yorumlanması gerekiyor /**** ***DS18B20 kontrol modu *************************/ #defineSlower_Mode // Sıcaklığı almak için yavaş mod. Yorum çıkışı hızlı moddur
g)Pin eşleme
D2: LED gösterge ve harici sıfırlama mikrodenetleyiciIIC: SCL ve SDA
//Dust_other.h
#defineDust_pin 3 //Toz sensörü //CO2.cpp #defineCO2_serial Seri1 //donanım seri portunu (D0 ve D1) kullan //seeedtea.ino #definedataPin 6 //Toprak veri pini #defineclockPin 7 //Toprak saat pini //POWER_Ctrl. h #defineDS18B20_pin 8 //DS18B20 #defineFan_pin 9 //Fan #defineAir_CtrlPin 10 // Panjur içine yerleştirilen sensörler için kontrol pini #defineSoil_CtrlPin 11 // Toprak Nem ve Sıcaklık Sensörü anahtar pini #defineBattery_pin A2 // Akü voltajını ölçün #defineSolar_pin A /Güneş paneli voltajını ölçün //Oxygen.h #defineO2_pin A1 //O2 sensörü
h) Watchdog zamanlayıcı
Watchdog zamanlayıcı, sistemin çalışma durumunu izlemek için kullanılır. Sistem anormal bir şekilde çalıştığında, düğüm sıfırlanacak ve böylece uzun süre sürekli çalışabilecektir.
Başvurulacak kütüphane:
- Adafruit_SleepyDog.h projeye eklendi
- Adafruit_ASFcore-master.zip proje klasöründe paketlenmiştir ve Arduino IDE'ye manuel olarak eklenmesi gerekir.
İlgili işlevler:
Watchdog'u etkinleştir
int WatchdogSAMD::enable(int maxPeriodMS, bool isForSleep)
Giriş parametreleri:
Int maxPeriodMS: Milisaniye cinsinden bekleme süresi. İzin verilen maksimum süre 16000 milisaniyedir.
geri dönüş değeri:
Int türü, gerçek bekleme süresini döndürür
Bekçi köpeğini sıfırla
void WatchdogSAMD::reset()
"Köpeği beslemek" olarak adlandırılan bekçi köpeği zamanlayıcısını sıfırlamak için bu işlevi çağırın. Reset olmadan bekleme süresinin aşılması, düğümün yeniden başlatılmasına neden olur.
bekçi köpeğini durdur
void WatchdogSAMD::disable()
geçit
Bu bölümde Loriot sunucusuna nasıl bağlanılacağını anlatacağız.
Adım 1: Loriot Sunucu Ağ Geçidi Kaydı
a) Yeni kullanıcının önce bir hesap açması gerekir, kayıt adresini tıklayın. Kayıt olmak için Kullanıcı Adı, Şifre ve e-posta adresini girin, kayıt olduktan sonra size bir e-posta gönderilecektir, etkinleştirmek için lütfen e-postadaki talimatları izleyin.
b) Başarılı aktivasyondan sonra oturum açmak için buraya tıklayın. Varsayılan katman “Community Network”tür, 1 Gateway(RHF2S001) ve 10 node'u destekler.
c) Dashboard -> Gateway girin, Gateway eklemek için Add Gateway start'a tıklayın.
d) Raspberry Pi 3'ü seçin
e) Aşağıdaki gibi ayarlayın:
- Radyo ön uç -> RHF2S001 868/915 MHz (SX1257)
- OTOBÜS -> SPI
f) RHF2S001'inizin MAC adresini girin, b8:27:eb:xx:xx:xx biçiminde olmalıdır. Ayrıca Ağ Geçidi Konumu bilgilerini girin.
g) Kaydı tamamlamak için “Raspberry Pi ağ geçidini kaydet”e tıklayın.
h) Yapılandırma sayfasına girmek için kayıtlı ağ geçidine tıklayın, “Frekans Planı”nı manuel olarak değiştirin, buradaki planınız RHF2S001 tipinizin türüne göre belirlenir, mevcut plan CN470,CN473, CN434,CN780,EU868, seçildikten sonra lütfen sayfayı yenileyin tam kanalı almak için. Bu wiki'de EU868'i seçiyoruz.
i) Putty terminalinde komutu çalıştırın:
cd /home/rxhf/loriot/1.0.2
sudo systemctl pktfwd'yi durdur sudo gwrst wget > -O loriot-gw.bin chmod +x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io
j) Finish gateway registration. You will see the gateway is Connected now. Next is to register node.
Adım 2: Loriot Server Connect Node cihazı
a) Mevcut ağ geçidi kanallarını alın
Mevcut ağ geçidi kanalları Dashboard -> Gateway ->Your Gateway'den alınabilir, mevcut kanalları aşağıdaki resimde görebilirsiniz.
b) Seeeduino LoRAWAN GPS(RHF3M076) Yapılandırması
ArduinoIDE'nin seri monitörünü açın, aşağıdaki komuta dokunun.
+ch'de
Seeeduino_LoRAWAN GPS'inizin varsayılan kanalını onaylamak için 3 kanal alacaksınız. Eğer müsait kanal yoksa aşağıdaki komut ile Seeeduino_LoRAWAN'ın kanallarını değiştirebilirsiniz.
+ch=0'da, 868.1
+ch=1'de, 868.3'te+ch=2'de, 868.5
Ardından kontrol etmek için tekrar at+ch kullanabilirsiniz.
c) Seeeduino_LoRAWAN GPS'i Loriot sunucusunda ABP NodeLog olarak ekleyin, Kontrol Paneli -> Uygulamalar -> SimpleApp öğesine tıklayın. ABP'yi İçe Aktar'a tıklayın, aşağıdaki öğeleri girin
- DevAddr: Seeeduino_LoRAWAN GPS "AT+ID" komutundan geçer (Not: Loriot iki nokta üst üste konektörünü desteklemez, manuel olarak kaldırmanız gerekir)
- FCntUp:Set 1
- FCntDn:Set 1
- NWKSKEY:Varsayılan değer 2B7E151628AED2A6ABF7158809CF4F3C
- APPSKEY:Varsayılan değer 2B7E151628AED2A6ABF7158809CF4F3C
- EUI:DEVEUI, Seeeduino_LoRAWAN GPS "AT+ID" komutundan geçer
Aygıtı içe aktarmayı bitirmek için Aygıtı Al düğmesini tıklayın. Şimdi Dashboard-> Applications -> SampleApp'i seçin, az önce eklediğiniz yeni ABP Düğümünü göreceksiniz.
d) Seeeduino_LoRAWAN'dan veri gönder
DİKKAT! Bu sadece bir test.
ArduinoIDE'nin seri monitörüne geri dönün, şu komutu gönderin:
AT+CMSGHEX="0a 0b 0c 0d 0e"
Ardından Dashboard -> Applications -> SampleApp -> Device öğesine gidin, Node Device EUI veya DevAddr öğesine tıklayın, az önce gönderdiğiniz verileri burada bulacaksınız.
Ayrıntılar için lütfen bu wiki'ye bakın.
Adım 5: Web Sitesi Yapımı
İlgili Araçlar
- sanal ortam
- Python3
- gunicorn
- süpervizör
- Nginx
- MySQL
Test dağıtım ortamı olarak CentOS7 kullanıyoruz
sanal ortam
Bağımsız bir python3 üretim ortamı oluşturmak için virtualenv kullanın
a) kurmak
pip sanalenv yükleyin
b) bir python3 sanal ortamı oluşturun
virtualenv -p python3 iotea
c) sanal ortamı başlatın ve iotea dizinine girin
kaynak kutusu/etkinleştir
d) mevcut çevre
devre dışı bırakmak
Python3
a) kurmak
yum epel sürümünü yükleyin
yum python36'yı yükleyin
b) PyMySQL, DBUtils, Flask, websocket-client, configparser bağımlı kitaplığını kurun
pip kurulum pymysql
pip kurulumu dbutils pip yükleme şişesi pip kurulumu websocket-client pip kurulumu configparser
gunicorn
a) kurun (Python3 ortamı altında)
pip yükleme gunicorn
b) şişe projesini çalıştırın (iotea proje dizini altında)
gunicorn -w 5 -b 0.0.0.0:5000 uygulama:uygulama
c) loriot verilerini almak için websocket-clint'i çalıştırın
gunicorn loriot:uygulama
d) Gunicorn işlem ağacını görüntüle
pstree -ap|grep gunicorn
süpervizör
a) kurulum (kök kullanıcı)
pip kurulum sorumlusu
b) yapılandırma dosyaları oluşturun
echo_supervisord_conf > /etc/supervisord.conf
c) bir dizin oluşturun ve bir dizin yapılandırması tanıtın
mkdir -p /etc/supervisor/conf.d
/etc/supervisord.conf dosyasını düzenleyin ve dosyanın sonundaki [include] altındaki dosyalar alanını değiştirin.
';' işaretini kaldırmanız gerektiğini unutmayın. yorum karakteri olan bu iki satırın önünde.
[Dahil etmek]
Dosyalar = /etc/supervisor/conf.d/*.conf
/etc/supervisor/conf.d/'yi tanıtmak anlamına gelir. Aşağıdaki yapılandırma dosyası, süreç yapılandırma dosyası olarak kullanılır (gözetmen tarafından izlenir).
d) gelen yapılandırma (iotea dizini altında)
cp iotea.conf /etc/supervisor/conf.d/
cp loriot.conf /etc/supervisor/conf.d/
e) açık iotea servisi
superviosrctl yeniden yükle #yapılandırma dosyasını yeniden yükle
superviosrctl loriot başlat #open loriot veri alımı superviosrctl iotea başlat #iotea şişesi uygulamasını aç
f) diğer ortak işlemler
süpervizörctl yeniden yükle # yapılandırma dosyasını yeniden yükle
süpervizörctl güncelleme süpervizörctl başlat xxx süpervizörctl durdur xxx süpervizörctl durumu xxx süpervizörctl yardım # daha fazla komut görüntüle
Nginx
a) kurmak
yum yükleme -y nginx
b) yapılandırma
cp NginxIotea.conf /etc/nginx/conf.d/
c) Nginx'i başlat
systemctl nginx.service'i başlat
MySQL
a) ilgili parametreler
kullanıcı = 'kök'
passwd='1234' db='iotea' bağlantı noktası=3306
b) dosya
iotea_iotea.sql
c) yapılandırma dosyası
db.ini
Önerilen:
Işık Kirliliği Çözümü - Artemis: 14 Adım
Işık Kirliliği Çözümü - Artemis: Işık kirliliği dünya çapında hepimizi etkileyen bir şey. Ampul icat edildiğinden beri ışık çok daha popüler hale geldi ve özellikle New York City ve Chicago gibi büyük şehirlerde kullanıldı. Tüm bu ışık etkileyebilir
SASSIE: Garip Sessizlik Çözümü ve Etkileşim Artırıcı Sistemi: 5 Adım
SASSIE: Garip Sessizlik Çözümü ve Etkileşim Arttırıcı Sistemi: SASSIE, hayatımızın bir noktasında garip bir sessizlik sırasında hepimizin kendimize sorduğu sorunun cevabıdır: "Sıradaki ben mi konuşayım?" Şimdi endişelenmenize gerek yok çünkü SASSIE, garip bir sessizliği tanımak için özel olarak tasarlandı,
Seeed IoTea LoRa Çözümü (Güncelleme 1811): 5 Adım
Seeed IoTea LoRa Çözümü (Güncelleme 1811): İnternet+ artık popüler bir kavram. Bu sefer internet artı tarımı denedik çay bahçesini büyüterek internetten çay yaptık
Seeed IoTea LoRa Çözümü (Azure ile, Güncelleme 1812): 5 Adım
Seeed IoTea LoRa Çözümü (Azure, Güncelleme 1812 ile): Microsoft Azure, daha güçlü ve istikrarlı bilgi işlem gücü sağlayan bir bulut hizmetidir. Bu sefer IoTea verilerimizi ona göndermeyi denedik
Arduino Projesi: GPS Takip Çözümü için LoRa Modülü RF1276 Test Aralığı: 9 Adım (Resimlerle)
Arduino Projesi: GPS İzleme Çözümü için Test Aralığı LoRa Modülü RF1276: Bağlantı: USB - SeriNeed: Chrome Tarayıcı İhtiyacı: 1 X Arduino Mega İhtiyaç: 1 X GPS İhtiyacı: 1 X SD kart İhtiyaç: 2 X LoRa Modem RF1276Fonksiyon: Arduino GPS değeri gönder ana üsse - Dataino Sunucusu Lora Modülünde ana taban veri deposu: Ultra uzun menzil