littlebot
Published on 2025-04-08 / 3 Visits
0

【源码】基于AVR平台的智能电表数据采集系统

项目简介

本项目是基于AVR平台的智能电表数据采集系统,运行于Pollin AVR - NET - IO开发板。系统可连接S0接口的智能电表,对电能消耗进行计数,还能提供当前功率消耗信息。用户可通过REST API读取数据,也能将数据定期推送到influx - database,并使用grafana进行可视化展示。

项目的主要特性和功能

主要特性

  • 支持通过REST API获取智能电表数据,便于与其他系统集成。
  • 可通过Web界面配置S0接口,操作简单。

主要功能

  • 对连接的智能电表的电能消耗进行计数。
  • 实时提供智能电表的当前功率消耗。
  • 支持最多8个S0接口(因RAM限制,默认配置2个)。

安装使用步骤

安装

  1. VSCode官网下载并安装VSCode。
  2. 按照此指南安装PlatformIO IDE。
  3. 关闭并重新启动VSCode。
  4. 建议查看快速入门指南

安装bootloader

注意:以下步骤使用AtmelStudio v7.0和AVR - ISP编程器完成。 1. 设置熔丝位:lfuse = 0xf7,hfuse = 0xd6,efuse = 0xfd。 2. 选择MightyCore在platformio安装目录中的bootloader:.platformio/packages/framework - arduino - avr - mightycore/bootloaders/optiboot_flash/bootloaders/atmega644p/16000000L/optiboot_flash_atmega644p_UART0_115200_16000000L_B0_BIGBOOT.hex。 3. 若bootloader激活,可使用示波器检查引脚B0(= Arduino引脚0)上的两个脉冲。

修改网络接口控制器的MAC地址

打开./src/main.cpp文件,找到变量DEVICE_MAC_ADDR并进行相应修改。

构建项目

  1. 在VSCode中加载工作区。
  2. 切换到PlatformIO工具栏。
  3. 选择“Project Tasks -> Build All”或使用快捷键ctrl - alt - b。

更新设备(通过串口接口)

  1. 通过串口接口将AVR - NET - IO开发板连接到PC。
  2. 通过“Project Tasks -> Upload All”构建并上传软件。
  3. 注意:若AVR - NET - IO开发板未修改,需在控制台显示Uploading.pio\build\MightyCore\firmware.hex时给开发板上电,上传将自动开始。

使用

  1. 将S0信号连接到开发板,参考文档中的连接表。
  2. 使用浏览器访问http://<device - ip - address>/configure/<s0 - interface>,将<s0 - interface>替换为S0接口ID,配置S0接口。
  3. 配置并启用S0接口。

通过REST API获取数据

  • 获取单个S0接口的数据:发送GET请求到/api/s0 - interface/<s0 - interface - id><s0 - interface - id>范围是[0; 1]。
  • 获取所有S0接口的数据:发送GET请求到/api/s0 - interfaces

下载地址

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