littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于 Arduino 的 LoRaWAN 土壤传感器系统

项目简介

本项目把科罗拉多州立大学(CSU)土壤传感器与 Arduino MKR WAN 1310 开发板连接,赋予传感器通过 LoRaWAN 通信的能力。系统可实时监测土壤温度和湿度,并将数据传输至 LoRaWAN 网络服务器。

项目的主要特性和功能

  1. 数据测量:能测量土壤温度和湿度,以电压形式呈现数据。
  2. 通信方式:利用 LoRaWAN 进行数据通信,实现远程数据传输。
  3. 指令接收:可接收 LoRaWAN 下行链路命令,对设备进行控制。
  4. 低功耗运行:正常运行功耗约 20 mA,空闲时约 10 mA。

安装使用步骤

安装软件

  1. 安装 Arduino IDE,用于连接 MKR WAN 1310 开发板。
  2. 按照 SAMD21 core for MKR boards Documentation 安装开发板的软件支持。
  3. 在库管理器中搜索 “mkrwan”,安装 MKRWAN by Arduino 库。

连接硬件

  1. 连接传感器到开发板:将土壤传感器的四根跳线(红色为电源,黑色为接地,白色为土壤湿度,蓝色为土壤温度)连接到 MKR WAN 1310 开发板。
  2. 连接开发板到计算机:使用 Micro USB 线将开发板连接到计算机,在 Arduino IDE 的“工具”中选择 Arduino SAMD Boards (32-bits ARM Cortex - M0+) 类型的开发板,然后选择 Arduino MKR WAN 1310 具体型号,并选择正确的串口。

运行软件

  1. Arduino IDE 中运行 setup.ino,从串口监视器获取 MKR WAN 1310 的 DevEUI。
  2. 在 LoRaWAN 网络服务器的门户或 API 中添加设备,选择 OTAA 选项为“是”,生成应用密钥,并将其提供给 arduino_secrets.h 文件。
  3. 再次运行 setup.ino,若设备成功连接,串口监视器将显示设备发送的值,网络服务器将收到 join request 和设备数据。
  4. 为使网络服务器能够解密上行数据包,通过其门户或 API 提供 codec.js 编解码器。

测试传感器

若使用 Chirpstack 作为网络服务器,可按以下步骤测试: 1. 在 Arduino IDE 中运行 main.ino 获取 DevEUI。 2. 使用 Chirpstack 的 UI,按照 Chirpstack 文档 通过 OTAA 方式添加设备。 3. 生成应用密钥并提供给 arduino_secrets.h 文件。 4. 运行 setup.ino,等待设备连接到 LoRaWAN 网络,Chirpstack 将收到设备数据。 5. 通过设备配置文件的编解码器选项卡提供 codec.js,以查看解码后的数据包。

部署传感器

main.ino 上传到传感器,去除用于设置传感器的不必要代码。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】