文章介绍了一个基于ESP8266和赛博朋克UI的Copilot账单监控台,实时显示AI Credits的使用情况。该项目通过Go proxy简化数据获取,用户可轻松查看每日和月度消耗,减轻账单焦虑。项目开源,适合对硬件和编程感兴趣的用户。
使用ESP8266和ESP32构建物联网传感器可以从基本草图开始或使用ESPHome等集成系统。作者通过将BME680传感器集成到ESPHome和Home Assistant,成功在两小时内显示气压、湿度和温度。文章总结了连接BME680传感器的硬件、接线和配置步骤,最终在Home Assistant仪表板上展示数据。
由于ESP8266芯片的可靠性问题,采用双芯片设计以提高稳定性。故障模块无法启动,分析发现eFuse数据损坏,可能由静电或高温引起。计划更换为ESP-07S,以增强无线信号和抗干扰能力。
通过CDN引入外部包和部分导入,优化了VUE的js包大小,使vendor.js文件从6.8M降至2.0M,页面加载时间从15秒缩短至3秒,显著提升了ESP8266可编程控制器的远程管理系统的用户体验。
在JLC在线系统下单制作30个PCB和SMT样品,总费用668.51元,单件成本约13元,预计售价50元,需进一步研究降低成本。
开发了一种简单的可编程控制器,具有两个无源输入和输出。计划通过在线PCBA服务制造50个原型样品。设计包括使用10A继电器和双向光耦隔离输入,支持高压控制,确保高低压隔离。使用市场外壳并设计外部天线接口,预留恢复出厂设置按钮以防忘记Wi-Fi密码。
基于ESP8266的可编程控制器内置网页中文编程,拥有两个数字输入和两个继电器输出。代码已完成,正在优化和测试。运行应用后,ESP8266剩余约6K RAM。Flash空间分配为:512kB用于网页,256kB用于用户程序,4kB用于配置数据,4kB用于引导程序,1MB用于应用程序,1MB用于固件升级,总计2.7MB。ESP8266-07S的4MB Flash空间仍有剩余。
通过调整任务优先级、优化数据处理、解决通信崩溃问题等措施,ESP8266控制器的TCP通信速度提升至755kb/s。下载576kByte数据耗时7.7秒,仍有优化空间,如合并TCP响应包。性能接近市售模块水平。
为解决ESP8266在快速数据传输时的崩溃问题,优化了LWIP配置和SPI闪存读写,调整了线程优先级,并改进了TCP数据包处理。通过使用LWIP_TCPIP_CORE_LOCKING避免函数重入,成功解决了崩溃问题,确保了TCP通信速度。
优化ESP8266的FreeRTOS任务调度,提高网页下载速度和实时处理能力。通过自动循环测试解决TCP拆包和粘包问题,改进Flash读写,将写入时间从10ms降至3.8ms,读取时间从3ms降至0.5ms。调整任务优先级,提升控制逻辑优先级,网页下载时间从40秒缩短至28秒。
在调试ESP8266控制器时,遇到TCP粘包问题。由于TCP是流式传输,可能导致数据接收错误。解决方法包括固定长度、使用分隔符或自定义帧格式。最终通过lwip栈的pbuf缓冲区暂存数据,未以\r\n\r\n结尾且未超限时不调用tcp_recved,问题解决。
在工业和农业自动化中,RTC功能很重要,如定时浇水。STM32F103的RTC模块耗电低,可用小电池维持208天。ESP8266无RTC,但可通过互联网校准时间。软件设计RTC模块可用mktime和localtime函数转换时间。服务器用心跳消息校准时间,确保控制准确。部分控制器可在断电后从FLASH读取时间,但FLASH擦写次数有限。
在设计简单可编程控制器的软件架构时,需要支持同时作为TCP服务器和客户端。TCP服务器处理网页下载、第三方通信和Modbus-TCP协议,客户端用于远程访问云服务器。ESP8266资源有限,支持四个客户端连接,控制5路TCP/IP数据流,确保PLC任务的实时性。主要任务包括LWIP和主任务,LWIP优先级低于主任务,主任务每10ms调度一次。数据接收后存入缓冲区,处理粘包和HTTP协议数据,主任务轮流处理5个连接,确保公平性。
本地脚本控制器功能已完成,开始实现远程功能。通过ESP8266的SDK实现TCP服务器和客户端,设计HTTP服务器与浏览器交互。使用HTML、JS和CSS设计网页,结合C语言实现网页编程和状态检查。云端用Linux服务器和Swoole作为通信网关,实现远程控制。WebSocket用于实时状态推送,Redis和MySQL用于数据存储,实现异常报警。
ESP8266的SDK提供了esp_wifi_scan_start函数用于Wi-Fi AP扫描,支持阻塞和非阻塞调用。阻塞调用可能影响实时性,建议创建新任务进行扫描,并分配足够的堆栈空间。由于ESP8266内存有限,推荐使用非阻塞调用结合事件监听来优化内存使用。
物联网设备支持远程连接和OTA升级,通过ESP8266的FLASH存储两个固件,利用系统函数判断当前固件并在另一存储区写入新固件。通过crc32校验确保数据完整性。软件通过TCP连接推送固件,未来可移植到服务器,用户可通过网页更新。不同固件区域需生成不同固件以确保设备正常启动。
本文介绍了使用Arduino进行WiFi智能配置的代码,核心功能包括初始化WiFi、存储和加载配网信息。通过smartConfig,设备可自动连接指定WiFi并保存SSID和密码,代码还包含重启机制以防连接失败。
ElegantOTA是一个快速简单的OTA程序,支持ESP8266、ESP32和RP2040。使用ElegantOTA可以轻松实现OTA升级,无需学习HTML/CSS/JS。只需引入所需库并在代码中加入几行代码即可。详细使用教程和文档可在GitHub和官方网站上找到。
文章介绍了一种使用UDP广播获取ESP8266的IP地址的方法。ESP8266开启一个UDP服务器,设置固定端口,然后使用小程序发送UDP广播到指定IP和端口。ESP8266接收到广播消息后,将自己的IP地址发送给客户端。通过这种方法可以实现获取ESP8266的IP地址。
本文介绍了使用ESP8266制作高颜值RGB时钟的项目,具备自动亮度控制和温度传感器功能。详细介绍了制作过程和代码。
完成下面两步后,将自动完成登录并继续当前操作。