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

 找回密码
 立即注册
查看: 34478|回复: 38

可能是史上最简单、最适合小白的 初次 ESPHome固件烧写过程

  [复制链接]

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11443
金钱
8512
HASS币
460

教程狂人突出贡献

发表于 2020-7-8 10:09:35 | 显示全部楼层 |阅读模式
本帖最后由 XCray 于 2021-10-9 20:03 编辑

小白一定要先看这个帖子:给小白看的:ESPHome刷机的基本逻辑,尤其是第一次

https://bbs.hassbian.com/thread-10374-1-1.html

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这是一个演示贴,配合我自己用的下载器(也叫烧录器、烧写器、编程器),不管叫啥吧,其实就是一个USB转串口的小板子,非常简单,小白用肯定不会有问题。

先安利一下这个USB转串口的小板子。我特意买的CP2104芯片的,兼容性好。这倒是次要的,关键是烧写ESP-01S模块啥都不用按、全自动的!

另外一个贴心设计是既有ESP-01S的安装底座、也有可以插杜邦线的针脚,这样连接别的TTL接口也很方便。

照片给大家看下,商家也没给我一分钱的广告费,链接就不放了。
flasher1.png flasher2.png

1. 固件准备
第一次往ESP32/ESP8266模块上烧写ESPHome固件,需要先在ESPHome Dashboard里编译、然后下载到本地(当然,编译前你得先会编辑yaml):


esp1.png esp2.png esp3.png

2. 准备烧写工具

第一次总是最难的,推荐ESPHome的离线烧写工具,ESPHome-Flasher-1.2.0-windows-x64.exe 这个最新版的,推荐到esphome官网上下载。
之所以推荐这个工具,是因为它实在太好用了!

3. 烧写

把ESP-01S模块插到底座上、把编程器插到电脑上,打开ESPHome-Flasher-1.2.0-windows-x64.exe,选择串口、选择固件文件(就是第1步下载的哪个bin文件),然后点击那个傻长傻长的“Flash ESP”按钮即可,其他的啥都不用管,不用按任何按键、也不用接任何杜邦线。
esp4.png


会自动检测芯片类型,会让板子自动进入烧写模式、会自动先行删除(Erase)原有固件:
esp5.png

烧写成功!其实到这儿按说这个帖子就可以结束了
接下来算花絮吧~~~
模块自动重启,开始扫描WiFi信号(我配置的直接连接WiFi,ssid和密码已经硬编码进去了)
esp6.png
WiFi连接成功,模块进入工作状态:
esp7.png

怎么样?省心吧?简单吧?方便吧?


如此省心的原因我觉得有两个:一是我这个编程器选的好,二是我这个ESP-01S模块选的也好——其实是马云家卖的最便宜的模块,零售价5.3软妹币,虽然便宜,但身出名门(圈内一家很有名很有口碑的公司),称得上大家闺秀!
虽然便宜,但非常好用(不用外接任何上拉电阻下拉电阻啥的,直接用,省心)。

4. 事后有人喜欢抽烟对吧?
类似地,虽然烧写完了,但这个帖子还不能完。我们烧写它的目的是让它和ha集成,那么ha里自然也就需要一些配合的动作(光躺着一点儿不动不好吧?)

首先,模块启动并成功联网后,ha就会自动发现她(我喜欢用她),并给你一个通知:
esp8.png esp9.png


点那个“Check it out”或者“配置”,就会进入ha的配置界面,点“配置”按钮、“提交”,会让你输入密码:
espa.png espb.png


这个密码就是你在yaml文件里设置的API密码,一般都喜欢API密码和OTA密码设置成一样的,不用太复杂,都是在内网用。
输完密码后提交,后面区域随意选,完成后就可以在ha里看到她们了。
espc.png espd.png
espe.png espf.png
除了wifi信号强度,其他传感器都是从串口获取原始数据,所以还都是未知。

5. OTA
到这儿总该完了吧?


是的,完了。事后烟也抽完了,可也不能永不再见了是吧?
以后还需要升级呢,大家喜闻乐见的OTA又是怎么玩呢?

再回到ESPHome Dashboard,可以欣喜地看到竟然绿啦!

由于模块已经成功联网,ha可以自动识别,ESPHome当然更可以自动发现了,所以她的状态现在是很绿、Online。
以后改动yaml,增加或改动什么功能、代码,就可以直接在这儿点“UPLOAD”一键完成编译上传升级了。
espg.png

