首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >扒了一下源码,ESP8285接入App Inventor有4种玩法,第3种最香

扒了一下源码,ESP8285接入App Inventor有4种玩法,第3种最香

原创
作者头像
用户10956490
发布2026-05-27 23:00:06
发布2026-05-27 23:00:06
160
举报

ESP8285这个芯片怎么接入App Inventor 2?我翻了MIT的源码和我们fun123的30多个扩展,把所有可行路径都摸了一遍。先说结论:不用开发新扩展,现有组件就能用。

ESP8285是什么?和ESP8266啥关系?

ESP8285是乐鑫(Espressif)出的WiFi芯片,本质上就是ESP8266的内置Flash版本。CPU一样(Tensilica L106 80/160MHz),WiFi一样(802.11 b/g/n),GPIO一样(17个),区别就一个:ESP8285把1MB Flash直接塞进芯片里了,省了外部SPI Flash。

这意味着ESP8266的代码在ESP8285上100%能跑,Arduino ESP8266 Core和ESP-IDF都直接兼容。

源码里有什么现成组件?

我扫了一遍 com.google.appinventor.components.runtimecn.fun123 下的所有源码:

MIT官方内置组件:

  • Web组件 — HTTP GET/POST,支持JSON解析
  • BluetoothClient — 蓝牙SPP串口
  • Serial — USB串口(基于Physicaloid库,代码里直接写了支持Arduino/ESP8266)

fun123自研扩展:

  • ClientSocketAI2Ext — TCP Socket客户端,异步连接+后台数据监听
  • FTPClient — FTP文件传输

关键发现:Serial.java是唯一提到ESP8266/ESP8285的运行时文件。但没有专门的IoT/ESP扩展组件

方案1:HTTP API(最简单,零开发)

ESP8285上跑个HTTP Server,App Inventor用内置Web组件直接调。

ESP8285端(Arduino):

代码语言:cpp
复制
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
ESP8266WebServer server(80);

void setup() {
  WiFi.begin("SSID", "PASSWORD");
  server.on("/led", HTTP_GET, []() {
    int state = server.arg("state").toInt();
    digitalWrite(LED_PIN, state);
    server.send(200, "text/plain", "OK");
  });
  server.begin();
}

App Inventor端:拉一个Web组件,Url填 http://192.168.1.xxx/led?state=1,调用 Web1.Get(),完事。

优点:零开发量,内置组件直接搞定

缺点:手机主动轮询,不能实时推送

方案2:TCP Socket(已有扩展,实时双向)

fun123已经有 ClientSocketAI2Ext 扩展,源码在 cn/fun123/ClientSocketAI2Ext/,支持:

  • 异步TCP连接(AsynchUtil后台线程)
  • 文本/二进制数据收发
  • 后台持续监听+事件回调

ESP8285端跑TCP Server,App端用这个扩展直连。实时双向通信,零新开发

缺点:ESP8285配网后才能知道IP,每次换网络要重新设置。

方案3:MQTT(生产环境最推荐)

通过MQTT Broker中转,ESP8285和App Inventor都连同一个Broker。

ESP8285端用PubSubClient库(Arduino标准库),App端用fun123已有的UrsPahoMqttClient组件或Web组件调MQTT的HTTP API。

优点:

  • 不依赖直连IP,设备在哪个网都行
  • 天然支持一对多(一个传感器多个手机看)
  • 社区生态最成熟

这个方案做产品最靠谱。

方案4:蓝牙串口(备选)

ESP8285没有蓝牙,但UART可以接HC-05/HC-06蓝牙模块。App Inventor内置BluetoothClient组件直连。适用于不需要WiFi、近距离控制的场景。

四种方案对比

方案

开发量

实时性

易用性

推荐场景

HTTP API

轮询

快速验证

TCP Socket

零(已有扩展)

实时

局域网控制

MQTT

小量适配

实时

生产环境

专用扩展

较大

实时

极高

长期投入

要不要开发专用ESP8285扩展?

建议做,但不急。 现有方案已经能覆盖大部分场景。专用扩展的价值在于:

  1. 设备自动发现 — mDNS/SSDP,不用手动填IP
  2. 一键配网 — SmartConfig,免去串口配网
  3. GPIO积木化 — DigitalWrite/DigitalRead变成拖积木
  4. OTA推送 — App端直接更新ESP8285固件

扩展设计方案:属性(DeviceIP/Port/Connected) + 方法(Connect/DigitalWrite/AnalogRead/ScanDevices) + 事件(DataReceived/PinChanged/DeviceFound)

建议路线

  1. Phase 1(立即):Web组件 + HTTP Server验证场景
  2. Phase 2(1-2天):ClientSocketAI2Ext做TCP双向通信Demo
  3. Phase 3(1-2周):开发ESP8285专用扩展

💡 觉得有帮助就点个赞吧~

💬 有问题欢迎在评论区交流。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ESP8285是什么?和ESP8266啥关系?
  • 源码里有什么现成组件?
  • 方案1:HTTP API(最简单,零开发)
  • 方案2:TCP Socket(已有扩展,实时双向)
  • 方案3:MQTT(生产环境最推荐)
  • 方案4:蓝牙串口(备选)
  • 四种方案对比
  • 要不要开发专用ESP8285扩展?
  • 建议路线
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档