项目简介
本项目是基于AVR平台的智能电表数据采集系统,运行于Pollin AVR - NET - IO开发板。系统可连接S0接口的智能电表,对电能消耗进行计数,还能提供当前功率消耗信息。用户可通过REST API读取数据,也能将数据定期推送到influx - database,并使用grafana进行可视化展示。
项目的主要特性和功能
主要特性
- 支持通过REST API获取智能电表数据,便于与其他系统集成。
- 可通过Web界面配置S0接口,操作简单。
主要功能
- 对连接的智能电表的电能消耗进行计数。
- 实时提供智能电表的当前功率消耗。
- 支持最多8个S0接口(因RAM限制,默认配置2个)。
安装使用步骤
安装
安装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
并进行相应修改。
构建项目
- 在VSCode中加载工作区。
- 切换到PlatformIO工具栏。
- 选择“Project Tasks -> Build All”或使用快捷键ctrl - alt - b。
更新设备(通过串口接口)
- 通过串口接口将AVR - NET - IO开发板连接到PC。
- 通过“Project Tasks -> Upload All”构建并上传软件。
- 注意:若AVR - NET - IO开发板未修改,需在控制台显示
Uploading.pio\build\MightyCore\firmware.hex
时给开发板上电,上传将自动开始。
使用
- 将S0信号连接到开发板,参考文档中的连接表。
- 使用浏览器访问
http://<device - ip - address>/configure/<s0 - interface>
,将<s0 - interface>
替换为S0接口ID,配置S0接口。 - 配置并启用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】