做了个三相电量采集器开源出来,可以方便监测家里用电情况

news2024/11/19 16:29:12

做了个三相电能采集器,可以测3相的电流、电压、功率、功率因数、用电量,数据上传到HomeAssistant,方便观察家里用电量和实时用电功率。

使用3个pzem004t电参数传感器测量,通过串口与ESP32-C3通信,然后通过WiFi上传至HomeAssistant(需自行搭建,我用树莓派4搭建的),ESP32-C3是用ESPHome开发的固件。

该模块只能测每相与零线之间的电压,不能测线电压(相与相之间的电压)。

电压测量范围是80-260V,电流量程100A,测量精度0.5%。

需要自己通过上位机软件将3个Pzem004T的地址分别设置为0x01、0x02、0x03。

涉及强电,安装需小心,必须断电操作!

HomeAssistant+ESPHome搭建使用教程自行百度。

电子/单片机技术交流群:820537762

硬件图片

效果图

原理图

PCB

3D外壳

资料下载

立创开源链接:https://oshwhub.com/zeruns/san-xiang-dian-liang-dian-can-shu-shu-ju-cai-ji-san-xiang-dian-ya-dian-liu-gong-lv-gong-lv-yin-shu-yong-dian-liang

123云盘(不限速):https://url.zeruns.tech/PbpP8 提取码:jjRr

百度网盘:https://pan.baidu.com/s/1XCi1AY6M1G0weNuuVJu01w?pwd=qhrc 提取码: qhrc

包含的文件有:外壳3D模型、三相电量采集器_Gerber制板文件、立创EDA工程文件、PZEM-004T模块手册、PZEM-004T模块上位机软件、ESPHome的配置文件。

用到的元件购买地址

  • 合宙CORE-ESP32C3开发板:https://s.click.taobao.com/GsKSHxt
  • PZEM-004T模块:https://s.click.taobao.com/cnHOHxt
  • HLK-10M05电源模块:https://s.click.taobao.com/quMNHxt
  • 0805电阻电容本:https://u.jd.com/fqAElBD
  • AHT10:https://s.click.taobao.com/WuhMHxt

推荐在立创商城购买:https://activity.szlcsc.com/invite/D03E5B9CEAAE70A4.html

ESPHome配置文件

#include "esphome.h"
#include "esphome/time/real_time_clock.h"
#include "esphome/sntp/sntp_component.h"
#include "esphome/core/time.h"

# 定义项目的名称和友好名称
esphome:
  name: powerbox
  friendly_name: PowerBox
  # 指定使用的开发板和开发框架
  platformio_options:
    board_build.flash_mode: dio
    board_build.mcu: esp32c3

esp32:
  board: esp32-c3-devkitm-1
  framework:
    #type: esp-idf
    type: arduino

# 启用日志记录
logger:
  #hardware_uart: USB_SERIAL_JTAG
  #level: DEBUG # defaults to DEBUG, NONE ERROR WARN INFO DEBUG VERBOSE VERY_VERBOSE

# 启用Home Assistant API,并设置加密密钥
api:
  encryption:
    key: "wZG666DZ5zsg6666Po6204w666kA+8u666soeGlKtBU=" # 请替换为您的密钥
    
# 启用OTA更新,并设置密码
ota:
  password: "c368c9c66658f3433f6226667d4d2232"  # 请替换为您的密钥

network:
    enable_ipv6: true

wifi:
  ssid: "blog.zeruns.tech"  # WiFi网络名称
  password: "123456789"     # WiFi密码
  reboot_timeout: 60s		# 如果连接失败,设置重启超时时间为60秒

  # 启用AP热点模式作为WiFi连接的备用方案
  ap:
    ssid: "Powerbox Fallback Hotspot"
    password: "ZMpKTpHJ67EF"
    
# 手动设置IP地址,以便在没有DHCP服务器的情况下使用
  manual_ip:                #设置固定IP
    static_ip: 192.168.0.201
    gateway: 192.168.0.1
    subnet: 255.255.255.0
    dns1: 192.168.0.1

captive_portal:
    
# 启用Web服务器,允许通过HTTP进行设备控制
web_server:
  port: 80
  
# 启用I2C通信接口
i2c:
  - id: bus_a
    sda: 4
    scl: 5
    scan: true

# 启用UART通信接口
uart:
  rx_pin: 1
  tx_pin: 0
  baud_rate: 9600