~~~~~~~~~~~~~~~~~~~~~~
其实还没完!
既然说的是ESPHome,那么比ESP8266更强大的ESP32就不得不提,比起初次烧写ESP8266来,ESP32的第一次更难一些。
主要是esp8266只需要写入一个esphome自己编译出来的bin文件就够了,而esp32除了esphome自己编译的之外,还需要写入3个bin文件,缺一不可!
而这另外的3个bin文件,esphome并不会自己编译,而是要到 raw.githubusercontent.com 这个网址去临时下载;而在大国域网里,这个网址几乎是100%不可访问的!

怎么办?
我在另一个帖子里已经给出了完整的解决方法,需要的话自己去看咯:
github被墙,烧写失败?ESP32模块ESPHome首次烧写终极大法


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这下终于算是写完了!

那么,这么用心的帖子,你看了不点赞良心能过得去吗??





评分

参与人数 17金钱 +92 HASS币 +20 收起 理由
blewsheep + 2 论坛有你更精彩!
yuyuye + 10 膜拜大神!
wusun209 + 5
leafly + 5 感谢楼主分享!
fenixdeng + 5
graydot + 5
unixcs + 2 感谢楼主分享!
azurefinale + 2 高手,这是高手!
KNX-xdd50 + 5 厉害了word楼主!
zzero25 + 5
Jake2018 + 2 感谢楼主分享!
sco505 + 5 感谢楼主分享!
sppt + 2 我来瀚思就为看你!
cym9007 + 2 感谢楼主分享!
活着就要折腾 + 5 事后烟是啥,少了这一步是不是就不能烧录成.
chinyaolin + 10 很棒, 我自己就是使用你的方法初次燒錄.
+ 20 + 20 墙都不扶,就服楼主!

查看全部评分

回复

使用道具 举报

5

主题

340

帖子

1271

积分

金牌会员

Rank: 6Rank: 6

积分
1271
金钱
931
HASS币
0
发表于 2020-7-8 11:04:17 | 显示全部楼层
顶楼主,学习了
回复

使用道具 举报

16

主题

171

帖子

757

积分

高级会员

Rank: 4

积分
757
金钱
581
HASS币
40
发表于 2020-7-8 11:04:24 | 显示全部楼层
除了那个烧写器,我觉得没有比这个更简单https://bbs.hassbian.com/thread-5859-1-1.html
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11443
金钱
8512
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-7-8 11:15:07 | 显示全部楼层
本帖最后由 XCray 于 2020-7-8 11:35 编辑
icase 发表于 2020-7-8 11:04
除了那个烧写器,我觉得没有比这个更简单https://bbs.hassbian.com/thread-5859-1-1.html
...

你这是抬杠啊~~~~

那个帖子我看过,说实话我理解都费劲,比我还萌新的小白会觉得比我这个还简单吗?

尤其是第一次烧写esphome固件晕头转向的小白,看那个帖子我敢打包票,会更晕。
我所谓的简单,还有一层意思是容易理解,这个帖子还有一个重要的目的是让小白明白整个过程、建立起清晰的思路。


如果已经很熟练,某些场景下那个工具操作起来倒是更简单——需要的操作更少的意思。

但是,从安全等角度出发,我从来不向小白推荐这种个人用的工具,安全是个问题,维护是个问题,文档也是问题,又是platformio,又是python 2.7/3.5的,小白更搞不清了,再说那个工具与esphome本身的配合这一点就够小白喝一壶的了。
回复

使用道具 举报

69

主题

692

帖子

4187

积分

论坛元老

Rank: 8Rank: 8

积分
4187
金钱
3490
HASS币
80
发表于 2020-7-8 13:08:41 | 显示全部楼层
本帖最后由 zhenxiwen 于 2020-7-8 13:11 编辑

似乎没有那么复杂的过程吧:

我是这样刷的:打开esphome——把要刷的板子插到usb口——选择板子类型——填写我的wifi信息——finished——选择edit(编辑你的yaml)——选择save-——首次刷机要选择usb连接——然后,选择upload——ok。再次编辑刷机的话,只需选择OTA连接即可。非常方便快捷,全部在esphome里完成,什么工具都不用,顺利的话不用5分钟。
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11443
金钱
8512
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-7-8 15:09:06 | 显示全部楼层
zhenxiwen 发表于 2020-7-8 13:08
似乎没有那么复杂的过程吧:

我是这样刷的:打开esphome——把要刷的板子插到usb口——选择板子类型——填 ...

