蓝屏百分数随机代码:
void showBlueScreen() {
blueScreenProgress = 0;
while (blueScreenProgress < 100) {
int increment = random(1, 11); // 每次增加 1~10%
blueScreenProgress += increment;
if (blueScreenProgress > 100) blueScreenProgress = 100;
drawBlueScreen();
delay(80); }
}
这次蓝屏有了变化,是比之前任何版本更随机的显示,V15/V15.1以及之前的:
:(
Your device ran into a problem
and needs to restart,
collecting data from your device 98%
之前是2%逐渐增长,就是0%、2%、4%、6%、8%、10%……98%、100%
这次是随机增长百分比!
就是0% 6% 9% 12% 18%……95% 100%(每次不同)
第二个更新的最重要功能:
OTA空中更新
远程访问192.168.4.1(先连热点),进入"zvs142857 Update"选择.bin文件,再点绿色的"Update"按钮即可完成空中更新
注意"高级"左边有个图标,是模仿Windows UAC用户账户控制
第三个最重要的功能:
先看"线段图"
ChinaNet (网络) ----- ESP8266 WiFi OLED 时钟的NAT功能 ------ 远距离设备
| 5m | 6m
| |
近距离设备 连接ESP8266热点的设备 --------------------------------------- 超远距离设备
10m
这样实现了WiFi增强器,或者WiFi放大器的功能,实现15m都信号满格,即使不是满格,至少信号速度更快
在"高级"页面
这个"更改当前不可更改的设置"就是想更改当前不能看到的设置,后面会讲
第四个更新后的重要功能:
就是无需连接网络,就可以连接热点设置网络,V15.7才有,V15.1以及之前的:
USB 5V电源 --- ESP8266 --- 网络 --- 热点管理
现在
USB 5V电源 — ESP8266 — 无需网络 连接网络 —-------- 显示时钟
| ⬆️
| ⬆️
连接到热点的设备 --------------- 热点设置
经过实测,WiFi放大器可以放大信号,从-70dB到-56dB(越接近0信号越好)
理论WiFi破解也可以连接,但是成功率太低,而且仅测试自己网络才能使用
所以:
点击
“更改当前不可更改的设置”进入
到此就可以连接
那么怎么进入这个页面呢?
A0接10K及以上的电阻,到3V或者5V,让后重启ESP8266
也就是说,A0和3V接10K电阻同时重启就是
A0 - - - 10K - - - 3.3V
注:先连接ESP8266-WiFi这个热点,再浏览器进入192.168.4.1即可
[mp4]
成功后,OLED会显示:
SSID: ESP8266-WiFi
IP: 192.168.4.1
对应代码:
// 开机瞬间读取A0电压,若超过1V则强制进入热点模式
int sensorValue = analogRead(A0);
float voltage = sensorValue * (3.3 / 1024.0);
Serial.print("开机A0电压: ");
Serial.print(voltage);
Serial.println("V");
if (voltage > 1.0) {
Serial.println("电压 > 1V,启动热点并进入WiFi管理页面");
if (oledInitialized) {
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_7x13_tf);
u8g2.setCursor(0, 20);
u8g2.print("Voltage >1V");
u8g2.setCursor(0, 40);
u8g2.print("Hotspot Mode");
u8g2.sendBuffer();
delay(1000);
}
// ---------- 启动热点和Web服务器(支持WiFi扫描) ----------
WiFi.mode(WIFI_AP_STA);
const char* apSSID = "ESP8266-WiFi";
const char* apPassword = "";
WiFi.softAP(apSSID, apPassword);
WiFi.disconnect();
Serial.print("热点已启动,SSID: ");
Serial.println(apSSID);
Serial.print("IP地址: ");
Serial.println(WiFi.softAPIP());
dnsServer.stop();
server.stop();
NTP.stop();
setupWebUpdate();
server.on("/", HTTP_GET, []() {
server.sendHeader("Location", "/wifi");
server.send(302, "text/plain", "");
});
server.begin();
if (oledInitialized) {
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_5x7_tf);
u8g2.setCursor(0, 10);
u8g2.print("SSID: ");
u8g2.print(apSSID);
u8g2.setCursor(0, 25);
u8g2.print("IP: ");
u8g2.print(WiFi.softAPIP().toString());
u8g2.sendBuffer();
}
while (true) {
server.handleClient();
ESP.wdtFeed();
delay(10);
}
}
还有其他隐藏功能
硬件清单(低成本复刻)
| 元件 | 数量 | 说明 | 参考价格 |
|---|---|---|---|
| ESP8266 | 1 | 4MB Flash | 14-28 元 |
| 1.3寸 OLED 屏 | 1 | SH1106 驱动,使用D3,D4 | 5-16 元 |
| LM35DZ 温度传感器 | 1 | TO-92 封装,监测温度 | 1-4 元 |
| 6x6x5mm 轻触按键(可选) | 1 | 普通轻触开关,其他也可以 | 0.5 元 |
| 10KΩ 电阻(可选) | 1 | 用于 A0 高电压触发 | 0.1 元 |
| 面包板(可选) | 1 | 可选,方便测试 | 5-10 元 |
| 杜邦线(可选) | 若干 | 母对母 | 3-5 元 |
| 总成本 | (最少) | 28.6元 |
主要模式:热点模式、WiFi破解模式、时钟模式
子功能:WiFi扫描、密码字典破解、优先网络连接、开放网络连接、WiFi凭证存储
显示功能:OLED显示(破解进度、时钟、温度、天气、蓝屏)
联网功能:NTP时间同步、自动更新检查、OTA更新、本地文件系统更新
Web管理功能:设备管理(断开、挂起、恢复)、NAT控制(WiFi扩大)、更新上传、高级设置、WiFi连接配置
硬件交互:按钮切换模式、A0电压检测(强制热点)
其他:内存监控、蓝屏重启、ESP8266_DNS连接(这个ESP8266_DNS来自另个ESP8266,以后再讲)
这次详细讲解如何复刻,保证小白也能轻松复刻
这里搞了个虚拟机
1、先准备数据线(充电线不行) 和 ESP8266 CH340/,再把ESP8266插进电脑
2、右键"此电脑" 点击 "管理"
3、点击"设备管理器"
4、点击"端口"
这里只有COM1,很不正常,通常是系统无法识别,下载回来"串口驱动.zip"(V15那帖子有)
再运行CH341.exe
点击"安装"
重新打开设备管理器,发现除了COM1还有COM4,说明成功了,只要有类似 USB ***CH340/343/341/210,后面带(COM3~10)就可以使用了
5、准备编程软件,推荐语言:C++,使用Mixly,这个Mixly支持图形化编程或者敲代码
6、运行
注意要点"Arduino ESP8266"
7、把2311行的源码复制进去
然后找到
注意点击COM1除外的端口,这里点击COM5
最后点击"上传"即可
官方下载链接:
https://pan.baidu.com/s/1EdBmAlYFzJ_2rULhKm2g3g?pwd=ny1n#list/path=%2F
官网:
https://mixly.cn
出现这个就表示成功了,到此,ESP8266 WiFi OLED时钟就做好了!
下期预告[doge]
附件什么固件,代码。源码都有
.bin .cpp .mix .ino .mil .txt
.txt文件是代码 .bin .ino是固件
必须的库:
U8g2lib:OLED 显示
ESP8266WiFi:WiFi 功能
ESP8266WebServer:Web 服务器
DNSServer:DNS 劫持
NtpClientLib:NTP 时间同步
ESP8266HTTPClient / ESP8266httpUpdate:HTTP 请求与 OTA 更新
SimpleTimer:定时任务
EEPROM:凭证存储
lwip/napt.h:NAT 功能(WiFi 扩大)

全部评论