# 启用Modbus协议支持
modbus:

# 配置传感器,包括温度、湿度、电流传感器等
sensor:
  # AHT10传感器配置
  - platform: aht10
    variant: AHT20
    i2c_id: bus_a
    temperature:
      name: "PowerBox-Temperature"  # 温度传感器名称
      id: AHT20_T
    humidity:
      name: "PowerBox-Humidity"  # 湿度传感器名称
      id: AHT20_H
    update_interval: 30s  # 更新间隔为30秒

  - platform: pzemac
    id: pzemac_A
    address: 0x01
    current:
      name: "A-Current"  # 电流传感器名称
    voltage:
      name: "A-Voltage"  # 电压传感器名称
    energy:
      name: "A-Energy"  # 能源传感器名称
    power:
      name: "A-Power"  # 功率传感器名称
      id: A_POWER
    frequency:
      name: "A-Frequency"  # 频率传感器名称
    power_factor:
      name: "A-PowerFactor"  # 功率因数传感器名称
    update_interval: 9s  # 更新间隔为9秒

  - platform: pzemac
    id: pzemac_B
    address: 0x02
    current:
      name: "B-Current"  # 电流传感器名称
    voltage:
      name: "B-Voltage"  # 电压传感器名称
    energy:
      name: "B-Energy"  # 能源传感器名称
    power:
      name: "B-Power"  # 功率传感器名称
      id: B_POWER
    frequency:
      name: "B-Frequency"  # 频率传感器名称
    power_factor:
      name: "B-PowerFactor"  # 功率因数传感器名称
    update_interval: 10s  # 更新间隔为10秒

  - platform: pzemac
    id: pzemac_C
    address: 0x03
    current:
      name: "C-Current"  # 电流传感器名称
    voltage:
      name: "C-Voltage"  # 电压传感器名称
    energy:
      name: "C-Energy"  # 能源传感器名称
    power:
      name: "C-Power"  # 功率传感器名称
      id: C_POWER
    frequency:
      name: "C-Frequency"  # 频率传感器名称
    power_factor:
      name: "C-PowerFactor"  # 功率因数传感器名称
    update_interval: 11s  # 更新间隔为11秒

  - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

  - platform: copy # Reports the WiFi signal strength in %
    source_id: wifi_signal_db
    name: "WiFi Signal Percent"
    filters:
      - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
    unit_of_measurement: "Signal %"
    entity_category: "diagnostic"
    device_class: ""

status_led:
  pin: GPIO8    

time:
  - platform: sntp
    id: current_time
    timezone: Asia/Shanghai
    servers:
     - ntp.aliyun.com
     - ntp.tencent.com
     - stdtime.gov.hk
    on_time:
      - seconds: 0
        minutes: 0
        hours: 0
        days_of_month: 1
        then:
          - pzemac.reset_energy: pzemac_A  # 在每个月的第一天的0点0分0秒时重置A传感器的能量计数
          - pzemac.reset_energy: pzemac_B  # 在每个月的第一天的0点0分0秒时重置B传感器的能量计数
          - pzemac.reset_energy: pzemac_C  # 在每个月的第一天的0点0分0秒时重置C传感器的能量计数
    on_time_sync:
      then:
        - logger.log: "Synchronized system clock"

其他开源项目推荐

  • STM32F030C8T6最小系统板和流水灯(原理图和PCB):https://blog.zeruns.tech/archives/715.html
  • 画了个 MSP430F149的最小系统板 开源出来了:https://blog.zeruns.tech/archives/713.html
  • 2007年电赛电源题:30到36V可调升压DCDC模块(UC3843):https://oshwhub.com/zeruns/36v-sheng-ya-dcdc-mo-kuai-uc3842
  • STC12C5A60S2最小系统板/51单片机温度显示和温度控制风扇:https://blog.zeruns.tech/archives/721.html
  • 移植好U8g2图形库的STM32F407标准库工程模板:https://blog.zeruns.tech/archives/722.html
  • 沁恒CH32V307VCT6最小系统板开源:https://blog.zeruns.tech/archives/726.html
  • LM25118自动升降压可调DCDC电源模块:https://blog.zeruns.tech/archives/727.html
  • EG1164大功率同步整流升压模块开源,最高效率97%:https://blog.zeruns.tech/archives/730.html
  • 基于合宙Air700E的4G环境监测节点(温湿度、气压等数据),通过MQTT上传阿里云物联网平台:https://blog.zeruns.tech/archives/747.html
  • 开源 140W+65W升降压PD3.1快充模块(2C+1A口),IP6557+IP6538,205W桌面充电器:https://blog.zeruns.tech/archives/801.html

