İçindekiler:

MicroPython ESP32 Tabanlı Lora Ağ Geçidi: 10 Adım (Resimlerle)
MicroPython ESP32 Tabanlı Lora Ağ Geçidi: 10 Adım (Resimlerle)

Video: MicroPython ESP32 Tabanlı Lora Ağ Geçidi: 10 Adım (Resimlerle)

Video: MicroPython ESP32 Tabanlı Lora Ağ Geçidi: 10 Adım (Resimlerle)
Video: WiFi Project: Lora Soil Moisture Sensor- MicroPython + ESP32 + Lora 2024, Temmuz
Anonim
MicroPython ESP32 Tabanlı Lora Ağ Geçidi
MicroPython ESP32 Tabanlı Lora Ağ Geçidi
MicroPython ESP32 Tabanlı Lora Ağ Geçidi
MicroPython ESP32 Tabanlı Lora Ağ Geçidi

Lora son yıllarda çok popüler oldu. Bu teknolojiyi kullanan kablosuz iletişim modülü genellikle ucuzdur (serbest spektrum kullanarak), küçük boyutludur, enerji açısından verimlidir ve uzun bir iletişim mesafesine sahiptir ve esas olarak IoT terminalleri arasında karşılıklı iletişim veya bir ana bilgisayarla veri alışverişi için kullanılır. Piyasada çok küçük olan SX1278 (uyumlu) çip ile donatılmış RFM96W gibi birçok LoRa modülü bulunmaktadır. MakePython ESP32 ile ağ geçidi olarak kullanıyorum.

Ardından, sıcaklık ve nem verilerini ağ geçidine göndermek için iki LoRa düğümü kullanacağım ve ardından ağ geçidi aracılığıyla İnternet'e yükleyeceğim. Burada, ağ geçidi aracılığıyla birden fazla LoRa düğümünün uzak verilerini buluta nasıl yükleyeceğinizi öğreneceksiniz.

Adım 1: Sarf Malzemeleri

Gereçler
Gereçler

1 * MakePython ESP32

MakePython ESP32, entegre SSD1306 OLED ekrana sahip bir ESP32 kartıdır.

2 * Maduino LoRa Radyo

Maduino Lora Radio, Atmel'in Atmega328P MCU ve Lora modülünü temel alan bir IoT (Nesnelerin İnterneti) Çözümüdür. IoT projeleri için gerçek bir proje olabilir (özellikle uzun menzilli, düşük güç uygulamaları)

2*DHT11

1 * MakePython Lora

2. Adım: LoRa Düğümü

LoRa Düğümü
LoRa Düğümü
LoRa Düğümü
LoRa Düğümü

Bu, Maduino Lora Radyosunun şemasıdır.

Arduino Lora Radyo modülünü LoRa düğümü olarak ağ geçidine sıcaklık ve nem verilerini göndermek için kullanıyoruz.

(Bu WiKi, Maduino Lora Radyosunun nasıl kullanılacağını ve veri gönderip alınacağını açıklar)

Adım 3: Düğüm ve Sensör Bağlantısı

Düğüm ve Sensör Bağlantısı
Düğüm ve Sensör Bağlantısı
Düğüm ve Sensör Bağlantısı
Düğüm ve Sensör Bağlantısı

DHT11'in VCC ve GND'si Maduino'nun 3V3 ve GND'sine ve DATA pini Maduino'nun D4'üne bağlanır.

Düğüm 0 parkta, düğüm 1 şirketin yakınındaki ofis binasında, aralarında yaklaşık 2 kilometre var ve sonra evdeki sıcaklık ve nem verilerini alıyorum

Adım 4: Ağ Geçidine Veri Gönderin

TransmitterDHT11.ino'yu indirin, Arduino IDE'de açın.

Bir düğüm eklerken, düğüm numarasını uygun şekilde değiştirin. Örneğin, şimdi 2 düğüm kullanın, ilk düğüm düğümü değiştirmek için = 0 programı çalıştırmak için, ikinci düğüm düğümü değiştirmek için = 1 programı çalıştırmak için vb., daha fazla düğüm ekleyebilirsiniz.

int16_t paket sayısı = 0; // paket sayacı, xmission başına artırıyoruz

int16_t düğüm = 0; //Düğüm numarasını değiştir

Veri toplayın ve yazdırın

String mesajı ="#"+(String)nodenum+" Nem:"+(String)nem+"% Sıcaklık:"+(String)temperature+"C"+" num:"+(String)packetnum;Serial.println(mesaj); paket sayısı++;

rf95_server'a bir mesaj gönder

uint8_t radioPacket[message.length()+1];

message.toCharArray(radioPacket, message.length()+1); radioPacket[message.length()+1]= '\0'; rf95.send((uint8_t *)radioPacket, mesaj.length()+1);

Seri monitörü açın, toplanan sıcaklık ve nem verilerini görebilir ve gönderebilirsiniz.

#0 Nem:%6.00 Sıcaklık:27.00C num:0

İlet: rf95_server'a gönderiliyor Gönderiliyor… Paketin tamamlanması bekleniyor… Cevap bekleniyor… Cevap yok, etrafta bir dinleyici var mı?

Bir kenara koyun, şimdi Lora Geçidi'ni yapmamız gerekiyor.

