『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 12180|回复: 25

[技术探讨] 想用esp01s串口发送数据,请各位帮忙看看ESPhome程序怎么写

[复制链接]

8

主题

157

帖子

905

积分

高级会员

Rank: 4

积分
905
金钱
748
HASS币
0
发表于 2020-7-3 15:28:21 | 显示全部楼层 |阅读模式
本帖最后由 hejie127 于 2020-7-3 15:32 编辑


买了几个v4的继电器,上电的时候gpio0口会跳闪一下,这个接大功率电器的时候会烧掉电机,不敢用。。。

又买了几个单片机控制的继电器。需要从TX口发送数据给单片机,然后控制继电器开关,请教程序怎么写呢。

我对着教程,esphome固件写了好久都不能通过


uart:
  baud_rate: 9600
  tx_pin: TX   ##或者RX
  
switch:                      ##设备类型; ##https://item.taobao.com/item.htm?spm=a1z09.2.0.0.74382e8dbTXCLL&id=537308448437&_u=31dv3d1db2e                  
  - platform: uart
    name: "开"
    id: uart_On
    data: [0xA0, 0x01, 0x01, 0xA2]
  - platform: uart
    name: "关"
    id: uart_Off
    data: [0xA0, 0x01, 0x01, 0xA1]
   
binary_sensor:
  - platform: gpio  ##这地方感觉有问题,不知道怎么写了 
    - lambda: |-    ##这地方感觉有问题,不知道怎么写了
      if (id(uart_On).state) {
        - switch.toggle: uart_Off
      } else {
        - switch.toggle: uart_On
      }