推荐文章

  • 高性价比和便宜的VPS/云服务器推荐: https://blog.zeruns.tech/archives/383.html
  • 我的世界服务器搭建教程:https://blog.zeruns.tech/tag/mc/
  • 分享一下我家网络机柜,家庭网络设备推荐:https://blog.zeruns.tech/archives/732.html
  • 香橙派 Orange Pi 3B(RK3566)开发板 开箱测评:https://blog.zeruns.tech/archives/729.html
  • 给自己电脑升级了一下,换了显卡,盈通RTX3070:https://blog.zeruns.tech/archives/746.html
  • 雨云GPU云服务器搭建SD(Stable Diffusion)的教程,搭建自己的AI绘画网站:https://blog.zeruns.tech/archives/768.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1887655.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WordPress网站如何做超级菜单(Mega Menu)?

大多数的网站菜单都是像以下这种条状的形式: 这种形式的是比较中规中矩的,大多数网站都在用的。当然还有另外一种菜单的表现形式,我们通常叫做“超级菜单”简称Mega Menu。网站的超级菜单(Mega Menu)是一种扩展的菜单&…

使用ElementUI组件库

引入ElementUI组件库 1.安装插件 npm i element-ui -S 2.引入组件库 import ElementUI from element-ui; 3.引入全部样式 import element-ui/lib/theme-chalk/index.css; 4.使用 Vue.use(ElementUI); 5.在官网寻找所需样式 饿了么组件官网 我这里以button为例 6.在组件中使用…

数组-移除元素

移除元素 移除元素&#xff08;leetcode27&#xff09; var removeElement function(nums, val) {const n nums.length;let left 0;for (let right 0; right < n; right) {if (nums[right] ! val) {nums[left] nums[right];left;}}return left; };删除有序数组中的重复…

GPT-4o不仅能写代码,还能自查Bug,程序员替代进程再进一步!

目录 1 CriticGPT 01 综合性&#xff08;Comprehensiveness&#xff09;&#xff1a; 02 幻觉问题&#xff08;Hallucinates a problem&#xff09;&#xff1a; 2 其他 CriticGPT 案例 随着人工智能&#xff08;AI&#xff09;技术不断进步&#xff0c;AI在编程领域的应用…

hive中cast()函数

CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。CAST()函数的参数是一个表达式&#xff0c;它包括用AS关键字分隔的源值和目标数据类型。 语法&#xff1a;CAST (expression AS data_type) expression&#xff1a;任何有效的SQServer表达式。 AS&#xff1a;用…

ATFX汇市:欧元区CPI与失业率数据同时发布,欧元或迎剧烈波动

ATFX汇市&#xff1a;CPI数据是中央银行决策货币政策的主要依据&#xff0c;失业率数据是中央银行判断劳动力市场健康状况的核心指标。欧元区的CPI和失业率数据将在今日17:00同时发布&#xff0c;在欧央行6月6日降息一次的背景下&#xff0c;两项数据将显著影响国际市场对欧央行…

2024 年江西省研究生数学建模竞赛题目 A题交通信号灯管理---完整文章分享(仅供学习)

问题&#xff1a; 交通信号灯是指挥车辆通行的重要标志&#xff0c;由红灯、绿灯、黄灯组成。红灯停、绿灯行&#xff0c;而黄灯则起到警示作用。交通信号灯分为机动车信号灯、非机动车信号灯、人行横道信号 灯、方向指示灯等。一般情况下&#xff0c;十字路口有东西向和南北向…

HR人才测评,如何考察想象力?

什么是想象力&#xff1f; 想象力是指&#xff0c;人们通过在已有物质的基础上&#xff0c;通过大脑想象、加工、创造出新事物的能力&#xff0c;举一个非常简单的例子&#xff0c;在提到鸟这种生活的时候&#xff0c;大家会联想到各种各样不同鸟的品种。 在企业招聘中常常应…

3.1 数据结构-线性表

上午10-12分的选择题&#xff0c;下午15分的大题 大纲 线性结构 顺序存储和链式存储区别 单链表的插入和删除 真题 线性结构 - 栈和队列 真题 串

