今天为大家介绍的是 ESPurna 固件。其实在之前介绍彩光灯带时,就很想向大家推荐这个固件了。这个固件出色的地方在于其极高的稳定性、漂亮而易用的界面和其极为人性化的一些隐藏设定,另外,可也以接入各类传感器。为什么说适合新手呢?看图就明白了。
固件项目地址: https://github.com/xoseperez/espurna ,发帖时最新的版本为 1.12.1。
简体中文翻译由本人完成,基于最新版固件。
英文版固件下载地址:https://github.com/xoseperez/espurna
中文版:
sonoff-basic-chs-1.12.1.zip
espurna-chs-1.12.1.zip
以下是无需 Arduino 和 PlatformIO 的刷机方法:
0. 如果你已经刷好了 Tasmota,直接在 Tasmota 的 固件更新界面上传下载好的固件 (bin),重启以后就变成 ESPurna 了!!!!
1. 没有 Python 的话需要先安装 Python,请在 https://www.python.org/downloads/windows/ 下载;(安装后须重新启动)
2. 打开命令提示符,执行
pip install pyserial
3. 下载附件
,解压到方便使用的位置。
4. 连接开关、编程器和电脑,打开命令提示符,切换到解压到的位置,执行:
python esptool.py -b 115200 --port COM3 write_flash --flash_freq 80m --flash_mode dout 0x000000 D:\Downloads\espurna.bin
( D:\Downloads\espurna.bin 是固件的地址)
这就完了?没错!!!
如果刷机后没有出现热点,尝试长按按钮10秒恢复设置; ==默认密码是 fibonacci ==,==(IP:http://192.168.4.1 后台默认用户:admin,默认密码:fibonacci----自己改:admin,密码:admin888)==可在配置文件修改;进入管理页面不要使用Edge浏览器! 不要使用Edge浏览器! 不要使用Edge浏览器!会一直提示密码错误。
(关于配置环境的问题,可以参阅固件作者写的文档,arduino弄起来比较简单但是我一直没有成功才不得不换用PlatformIO。)
- 修改刷机后的默认设置
- 传感器针脚设置
- 传感器防抖动
- DHT22 的小数位数
- 接入多个传感器(温湿度、光照、人体、物理开关)
- 禁用好心办坏事的崩溃检测
下面从文件入手介绍各个可修改的项目。(前面为设置项,后面是推荐修改为的值,不是原来的值)
1. defaults.h
只有一处建议修改:
#define LED1_MODE LED_MODE_FOLLOW
这是设置默认指示灯状态为“继电器状态”,相信大多数人都会使用这种模式吧。
2. general.h
(1)
#define ADMIN_PASS "fibonacci"
默认管理员密码。不受强密码规则限制。注意:如果这里设置少于8位,平时使用没有问题,但是开关处在热点模式时,连接密码也是这个,所以开关就连不上了。
(2)
#define WEB_FORCE_PASS_CHANGE 0
首次登录不强制修改密码。
(3)
#define SYSTEM_CHECK_ENABLED 0
禁用系统崩溃检查。以免系统开启自我保护模式,禁用大部分功能,导致必须重置。
(4)
#define WIFI1_SSID "wuxianwang"
#define WIFI1_PASS "mimamima"
自动连接WiFi。
(5)
#define NTP_TIME_OFFSET 8
设置中国时区。
3. sensors.h
这是重头戏了——传感器设置!
首先请搜索“_SUPPORT”,找到你需要接入的传感器,把后面的数字改为 1!
例如,要接入光线传感器,则为:
#define BH1750_SUPPORT 1
并不是只能接一个,只要针脚够用,想接几个接几个!为了避免针脚冲突, 在相应传感器的 SUPPORT 项下面,会有 PIN 设置,设置传感器的针脚。
(1)
#define SENSOR_READ_INTERVAL 6 // 默认的读取间隔
#define SENSOR_READ_MIN_INTERVAL 0 // 最小的读取间隔(可以通过TELNET和审查元素修改)
#define SENSOR_READ_MAX_INTERVAL 3600 // 最大的读取间隔
(2)
#define TEMPERATURE_MIN_CHANGE 0.0
#define HUMIDITY_MIN_CHANGE 0.2
温度和湿度的上报最小改变值,在此范围内变化时不会上报数据,防止数据抖动。