继电器说明:入指令的内容和名称(A00101A2打开继电器,A00100A1关闭继电器,指令的格式为十六进制(hex)
麻烦各位帮忙看看,谢谢


回复

使用道具 举报

8

主题

157

帖子

905

积分

高级会员

Rank: 4

积分
905
金钱
748
HASS币
0
 楼主| 发表于 2020-7-3 15:33:52 | 显示全部楼层
想实现的就是  只有一个开关,点一下就开,再点一下就关
回复

使用道具 举报

0

主题

86

帖子

656

积分

高级会员

Rank: 4

积分
656
金钱
570
HASS币
0
发表于 2020-7-3 16:41:43 | 显示全部楼层
直接用esp01s,把继电器控制脚改为Rx,上电不会有任何波动。
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2020-7-3 17:12:24 | 显示全部楼层
楼主是不是想太多了?
1、既然有单片机,esp01就可以不用了,运行esphome的主机可以直接向单片机发数据(指令),为啥非要让esp01转一道手呢?
2、即使用esp01,也不用这么复杂,就定义一个switch即可,差不多所有的平台都支持switch的toggle操作,也就是说,原来是关的状态就开开、原来是开的状态就关上
3、gpio0跳闪?这个现象还真没碰到过,有没有可能先让esp01上电、然后再让你所说的大功率电机上电?
回复

使用道具 举报

8

主题

157

帖子

905

积分

高级会员

Rank: 4

积分
905
金钱
748
HASS币
0
 楼主| 发表于 2020-7-3 21:34:20 | 显示全部楼层
本帖最后由 hejie127 于 2020-7-3 22:24 编辑
p-ftp 发表于 2020-7-3 16:41
直接用esp01s,把继电器控制脚改为Rx,上电不会有任何波动。

谢谢你的建议,你说的这是个办法,
官方说01s的 rx是有可能会有数据产生的,这个会不会导致开关突然跳变呢。怕不稳定。
回复

使用道具 举报

8

主题

157

帖子

905

积分

高级会员

Rank: 4

积分
905
金钱
748
HASS币
0
 楼主| 发表于 2020-7-3 21:40:04 | 显示全部楼层
XCray 发表于 2020-7-3 17:12
楼主是不是想太多了?
1、既然有单片机,esp01就可以不用了,运行esphome的主机可以直接向单片机发数据(指 ...

1、 esp01s就是运行esphome的主机啊。不存在转一到手的情况。。现在卡在怎么给单片机发指令了。不会写这个固件
2、esp01s,你用gpio0接个灯,然后断开esp01再通电,就会跳闪了。就是0.5秒内开关一次
3、如果能让esp01的控制指令延时倒是可以,网上有帖子的,但是这个改动更复杂。。。
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2020-7-4 14:19:50 | 显示全部楼层
本帖最后由 XCray 于 2020-7-4 14:36 编辑
hejie127 发表于 2020-7-3 21:40
1、 esp01s就是运行esphome的主机啊。不存在转一到手的情况。。现在卡在怎么给单片机发指令了。不会写这 ...

1、我说的“运行esphpme的主机”,不是指esp32或esp8266/esp01,而是你用于控制esp32/esp8266/esp01的那台电脑。与其向esp01发指令、让esp01再向你说的单片机转发,肯定不如直接向单片机发送指令吧?

2、esp01加电时,gpio0如果接led灯的话会闪,但并足以驱动继电器。实际上,大家买到的大多数单继电器模块,用的就是gpio0,我自己也在用,从来没碰到过加电过程中继电器动作的现象。
你可以先不接继电器的输出端测试一下,继电器动作的声音很明显的,相信你可以听出来。或者先接一个小功率电器(不是接gpio0,而是接继电器的输出),观察一下加电时到底有没有动作

3、我说的是esp01先上电,这样就更不用担心跳闪导致大功率电器烧毁的问题了。和你说的指令延时应该不是一个概念

4、toggle的事情你没再提,我推测你应该是理解我的意思了。

另外,我怀疑你说的单片机还是esp01.。。。。。
回复

使用道具 举报

8

主题

157

帖子

905

积分

高级会员

Rank: 4

积分
905
金钱
748
HASS币
0
 楼主| 发表于 2020-7-4 22:35:48 | 显示全部楼层
XCray 发表于 2020-7-4 14:19
1、我说的“运行esphpme的主机”,不是指esp32或esp8266/esp01,而是你用于控制esp32/esp8266/esp01的那台 ...

1、我觉得我跟你有点较真了。其实我本意不是这个,就是想解决问题
2、“控制esp32/esp8266/esp01的那台电脑” 这个是群晖、或者是手机,人在外面,用手机只能wifi链接才能控制8266,然后才能实现你说的向单片机发送指令吧。不然怎么直接给单片机发指令?
3、过加电过程中继电器动作这个很多人都碰到了。如下:
https://blog.csdn.net/sxyandapp/article/details/78330878
https://blog.csdn.net/qq_39161804/article/details/104638443
https://www.arduino.cn/thread-95863-1-1.html
我了解了几天之后发现是01s的0口跟2口,换掉上面两个口就没事了。比如RX。
如果你说你买的继电器模块不会跳,麻烦把背面发个照片上来。看看是哪个版本的。也算是造福坛友了
4、模块先上电,然后在给大功率电器上电呢,用延时继电器吗? 成本增高。这个接好了放在那就不动了。怕的是突然停电来电,这样会导致负载闪断一次,很容易烧的。
5、我说的是带单片机的继电器模块。背面长这个样子。。他不是通过io口的电平变化直接控制继电器动作的,这个模块本身带个单片机。01s发送数据到单片机控制继电器。。我现在就是不会写esphome的固件。才来这里问的。见我第一贴。 QQ截图20200704222906.jpg
麻烦你帮我看看第一贴的程序,或者能帮我解释清楚,都不胜感激
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2020-7-5 10:35:46 | 显示全部楼层
本帖最后由 XCray 于 2020-7-5 12:46 编辑
hejie127 发表于 2020-7-4 22:35
1、我觉得我跟你有点较真了。其实我本意不是这个,就是想解决问题
2、“控制esp32/esp8266/esp01的那台电 ...

有情绪啦?难道我说话得罪你啦???

好像我之前是有些误解,你说的单片机是没有联网功能、从esp8266的tx接收串口指令的单片机?

如果是的话,那ESPHome的UART Switch加上我之前说的toggle应该就可以满足你的需求了。
既然你提到,不妨说说我用的继电器模块,是淘宝上找到的最便宜的型号,零售价8块,配合零售价5.3元的ESP01,确实没有你说的gpio0跳闪的问题。至于接led会不会闪,我没试过。


无标题.png
回复

使用道具 举报

9

主题

135

帖子

894

积分

高级会员

Rank: 4

积分
894
金钱
759
HASS币
0
发表于 2021-12-25 16:19:53 | 显示全部楼层
XCray 发表于 2020-7-5 10:35
有情绪啦?难道我说话得罪你啦???

好像我之前是有些误解,你说的单片机是没有联网功能、从esp8266的tx ...

这个esp01继电器模块用的是gpio0,上电瞬间继电器抖动不是一直都存在的问题吗?要改动到rx口就好了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-26 08:53 , Processed in 0.098833 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表