CO NTROL SY STEM F OR IR RIGASIPenafian: Ini adalah proyek pribadi dan tidak berafiliasi dengan majikan saya
Cosyfir akan membantu Anda menyirami tanaman Anda.
Perangkat lunak node berjalan pada mikrokontroler korteks ARM STM32. Perangkat lunak server berjalan pada sistem berbasis UNIX seperti Debian. Gambar berikut menggambarkan contoh pengaturan:
[] / +--+ / o/
[] <-> | <-> | | <-> ( )( ) <-> |
/ LoRa | +--+ MQTT ( ) SSH /
Sensor LoRaWAN TTN RPi User
Node Gateway Server @home
./node/* (Not part of cosyfir) ./server/*
ReadMe ini menjelaskan kedua server (misalnya Raspberry Pi) dan perangkat lunak sensor node di bagian berikut.
Aplikasi Cosyfird adalah daemon, yang menerima pesan dari node sensor melalui server TTN dan menampilkan pesan terakhir.
Instal Paket Perangkat Lunak berikut misalnya untuk Debian Do:
sudo apt install libncurses6 libmosquittopp1 libssl1.1 libyaml-cpp0.6 gcc cmake libjsoncpp1 libb64-0d
Diperlukan kompiler C ++ 17. GCC 8.3.0 direkomendasikan.
Bagian ini menjelaskan perangkat lunak node sensor yang berkomunikasi berdasarkan LORA dan TTN.
LSN50-V2 kemungkinan besar juga harus berfungsi.
Instal paket berikut:
sudo apt install stm32flash arm-none-eabi-gcc
Sebelum membangun binari, daftarkan aplikasi cosyfir Anda di situs web TTN.
Berikut ini adalah templat file konfigurasi YAML untuk Cosyfird:
MqttConfig :
HostAddress : region.thethings.network
Port : 8883
ClientId : application-id
Password : secret TTN menggunakan port 8883 dengan SSL dan region.thethings.network alamat host. Thethings.network di mana region dapat misalnya eu .
Pertama -tama, buat pengidentifikasi klien di situs TTN dengan mengklik "Tambahkan Aplikasi" di konsol jaringan pribadi Anda. Kunci akses aplikasi dapat ditemukan di bagian bawah setelah Anda membuat aplikasi. Ini bertindak sebagai kata sandi untuk koneksi MQTT.
Berikut gambaran tentang terminologi Lora:
| Lora | Penjelasan | Dari mana? | Dimana harus meletakkannya? |
|---|---|---|---|
| Deveui | Identifikasi perangkat akhir 64-bit (unik) | Di kotak perangkat | TTN Console ("Daftar Perangkat") |
| Appeui atau JoineUi | Pengidentifikasi aplikasi 64-bit | Diterbitkan oleh TTN ("Tambahkan Aplikasi") | Commissioning.h |
| Nwkkey atau appkey | Kunci Enkripsi Data (TTN <-> Server) | Dihasilkan oleh TTN ("Tambahkan Aplikasi") | Commissioning.h |
| Devaddr | Alamat 32-bit (non-unik) | Ditugaskan saat node bergabung dengan TTN | - |
Metode aktivasi akan selalu over-the-air-activation (OTAA). File ini dikonfigurasikan untuk dijalankan di Eropa.
Isi preprocessor mendefinisikan ke dalam node/Commissioning_template.h seperti yang dijelaskan dalam tabel. Kemudian ganti nama file:
mv node/common/Commissioning_template.h node/common/Commissioning.h
Jalankan skrip build di root untuk membangun biner server dan simpul.
./build_all.sh
Parameter yang tersedia untuk skrip adalah:
clean : Lakukan Bangunan Bersihdebug : Bangun dengan simbol debugFlashing LSN50 dapat dilakukan dengan kabel FTDI UART sederhana menggunakan mode boot ISP.
Hubungkan UART seperti yang dijelaskan di bawah ini:
GND (black): JP4 Pin11 GND
TXD (orange): JP3 Pin9 PA3 (USART1)
RXD (yellow): JP3 Pin10 PA2 (USART1)
Cari tahu di mana perangkat serial USB Anda dipasang:
journalctl -k -n 100
Atur sakelar dari mode flash ke mode ISP dan kemudian lakukan:
sudo stm32flash -w node/build/sensor-node.hex /dev/ttyUSBx
Hubungkan sensor:
# DS18B20
GND (blue): JP3 Pin2 GND
DQ (yellow): JP3 Pin4 PA9 (Half-duplex single-wire using only TX)
VDD (red): JP3 Pin1 VDD
# Watermark 200SS (tbd)
JP3 Pin12 PA0
JP3 Pin5 PA4
# 10k resistor between PA4 and PA1
Informasi lebih lanjut tentang sensor tanda air.
Periksa cakupan TTN lokal Anda dan pastikan gerbang ada di dekatnya. Mulai ./cosyfird --config-file /path/to/cosyfird.yaml dan power pada LSN50 dengan sakelar boot diatur ke flash. Setelah beberapa saat, Anda harus melihat pesan tiba. Dalam mode debug, pesan dikirim setiap 30 detik. Dalam mode rilis setiap setengah jam.
Contoh muatan pesan di hex:
| 42 | BE | EF | CA | FE |
^
Battery level
^
Temperature (resolution 0.0625 °C)
^
Soil water tension
(tbd)
Untuk pengembangan, paket berikut mungkin diperlukan:
sudo apt install clang-format libmosquittopp-dev libssl-dev libyaml-cpp-dev libjsoncpp-dev libb64-dev libncurses-dev
Dapatkan debugger ST-Link V2 dan instal paket-paket ini:
sudo apt install stmlink-tools gdb-multiarch
Tiga aplikasi tersedia setelah instalasi:
Terhubung seperti yang dijelaskan di bawah ini:
GND: JP4 Pin11 GND
SWCLK: JP4 Pin4 PA14
SWDIO: JP4 Pin9 PA13
RST: JP4 Pin1 NRST
Atur sakelar boot ke ISP dan coba:
st-info --probe
Jika semuanya berjalan dengan benar, Anda akan melihat serial dan info lainnya tentang mikrokontroler. Jika Anda tidak melihat info, cobalah bertukar SWDIO dan SWCLK. Beberapa debugger V2 ST-Link dilabeli secara keliru.
Anda dapat mem -flash dan men -debug kode Anda dengan:
st-util -p 1234
(gdb-multiarch) set arch arm
(gdb-multiarch) target extended-remote localhost:1234
(gdb-multiarch) load sensor-node
Untuk dapat melompat kembali ke kode pengguna, atur sakelar boot kembali ke flash. Kemudian Anda dapat mengatur breakpoint dan menjalankan kode seperti biasa:
(gdb-multiarch) break foo.c:42
(gdb-multiarch) run
Hanya memuat simbol tanpa berkedip dimungkinkan:
(gdb-multiarch) file sensor-node
Untuk melakukan restart yang hangat, lompat ke awal flash:
(gdb-multiarch) jump *0x08000000
Untuk dapat melihat cetak Confly FTDI pada pin yang sama seperti untuk berkedip melalui mode bootloader/ISP dan jalankan:
screen /dev/ttyUSB3 38400