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

 找回密码
 立即注册
查看: 58548|回复: 61

[经验分享] 用ESP01和SSD1306,制作十多元的状态显示屏

  [复制链接]

6

主题

743

帖子

5956

积分

论坛元老

Rank: 8Rank: 8

积分
5956
金钱
5208
HASS币
20
发表于 2020-3-4 16:34:07 | 显示全部楼层 |阅读模式
本帖最后由 mitu 于 2020-3-4 16:42 编辑

用ESP01和SSD1306,制作十多元的状态显示屏
一、效果展示:
0.JPG   1.JPG   2.JPG
3.JPG   4.JPG   5.JPG

二、所用材料:
  1.  ESP01         6.18元
  2.  SSD1306屏       9.00元
  3.  线材          忽略
  (材料来源,X宝)
三、制作过程:
  1.  ESP01刷写Tasmota8.0以上的display版本;
  2.  用杜邦线或其他线材将SSD1306的SCL接ESP01的GPIO1,SSD1306的SDA接ESP01的GPIO3 (当然也可以是GPIO0和GPIO2),并将ESP01和SSD1306的VCC和GND分别接3.3V和GND;
  3.  ESP01正常配置网络,并查看ESP01的IP地址(比如192.168.1.202),相关知识请参考Tasmota的wiki内容;
  4.  浏览器登录“http://IP地址”访问ESP01,进入“设置”->“模板配置”,按下图设置。
         6.jpg
  5.  从主菜单进入“设置”->“模块设置”,选择“SSD1306”,这时ESP01会自动重启。
  6.  从主菜单进入“控制台”,依次输入如下内容(忽略括号及里面的内容):
timezone 8  (设置时区,不设置显示的时间将会错8小时)
mem1 15  (设置时间更新周期)
mem2 10  (设置轮询时间)

  7.  设置自动化规则:
   规则1:显示部分(将以下7行一次性复制,在控制台粘贴并回车)
rule1
on rules#timer=1 do backlog displaytext [x0y-2s1f2C1B0t][x0y17h128][x0y63h128];ruletimer1 %mem1% endon
on System#Boot do backlog ruletimer1 5;ruletimer2 5 endon
on Var7#state do displaytext [x92y1s2f1C0B1]%value% endon
on var8#state do displaytext [x84y48p-6C1B0f1]%value% endon
on var9#state do displaytext [x0y48p12C1B0f1]%value% endon
on var10#state do displaytext [x4y22p-7C1B0f2]%value% endon
      输入“rule1 1”,启用规则。
   规则2:参数部分(将以下8行一次性复制,在控制台粘贴并回车)
rule2
on rules#timer=2 do add16 1 endon
on var16#state do ruletimer2 %mem2% endon
on var16#state>=5 do backlog var8 W;var9 Power;var10 %var15%;var16 0 endon
on var16#state==4 do backlog var8 A;var9 Curren;var10 %var14% endon
on var16#state==3 do backlog var8 V;var9 Voltage;var10 %var13% endon
on var16#state==2 do backlog var8 kWh;var9 Today;var10 %var12% endon
on var16#state==1 do backlog var8 kWh;var9 Remain;var10 %var11% endon
      输入“rule2 1”,启用规则。

  8.  测试显示效果:
  将以下内容复制,在控制台粘贴并回车 2267.936;var7 23.4C
backlog var15 299;Var14 1.39;var13 238;var12 5.212;var11 2267.936;var7 23.4C

  如果SSD1306显示了,恭喜你,基本完成了ESP01驱动SSD1306的试验,如果没有显示,请在控制台输入“i2cscan”,查看i2c扫描结果。如果显示 {"I2CScan":"Device(s) found at 0x3c"}“,表示i2c连接正常,输入“power on”,也许就显示了,如果还没有显示,输入“restart 1”,重启ESP01。
  9.  比第8条可以看出,var7、var11-15这6个参数是可能变化的,我们只要通过其他途径改变这些参数即可,这里以mqtt为例。从主菜单,依次进入“设置”->“MQTT设置”,配置MQTT服务器参数,并将“主题”(topic)设置成“SSD1306”。
  10. 通过HA给ESP01传递需要参数,我这里分别传递用电功率、电流、电压、今日用电、电表剩余电度以及家里的平均温度。HA里设置自动化如下:
- id: sa29839429023
  alias: "给显示屏推送数据"
  trigger:
    platform: state
    entity_id: sensor.power
  action:
    service: mqtt.publish
    data:
      topic: cmnd/SSD1306/backlog
      payload_template: >
        var15 {{states.sensor.power.state}};Var14 {{states.sensor.power.attributes.Current}};var13 {{states.sensor.power.attributes.Voltage}};var12 {{states.sensor.power.attributes.Today}};var11 {{(states.input_number.power_target.state|float - states.sensor.power.attributes.Total)|round(2)}};var7 {{states.sensor.temperature_average.state}}C

  传感器名称按你在HA里的名称进行更改。
  重启自动化,不出意外的话,你的SSD1306显示屏将显示你所需要的内容了。
游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 1金钱 +16 收起 理由
sorrypqa + 16 高手,这是高手!

查看全部评分

回复

使用道具 举报

9

主题

527

帖子

2350

积分

金牌会员

Rank: 6Rank: 6

积分
2350
金钱
1823
HASS币
0
发表于 2020-3-4 18:25:14 | 显示全部楼层
这种支持i2c的屏  大一点的就好贵。。。本想做个监视群晖。。
回复

使用道具 举报

6

主题

243

帖子

1864

积分

金牌会员

Rank: 6Rank: 6

积分
1864
金钱
1621
HASS币
0
发表于 2020-3-4 18:59:09 | 显示全部楼层
不错!学习了。。
回复

使用道具 举报

0

主题

204

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
金钱
961
HASS币
0
发表于 2020-3-4 19:57:51 | 显示全部楼层
谢谢分享  
回复

使用道具 举报

6

主题

352

帖子

1333

积分

金牌会员

Rank: 6Rank: 6

积分
1333
金钱
981
HASS币
0
发表于 2020-3-4 21:34:03 | 显示全部楼层
顶起来,感谢分享!
回复

使用道具 举报

0

主题

76

帖子

766

积分

禁止访问

积分
766
金钱
690
HASS币
0
发表于 2020-3-4 21:45:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

6

主题

743

帖子

5956

积分

论坛元老

Rank: 8Rank: 8

积分
5956
金钱
5208
HASS币
20
 楼主| 发表于 2020-3-4 23:05:00 来自手机 | 显示全部楼层
Ainndy 发表于 2020-3-4 21:45
Tasmota 支持切换开关的时候设置播放音乐吗

应该可以通过rule来实现
回复

使用道具 举报

8

主题

382

帖子

1779

积分

金牌会员

Rank: 6Rank: 6

积分
1779
金钱
1397
HASS币
0
发表于 2020-3-5 09:50:04 | 显示全部楼层
谢谢分享
回复

使用道具 举报

57

主题

403

帖子

3041

积分

论坛元老

Rank: 8Rank: 8

积分
3041
金钱
2638
HASS币
0
发表于 2020-3-5 10:14:23 | 显示全部楼层
楼主厉害了,不过现在TASMOTA还无法显示中文,你这个规则用的很6
回复

使用道具 举报

9

主题

205

帖子

2660

积分

金牌会员

Rank: 6Rank: 6

积分
2660
金钱
2455
HASS币
0
发表于 2020-3-5 10:24:35 | 显示全部楼层
学习学习
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 09:08 , Processed in 0.499843 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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