Adım 5: MakePython Lora

MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora

Bu, RFM96W modülünün ve MakePython ESP32'nin karşılık gelen pinidir. MakePython ESP32 ile bağlantıyı kolaylaştırmak için RFM96W modülü ile devre kartı yaptım. Evet, üzerinde aynı anda veri gönderip alabilen iki RFM96W var ama şimdi sadece birine ihtiyacım var.

Adım 6: LoRaWAN Ağ Geçidi

LoRaWAN Ağ Geçidi
LoRaWAN Ağ Geçidi

LoRaWAN, LoRa tabanlı, düşük güç tüketimi, ölçeklenebilirlik, yüksek hizmet kalitesi ve güvenli uzun mesafeli kablosuz ağ sağlayan, düşük güçlü bir geniş alan ağıdır.

Uzak verileri alabilen ve internete yükleyebilen bir ağ geçidi yapmak için MakePython Lora ve ESP32'yi birleştirin.

7. Adım: Kodu İndirin

Tüm 'xxx.py' dosyalarını WiKi'den indirin ve ESP32'ye yükleyin.

LoRaDuplexCallback.py dosyasını açın, ESP32'nizin ağa bağlanabilmesi ve sunucuya veri yükleyebilmesi için bazı ayarlamalar yapmanız gerekiyor.

ThingSpeak'te elde ettiğiniz API_KEY'i değiştirin (nasıl elde edileceğini daha sonra anlatacağım)

#https://thingspeak.com/channels/1047479

API_KEY='UBHIRHVV9THUJVUI'

WiFi'ye bağlanmak için SSID ve PSW'yi değiştirin

ssid = "Makerfab'lar"

pswd = "20160704"

8. Adım: Veri Alın

Verileri aldıktan sonra ESP32'ye ne yapacağını söyleyebileceğiniz LoRaDuplexCallback.py dosyasında on_receive (lora, payload) işlevini bulun. Aşağıdaki kod, alınan sıcaklık ve nem verilerini ayrıştırır ve görüntüler.

def on_receive(lora, yük):

lora.blink_led() rssi = lora.packetRssi() deneyin: uzunluk=len(yük)-1 myStr=str((yük[4:uzunluk]), 'utf-8') uzunluk1=myStr.find(':') myNum1=myStr[(uzunluk1+1):(uzunluk1+6)] myNum2=myStr[(uzunluk1+20):(uzunluk1+25)] print("*** Alınan mesaj ***\n{}". format(payload)) ise config_lora. IS_LORA_OLED: lora.show_packet(("{}".format(payload[4:uzunluk])), rssi) wlan.isconnected() ise: global msgCount print('Ağa gönderiliyor…') düğüm = int(str(payload[5:6], 'utf-8')) ise düğüm == 0: URL="https://api.thingspeak.com/update?api_key="+API_KEY+"&field1= "+myNum1+"&field2="+myNum2 res=urequests.get(URL) print(res.text) elif düğümü == 1: URL="https://api.thingspeak.com/update?api_key="+API_KEY+" &field3="+myNum1+"&field4="+myNum2 res=urequests.get(URL) print(res.text) e olarak İstisna hariç: print(e) print("RSSI ile {}\n".format(rssi))

Düğümleri ayırt etmek için sayıyı değerlendirerek ve verileri URL üzerinden İnternet'e yükleyerek, farklı düğümlerin uzak verilerini istediğimiz zaman izleyebiliriz. Daha fazla düğüm ekleyebilir ve kodda benzer değişiklikler yapabilirsiniz.

düğüm == 0 ise:

URL="https://api.thingspeak.com/update?api_key="+API_KEY+"&field1="+myNum1+"&field2="+myNum2 res=urequests.get(URL) print(res.text)

9. Adım: ThingSpeak IoT'yi kullanın

ThingSpeak IoT'yi kullanın
ThingSpeak IoT'yi kullanın
ThingSpeak IoT'yi kullanın
ThingSpeak IoT'yi kullanın
ThingSpeak IoT'yi kullanın
ThingSpeak IoT'yi kullanın

Adımlar:

  1. https://thingspeak.com/ adresinde bir hesap açın. Zaten bir tane varsa, doğrudan oturum açın.
  2. Yeni bir ThingSpeak kanalı oluşturmak için Yeni Kanal'a tıklayın.
  3. Giriş adı, Açıklama, Alan 1'i seçin. Ardından kanalı en alta kaydedin.
  4. API Anahtarları seçeneğine tıklayın, API Anahtarını kopyalayın, programda kullanacağız.

Adım 10: Sonuç

Sonuç
Sonuç
Sonuç
Sonuç
Sonuç
Sonuç

Aralarında 2 kilometre mesafe olmasına rağmen 0 ve 1 nolu düğümün verilerini ekranda görebilirsiniz.

ThingSpeak hesabınıza giriş yapın ve oluşturduğunuz kanala tıklayın, yüklenen sıcaklık ve nem verilerini görebilirsiniz.

alan1 grafiği ve alan2 grafikleri, Lora düğümü 0'ın nem ve sıcaklık verileridir ve alan3 grafiği ve alan4 grafiği, Lora düğümü 1'in nem ve sıcaklık verileridir.

Önerilen: