Proyek ini menyediakan firmware modem untuk papan mikrokontroler dengan modul radio yang kompatibel dengan RF95 dan antarmuka serial seperti perangkat ADAFruit Feather M0 Lora atau modul Heltec OLED LORA 32. Pada berbagai fitur opsional papan berbasis ESP32 seperti tampilan status OLED, GPS, BLE atau dukungan WiFi dapat diaktifkan.
Konfigurasi default saat ini adalah untuk perangkat dengan 868.1 MHz. Ini dapat diubah dalam src/modem.h dengan baris berikut: #define RF95_FREQ 868.1
Dewan berikut didukung:
Cara yang disarankan untuk membangun dan menginstal firmware radio adalah dengan memiliki instalasi PlatformIO yang berfungsi (http://platformio.org/) di sistem Anda.
Penting Edit platformio.ini untuk menambahkan platform target Anda dan mengkonfigurasi pin radio di bendera build!
Instal di perangkat Anda menggunakan pio run -t upload -e heltec_wifi_lora_32_ble
Opsional Aktifkan Dukungan Tampilan: pio run -t upload -e heltec_wifi_lora_32_display_ble
Saat ini siapa pun dapat terhubung ke layanan BLE, itu semua plaintext. Salah satu karakteristik diterbitkan untuk mengirim perintah dan satu ada untuk membuat output tersedia melalui pemberitahuan.
Semua perintah yang dikirim melalui BLE harus diakhiri dengan n . Mode operasi default memisahkan semuanya menjadi 20 byte byte, yang - sesuai dengan spesifikasi BLE - adalah ukuran paket maksimum. Di iPhone 8 & 11 kami juga dapat mengirim dan menerima paket BLE yang jauh lebih besar (> 100bytes). Oleh karena itu, seseorang dapat mengaktifkan mode BLE-FRAMES yang funky besar melalui AT+BFB=1 . Perintah ini dikenali bahkan tanpa trailing n dan juga membuat n opsional. Ini sangat berguna karena beberapa perangkat lunak debugging seperti LightBlue Explorer tidak mengirim pengembalian kereta atau umpan garis di akhir operasi penulisan.
Jika salah satu profil WiFi diinstal pada ESP MCU yang kompatibel, perangkat dapat bertindak sebagai titik akses. Kredensial dikonfigurasi dalam platformio.ini dan secara default diatur ke: WIFI_SSID="rf95modem" dan WIFI_PSK="rf95modemwifi" Titik akses ini menerima hingga 4 klien sesuai dengan espressif sdk dan oleh default memiliki IP 192.168.4.1 .
Ada dua cara untuk berkomunikasi dengan modem:
RF95MODEM menanggapi paket siaran UDP ke port 1666 . Untuk menerima output, pendengar UDP sederhana disediakan ( extras/udp_receiver.py ). Untuk mengirim perintah ke modem netcat sudah cukup, misalnya echo "at+tx=414141" | ncat -u 192.168.4.255 1666
Cukup terhubung ke 192.168.4.1 pada port 1666 menggunakan TCP dan gunakan seperti koneksi serial, misalnya ncat 192.168.4.1 1666 .
Hanya satu koneksi pada satu waktu yang didukung!
Beberapa perangkat seperti ttgos T-beam juga menyertakan chip GPS. Ini juga dapat ditanyakan melalui firmware modem melalui perintah AT+GPS . Mendapatkan kunci awal untuk posisi Anda dapat memakan waktu beberapa menit tergantung pada atenna, posisi dan chip GPS Anda pada perangkat. Karena ini juga meningkatkan konsumsi energi secara signifikan (~ 50mA) seseorang dapat menonaktifkannya sementara melalui AT+GPS=0 .
Kecepatan serial default diatur ke 115200 ( src/main.cpp Line 17 ).
Daftar Perintah:
AT+HELP Print this usage information.
AT+TX=<hexdata> Send binary data.
AT+RX=<0|1> Turn receiving on (1) or off (2).
AT+BFB=<0|1> Turn send Big Fine BLE-Frames on (1) or off (0).
AT+GPS Print GPS information.
AT+GPS=<0|1> Turn GPS power on (1) or off (0).
AT+FREQ=<freq> Changes the frequency.
AT+INFO Output status information.
AT+MODE=<NUM> Set modem config:
0 - medium range (default)
Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on.
1 - fast+short range
Bw = 500 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on.
2 - slow+long range
Bw = 31.25 kHz, Cr = 4/8, Sf = 512chips/symbol, CRC on.
3 - slow+long range
Bw = 125 kHz, Cr = 4/8, Sf = 4096chips/symbol, CRC on.
4 - slow+long range
Bw = 125 kHz, Cr = 4/5, Sf = 2048chips/symbol, CRC on.
Untuk mendapatkan konfigurasi saat ini yang dapat digunakan seseorang AT+INFO
> AT+INFO
+STATUS:
firmware: 0.7.3
features: MCU BLE WIFI GPS
modem config: 0 | medium range
max pkt size: 251
frequency: 868.10
rx listener: 1
BFB: 0
GPS: 1
rx bad: 0
rx good: 0
tx good: 0
+OK
Dari output ini Anda dapat melihat fitur mana yang dikompilasi ke dalam firmware dan apa versinya. Juga konfigurasi modem saat ini dan frekuensi yang dipilih ditampilkan.
Untuk mengubah frekuensi dapat menggunakan perintah AT+FREQ .
> AT+FREQ=868.20
+FREQ: 868.20
Waspadalah: Nomor float apa pun dapat ditambahkan di sini, nilainya langsung diteruskan ke transceiver Lora!
Mengubah mode modem yang telah dikonfigurasi sebelumnya sama mudahnya:
> AT+MODE=2
+OK
AT+TX=414141 mengirimkan paket dengan AAA sebagai konten. Ukuran paket maksimum dapat bervariasi tergantung pada chip radio.
AT+RX=1 Activate Receed Listener, default aktif.
Data yang masuk secara otomatis ditulis ke port serial: +RX 3,414141,-15,8 -bingkai dengan "AAA" karena muatan diterima dengan RSSI -15 dan SNR 8.
Jika GPS diaktifkan ( AT+GPS=1 ) dan firmware berjalan pada perangkat berkemampuan GPS seperti TTGO T-beam, seseorang dapat dengan mudah meminta lokasi dan waktu saat ini. Tanpa pengunci GPS propoer semua nilai yang dikembalikan diatur ke nol.
> at+gps=1
+OK
> at+gps
Latitude : 0.00000
Longitude : 0.00000
Altitude : 0.00M
Satellites: 0
Time : 00:00:00
Date : 00.00.2000
Timestamp : 943920000
+OK
Ada beberapa perpustakaan pemrograman pihak ketiga di luar sana untuk memudahkan integrasi RF95Modem.
Jika Anda menggunakan kode ini dalam publikasi akademik, silakan kutip makalah berikut:
@INPROCEEDINGS{baumgaertner2018monitoring,
author={L. {Baumgärtner} and A. {Penning} and P. {Lampe} and B. {Richerzhagen} and R. {Steinmetz} and B. {Freisleben}},
booktitle={2018 IEEE Global Humanitarian Technology Conference (GHTC)},
title={Environmental Monitoring Using Low-Cost Hardware and Infrastructureless Wireless Communication},
year={2018},
pages={1-8},
doi={10.1109/GHTC.2018.8601883},
month={Oct},
}