实现WebSocket聊天室功能

实现WebSocket聊天室功能 什么是WebSocket&#xff1f;WebSocket的工作原理服务器端实现客户端实现 在现代Web开发中&#xff0c;实时通信已经变得越来越重要。传统的HTTP协议由于其无状态和单向通信的特点&#xff0c;无法很好地满足实时通信的需求。而WebSocket协议则应运而生…

【java计算机毕设】仓库管理系统 MySQL springboot vue3 Maven 项目源码代码

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】仓库管理系统MySQL springboot vue3 Maven小组项目设计源代码 2项目介绍 系统功能&#xff1a; vue3仓库管理系统&#xff0c;主要功能包含&#xff1a;个人信息管理&#xff0c;仓库管理&#xff0c;员工…

【你也能从零基础学会网站开发】理解DBMS数据库管理系统架构,从用户到数据到底经历了什么

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 其实前面我们也…

300关卡成语释义典故题库ACCESS\EXCEL数据库

成语典故指关于成语产生、形成、流传的故事传说。成语有很大一部分是从古代相承沿用下来的&#xff0c;它既代表了一个故事典故&#xff0c;又是一种现成的话&#xff0c;很多又有比喻引申意义而被广泛引用。 今天又获得了一个成语游戏的数据&#xff0c;即根据成语典故或者释…

CID引流电商:助力传统电商突破重围实现持续增长

摘要&#xff1a;面临流量成本攀升和市场份额被挤压的挑战&#xff0c;传统电商急需突破重围。CID引流电商通过跨平台引流和精准定位&#xff0c;助力商家实现持续增长&#xff0c;丰富营销手段&#xff0c;创新商业模式。CID引流电商为传统电商的长远发展注入新动力。 在电商…

TFD那智机器人仿真离线程序文本转换为现场机器人程序

TFD式样那智机器人离线程序通过Process Simulation、DELMIA等仿真软件为载体给机器人出离线&#xff0c;下载下来的文本程序&#xff0c;现场机器人一般是无法导入及识别出来的。那么就需要TFD on Desk TFD控制器来进行转换&#xff0c;才能导入现场机器人读取程序。 导入的文…

Lesson 45 The boss‘s letter

Lesson 45 The boss’s letter 词汇 can 能够 n. 罐&#xff0c;听 用法&#xff1a;1. 情态动词&#xff1a;can 动词原形    例句&#xff1a;我能跑。       I can run.    2. a can of … 一罐……    例句&#xff1a;我要一罐可乐。       I wan…

全平台7合一自定义小程序源码系统功能强大 前后端分离 带完整的安装代码包以及搭建教程

系统概述 这款全平台 7 合一自定义小程序源码系统是专为满足各种业务需求而设计的。它整合了多种功能&#xff0c;能够在不同平台上运行&#xff0c;为用户提供了全方位的体验。无论你是企业主、开发者还是创业者&#xff0c;这款系统都能为你提供强大的支持。 代码示例 系统…

手写一个类似@RequestParam的注解(用来接收请求体的参数)

一、本文解决的痛点 按照大众认为的开发规范&#xff0c;一般post类型的请求参数应该传在请求body里面。但是我们有些post接口只需要传入一个字段&#xff0c;我们接受这种参数就得像下面这样单独创建一个类&#xff0c;类中再添加要传入的基本类型字段&#xff0c;配合Reques…

在卷积神经网络(CNN)中为什么可以使用多个较小的卷积核替代一个较大的卷积核,以达到相同的感受野

在卷积神经网络&#xff08;CNN&#xff09;中为什么可以使用多个较小的卷积核替代一个较大的卷积核&#xff0c;以达到相同的感受野 flyfish 在卷积神经网络&#xff08;CNN&#xff09;中&#xff0c;可以使用多个较小的卷积核替代一个较大的卷积核&#xff0c;以达到相同的…

git命令含有中文,终端输出中文乱码的问题

目录 1、[当前代码页] 的936 (ANSI/OEM - 简体中文 GBK) 是导致中文乱码的原因 2、这样会导致什么问题呢&#xff1f; (1) 问题一: 【属性】选项的【字体】无法识别自定义文字样式&#xff0c;【默认值】选项可选自定义字体样式&#xff0c;却无法覆盖【属性】选项 (2) 问题…