Git Product home page Git Product logo

esp485's Introduction

ESP485

简介

讨论群: 810581215

群友Carl的详细教程

最近Home Assistant新增了能源模块,公司的项目又正好是数据采集相关的,看了下市面上卖的Modbus透传模块价格都不低,于是有了自己做的想法。请教硬件朋友,拿到了最简单的485TTL电路。等了很久最近ESPHome终于初步支持了基于RISC-V架构的ESP32-C3(极低功耗、CPU温度、蓝牙5.0160 MHz...非常强)。于是直接二者结合,搞出了指甲盖大小的485透传模块。把模块和变压器塞进了正泰导轨式模数化插座里(一举两得),测试电表用的是正泰DDSU666(理论上支持所有Modbus设备数据透传)

ESP485_1

ESP485_2

INSTALL_3

INSTALL_4

INSTALL_5

INSTALL_6

INSTALL_7

HASS_2

目录

硬件

材料清单

清单只包含关键材料,不包含焊接工具、线材、刷机工具等辅助工具

名称 型号 数量 PCB标注 链接
ESP-C3-13U 4M 1 ESP-C3-13U 购买
AMS1117-3.3 稳压电源芯片降压IC AMS1117-3.3 1 U1 购买
MAX13487EESA SOIC-8 - 1 U2 购买
0603贴片电阻 4.7KΩ - 1 R1/R2 购买
0603贴片电容 50V 100NF ±10% - 1 C1 购买
2.4G内置柔性FPC软天线 IPEX接头 1 - 购买
220V转5V700mA电源模块 5V700mA 1 - 购买
正泰DDSU666 5-80A ModBus 1 - 购买
正泰模数化插座 AC30-103 1 - 购买

焊接

PCB标注焊接即可,注意ESP-C3-13U的焊接,缝隙很小,一定要对其

软件

ESPHome

这里参考

esphome:
  name: esp32_c3_test
  platform: ESP32
  board: esp32-c3-devkitm-1
  platformio_options:
    platform: https://github.com/platformio/platform-espressif32.git#feature/arduino-upstream
    platform_packages:
      - framework-arduinoespressif32@https://github.com/espressif/arduino-esp32.git#2.0.0
    board_build.variant: esp32c3
    board_build.f_cpu: 160000000L
    board_build.f_flash: 40000000L
    upload_protocol: esptool
    board_build.flash_mode: dio

wifi:
  ssid: "#WIFI名称#"
  password: "#WIFI密码#"

captive_portal:

logger:

api:
  password: '#api密码#'

ota:
  password: '#ota密码#'

web_server:
  port: 80
  
time:
  - platform: sntp
    id: esp485_time
  
uart:
  id: esp485_uart
  rx_pin: 18
  tx_pin: 19
  baud_rate: 9600
  data_bits: 8
  stop_bits: 1

modbus:
  id: esp485_modbus
  send_wait_time: 200ms

modbus_controller:
  - id: esp485_modbus_controller
    modbus_id: esp485_modbus
    address: 0x01 #设备地址码(一般是1根据实际情况填)#
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 10s

sensor:
  - platform: modbus_controller
    modbus_controller_id: esp485_modbus_controller
    id: esp485_modbus_u
    name: "U"
    address: 0x2000
    register_count: 2
    unit_of_measurement: "V"
    register_type: holding
    value_type: FP32
    accuracy_decimals: 1
    device_class: voltage
    
  - platform: modbus_controller
    modbus_controller_id: esp485_modbus_controller
    id: esp485_modbus_i
    name: "I"
    address: 0x2002
    register_count: 2
    unit_of_measurement: "A"
    register_type: holding
    value_type: FP32
    accuracy_decimals: 3
    device_class: current
    
  - platform: modbus_controller
    modbus_controller_id: esp485_modbus_controller
    id: esp485_modbus_p
    name: "P"
    address: 0x2004
    register_count: 2
    unit_of_measurement: "W"
    register_type: holding
    value_type: FP32
    accuracy_decimals: 1
    filters:
      - multiply: 1000
    device_class: power
    
  - platform: modbus_controller
    modbus_controller_id: esp485_modbus_controller
    id: esp485_modbus_q
    name: "Q"
    address: 0x2006
    register_count: 2
    unit_of_measurement: "var"
    register_type: holding
    value_type: FP32
    accuracy_decimals: 1
    filters:
      - multiply: 1000
    device_class: power
    
  - platform: modbus_controller
    modbus_controller_id: esp485_modbus_controller
    id: esp485_modbus_s
    name: "S"
    address: 0x2008
    register_count: 2
    unit_of_measurement: "VA"
    register_type: holding
    value_type: FP32
    accuracy_decimals: 1
    filters:
      - multiply: 1000
    device_class: power
    
  - platform: modbus_controller
    modbus_controller_id: esp485_modbus_controller
    id: esp485_modbus_pf
    name: "PF"
    address: 0x200A
    register_count: 2
    register_type: holding
    value_type: FP32
    accuracy_decimals: 3
    device_class: power_factor
    
  - platform: modbus_controller
    modbus_controller_id: esp485_modbus_controller
    id: esp485_modbus_freq
    name: "Freq"
    address: 0x200E
    register_count: 2
    unit_of_measurement: "Hz"
    register_type: holding
    value_type: FP32
    accuracy_decimals: 2
    
  - platform: modbus_controller
    modbus_controller_id: esp485_modbus_controller
    id: esp485_modbus_ep
    name: "Ep"
    address: 0x4000
    register_count: 2
    unit_of_measurement: "kWh"
    register_type: holding
    value_type: FP32
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing

固件

刷机命令(提前安装好esptool.py,辅助bin文件可以从firmware文件夹取或从tasmota-git

请参考 tasmota-doc

sudo esptool.py --chip esp32c3 --port /dev/ttyUSB0(Win为COM1...口) --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode dout --flash_freq 40m --flash_size detect 0x0000 bootloader_dout_40m.bin 0x8000 partitions.bin 0xe000 boot_app0.bin 0x10000 firmware.bin

HASS

打开HA管理界面(默认端口8123),点击配置,集成,添加集成,搜ESPHome,输入IP#api密码#就可以接入模块了。能源里添加如下图 HASS_1

Modbus-RTU

Modbus一般分Modbus-TCPModbus-RTU两个种,收发报文有所区别,这里不做过多介绍网上资料很多。我这里介绍Modbus-RTU的,Modbus-TCP由于没有设备无法测试。一般设备厂商设备说明书里都会提供地址说明(有的可以从官网下到),直接看图

Modbus-RTU_1

Modbus-RTU_2

DIY

请参考之前DIY步骤

注意

1、EPS-C3-13U进入下载模式只需要通电前将IO9接地,接法如下图

TTL

2、外壳和变压器安装注意做好绝缘

INSTALL_1

INSTALL_2

esp485's People

Contributors

liwei19920307 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.