littlebot
Published on 2025-03-28 / 2 Visits
0

【源码】基于Arduino和LoRa的智能电表数据传输系统

项目简介

本项目构建了一个把智能电表数据借助LoRa和The Things Network(TTN)传输到私有服务器的系统。该系统以电池供电,具备低功耗优势,硬件成本不高,软件实现相对简单但可验证概念,能从地下室金属容器穿透多层混凝土墙传输智能电表读数。

项目的主要特性和功能

  1. 数据采集:通过红外接口从智能电表收集数据。
  2. 数据传输:利用LoRaWan/TTN网络,每分钟将数据传输到私有服务器或其他集成平台(如Cayenne)。
  3. 低功耗运行:采用电池供电,待机功耗处于50 - 100µA。
  4. 数据解析:运用smartmeter.cpp库解析SML格式的红外数据。
  5. 数据编码:把智能电表数据编码为特定格式(8字节总能量、4字节实际功率消耗、2字节电池电压)后发送到TTN。
  6. 数据存储:在TTN使用HTTP集成将数据发送到安装了Volkszaehler的服务器,再通过脚本存储到Volkszaehler中间件。

安装使用步骤

硬件安装

  1. 准备硬件组件,包含Arduino Pro Mini、RFM95 LoRa传输板、逆变器、Optoschmitt探测器、电压分压器等。
  2. 依照硬件布局图(img/layout.png)进行连接。
  3. 为降低功耗,在待机时关闭逆变器和Schmitt - Trigger,并拆除LED。

软件配置

  1. 确保已安装Arduino开发环境。
  2. 在Arduino中安装LMIC库,用于LoRa数据传输。
  3. 根据自身电表型号,调整smartmeter.cpp库中的相关参数。可先读取一些SML数据包,再依据实际情况调整。
  4. 在TTN控制台创建应用,并配置设备信息。
  5. 在TTN中配置HTTP集成,将数据发送到自己的Web服务器。
  6. 在Web服务器上安装Volkszaehler,并配置发送数据的脚本,保证脚本具备一定安全特性。

运行项目

  1. 将配置好的Arduino代码上传到Arduino Pro Mini。
  2. 设备启动后,开始每分钟从智能电表收集数据,并通过LoRa/TTN发送到Web服务器。
  3. 在Volkszaehler的Web界面查看智能电表数据。

下载地址

点击下载 【提取码: 4003】