电脑这东西,从来都是会者不难、难者不会。

有人ESPHome是运行在虚拟机里的Docker上的,他自己都很难想明白或者理解这一点,把板子插在自己的Windows系统中、用浏览器指挥esphome刷固件——关键还不知道自己是在尝试OTA,只能一遍遍地尝试指望诚心感动天和地,让他理解学会把板子的USB串口暴露给esphome恐怕要费一番力气吧?
回复

使用道具 举报

69

主题

692

帖子

4187

积分

论坛元老

Rank: 8Rank: 8

积分
4187
金钱
3490
HASS币
80
发表于 2020-7-8 15:20:01 | 显示全部楼层
本帖最后由 zhenxiwen 于 2020-7-8 15:35 编辑
XCray 发表于 2020-7-8 15:09
电脑这东西,从来都是会者不难、难者不会。

有人ESPHome是运行在虚拟机里的Docker上的,他自己都很难想 ...

我的系统:gen8上:esxi6.7+Ubuntu20.04+docker+hassio,由于是虚拟机,需在ha虚拟机中添加usb设备或者将USB口直通给虚拟机,然后,esphome就能自动识别插到usb口上的板子。

我原来是这样的,但现在是:我的hass是单独一个虚拟机,黑群晖是另外一个虚拟机,都是装在esxi6.7上。我是用黑群晖的docker安装esphome、mqtt、nodered、Influxdb、,MariaDB,grafana等,ha上尽可能少安装addons,我发现这样分开来,ha启动和运行更快更稳定,折腾ha时,mqtt、nodered、数据库等不受影响。


如果是实体机或者树莓派,esphome是可以自动识别插上的usb设备的,windows我没做过,不知道。

只是第一次刷机时需要通过usb口,以后修改再刷时板子已经连上wifi,通过ota就可以了。

回复

使用道具 举报

4

主题

162

帖子

765

积分

高级会员

Rank: 4

积分
765
金钱
603
HASS币
10
发表于 2020-7-8 16:27:47 | 显示全部楼层
学习学习  顶楼主
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11443
金钱
8512
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-7-8 17:57:04 | 显示全部楼层
zhenxiwen 发表于 2020-7-8 15:20
我的系统:gen8上:esxi6.7+Ubuntu20.04+docker+hassio,由于是虚拟机,需在ha虚拟机中添加usb设备或者将U ...

esxi我还从来没碰过呢,感觉很高大上,我一直很保守地使用白群的vmm,windows上基本也就是vm workstation,macos以parallels为主。。。。扯远了。。。

~~~~~~~~~~~~
只是在虚拟机中添加usb设备或者将usb口直通给虚拟机恐怕还不行吧?

玩esphome,绝大多数都是在hassio上玩,基本上也就是在docker上跑,不需要再把usb设备指定/映射/暴露给esphome容器?

实话说,我还从来没直接在esphome里通过usb刷过(主要是群晖放在比较不碍事的角落里,跑过去插usb比较费劲)。我只是凭想象和推测,觉得这个步骤应该是必不可少。
回复

使用道具 举报

69

主题

692

帖子

4187

积分

论坛元老

Rank: 8Rank: 8

积分
4187
金钱
3490
HASS币
80
发表于 2020-7-8 18:11:23 | 显示全部楼层
本帖最后由 zhenxiwen 于 2020-7-8 18:13 编辑
XCray 发表于 2020-7-8 17:57
esxi我还从来没碰过呢,感觉很高大上,我一直很保守地使用白群的vmm,windows上基本也就是vm workstation ...

把usb设备指定/映射/暴露给esphome容器,这个就比较复杂。如果是实体机都不用做什么,如果是虚拟机有三种情况:

1、如果是用ha插件安装esphome,只需在ha虚拟机中添加usb设备,当然实体机比如树莓派是不用的,esphome自然识别usb设备。
2、如果是黑群辉中docker安装esphome,可以映射usb给esphome容器,也可以按下面第三种方法:
3、如果是黑群辉中docker安装esphome,把硬件usb口直通给虚拟机黑群晖,esphome容器与host共享usb口,直接插上usb设备就可以识别。我是用这个方法。参见我的另一个帖子;


群晖docker中container共享宿主机usb并支持热插拔的方法
https://bbs.hassbian.com/thread-10078-1-1.html
(出处: 『瀚思彼岸』» 智能家居技术论坛)
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-25 03:11 , Processed in 3.397293 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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