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

【源码】基于Arduino框架的艺术运输资产追踪系统

项目简介

本项目是基于Arduino框架为虚构的艺术运输公司Contoso Art Shipping打造的资产追踪系统。借助Arduino MKRGSM1400和MKRENV shield收集温度、湿度等环境数据,通过MKR1400的蜂窝调制解调器将数据发送到Azure IoT Central。搭配LCD触摸屏可提供直观的图形用户界面,用于监测设备与Azure IoT Central的连接状态、GSM信号质量以及传感器信息。

项目的主要特性和功能

  1. 数据通信:利用Arduino MKRGSM1400的蜂窝模块,实现设备与Azure IoT Central之间的数据通信。
  2. 环境数据收集:通过MKRENV shield准确收集温度、湿度等环境数据。
  3. 数据传输协议:采用MQTT协议将收集到的数据可靠地发送到Azure IoT Central。
  4. 可视化监测:支持LCD触摸屏界面,用户可直观查看设备状态、网络信号质量和传感器信息。

安装使用步骤

硬件准备

软件准备

  1. 安装Arduino IDE以及Arduino MKR1000系列开发板所需的驱动,确保简单的LED闪烁示例代码能在开发板上编译并运行。可参考此指南:https://www.arduino.cc/en/Guide/MKR1000 。
  2. 打开Arduino IDE,点击“Sketch”菜单,选择“Include Library” -> “Manage Libraries”,安装以下库的最新版本:
    • MKRGSM
    • Arduino_MKRENV
    • RTCZero
    • PubSubClient
    • ArduinoHttpClient 若计划使用LCD触摸屏,还需安装以下库:
    • Adafruit GFX Library
    • Adafruit ILI9341
    • XPT2046_Touchscreen
    • QRCode
  3. 增大PubSubClient库的有效负载大小限制。打开%HomePath%\Documents\Arduino\libraries\PubSubClient\src\PubSubClient.h文件,将#define MQTT_MAX_PACKET_SIZE 128改为#define MQTT_MAX_PACKET_SIZE 2048,保存文件。

配置Azure IoT Central

  1. 访问https://apps.azureiotcentral.com/ 创建一个应用程序(需使用Microsoft账户登录)。
  2. 选择试用版或按需付费版。
  3. 选择Sample DevKits模板(中间框)。
  4. 提供应用程序名称和URL域名。
  5. 若选择按需付费版,需选择Azure订阅并选择安装应用程序的区域;试用版则无需此信息。
  6. 点击“Create”创建应用程序。
  7. 点击左侧的Device Explorer,选择MXChip模板,点击“+V”图标,选择“Real”添加一个新的物理设备,为设备命名并点击“Create”。

代码配置

打开configure.h文件,设置以下常量: ```CPP // GSM信息 static char PROGMEM PINNUMBER[] = "<替换为SIM卡的PIN号,若不需要PIN则为空字符串>"; // APN数据 static char PROGMEM GPRS_APN[] = "<替换为你的APN>"; static char PROGMEM GPRS_LOGIN[] = "<替换为你的APN登录名,若不需要登录则为空字符串>"; static char PROGMEM GPRS_PASSWORD[] = "<替换为你的APN密码,若不需要密码则为空字符串>";

// Azure IoT Central设备信息 static char PROGMEM iotc_enrollmentKey[] = "<替换为你的IoT Central组密钥>"; static char PROGMEM iotc_scopeId[] = "<替换为你的IoT Central作用域ID>"; static char PROGMEM iotc_modelId[] = "<替换为你的资产追踪器的模型ID>"; ```

编译与运行

  1. contoso_asset_tracker\contoso_asset_tracker.ino文件加载到Arduino IDE中,点击工具栏上的Upload按钮,将代码编译并上传到设备。
  2. 若使用MKR1000时在串口监视器中看到---> mqtt failed, rc=-2信息,需将设备的Wi-Fi固件更新到最新版本(MKR1000为19.5.4),参考https://www.arduino.cc/en/Tutorial/FirmwareUpdater 进行更新,然后重新开始此步骤。
  3. 打开串口监视器(点击Tool菜单 -> Serial Monitor,将波特率改为115200),若设备正常工作,应能看到数据成功发送到Azure IoT Central的输出信息。
  4. 在Azure IoT Central应用程序中查看设备数据:
    • 点击创建的设备,在Telemetry列中选择温度和湿度遥测值,可通过点击眼睛图标开启或关闭遥测值显示。
    • 点击“Properties”链接,可看到“Die Number”属性值约每15秒更新一次。
    • 点击“Settings”链接,更改Fan Speed (RPM)的值,点击“Update”按钮,设备确认收到设置后,输入框下方的文本会先变红再变绿。
    • 点击“Commands”链接,在Echo - Value to display文本框中输入仅包含字母(a - z)和空格的消息,点击“Run”按钮,设备的LED将以摩尔斯电码闪烁显示该消息。

下载地址

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