面向 ESP32 的云端生态

开发 ESP32 所需的一切——都在一朵云里

从一块空白的 ESP32 到一台把数据发到你手机上的设备,一口气就能做完。用平实语言写脚本,而不是 C;不用工具链,不用自建服务器,不用重新构建。快到足以验证一个想法,简单到可以当作第一节课。

第一次通过 USB 从浏览器烧录。此后一切都走无线。

开发板、固件、云端、应用 一整套系统,你只需写脚本
R1BBIT 是什么

一套生态,四件工具,零粘合代码

R1BBIT 把一块 ESP32 开发板变成一台成品联网设备——不需要工具链,不需要自建服务器,也不用写一行 C。

它特别适合三件事:让产品快速做到第一个能用的版本;在真正投入之前先验证想法是否成立;学习电子与机器人技术——尤其适合从零开始的人。

目录里列的是我们逐块验证过的硬件,但整套生态几乎可以跑在任何 ESP32 上。

01

固件 + R1BBIT-BASIC

固件里带着一个解释器,所以板子运行的是一份纯文本文件,而不是编译好的二进制。它的 298 条命令涵盖引脚、传感器、显示屏、声音、摄像头和网络——没有 C,没有工具链,也不用编译。

298 条命令,6 个 ESP32 系列,15 个并行任务
02

网页 IDE

在浏览器里写,每条命令都有自动补全,还有边打字边发现错误的检查器。助手能替你写脚本或修脚本,现成示例库让你不必面对空白页。就连第一次烧录也在这里完成,用一根 USB 线。

自动补全,AI 助手,现成示例
03

R1BBIT 云端

开发板会自己通过加密通道连上来。读数被保存下来并画成图表,新的脚本和固件通过无线送达,每台设备都有一个你随时随地都能打开的控制台和文件管理器。

图表,远程控制台,无线更新
04

iOS 与 Android 应用

开发板发布的数值会变成手机上的一块磁贴;在那里拖动滑块,开发板就会响应。应用里还带着编辑器、控制台、文档和同一个助手——出问题时它还能给你打招呼。

App Store、Google Play、推送通知
greenhouse.bas
CONFIG——硬件部分,在脚本启动前生效
CONFIG
    PSRAM_SIZE 8
    PSRAM_TYPE OCTAL
    I2C_SDA  16
    I2C_SCL  15
    SPI_MOSI 11
    SPI_MISO 13
    SPI_CLK  12
    DISPLAY_DRIVER ILI9341
    DISPLAY_CS     10
    DISPLAY_DC     46
    DISPLAY_BL     45
    DISPLAY_WIDTH  320
    DISPLAY_HEIGHT 240
    TOUCH_DRIVER FT6x36
    TOUCH_INT    17
END_CONFIG
你的逻辑——由解释器执行
DISPLAY_INIT
DISPLAY_WIDGET(1, "label", 20, 24, 280, 36)
DISPLAY_WIDGET(2, "arc", 90, 76, 140, 140)

VAR T, F
VAR A[1]
DS1820_INIT(A, 1000)
VARS_PUBLISH(T, F)

WHILE(1)
    T = A[0]
    F = T * 9 / 5 + 32   ' to Fahrenheit
    UI_TEXT(1, "Temperature " + T + " C")
    UI_VALUE(2, T)
    IF T > 30 THEN SEND_NOTIFY("Greenhouse", "Too hot: " + T)
    PAUSE 1000
WEND
取自 ESP32-S3 气象站示例的真实 CONFIG 配置块。换掉这段配置,保留逻辑,就能在别的硬件上跑。
一个文件

硬件和逻辑写在同一个脚本里

  • CONFIG 说明接线 屏幕驱动、引脚、总线、编解码器、摄像头、SD 卡——184 条指令,一套语法。这段配置会在第一行逻辑运行之前被解析。
  • 两行就能换掉硬件 把 ILI9341 换成 ST7789:改掉驱动名和尺寸,脚本其余部分原封不动。
  • 出错永远不会把板子变砖 配置写错时脚本不会启动,并给出清楚的提示。固件和连接照旧。
  • 屏幕上和手机上的控件 DISPLAY_WIDGET 在设备上绘制;VARS_PUBLISH 每秒把同样的数值送到你的看板和手机应用。
脚本怎样到达开发板

烧录一次。此后再也不用碰数据线。

只烧录一次

网页烧录器通过 USB 从浏览器写入固件。不用工具链,也不用到处找驱动。

浏览器 + USB

编写

在网页 IDE 或手机应用里——带自动补全、就地显示的参数提示,以及边打字边校验参数类型的检查器。

网页 IDE,手机应用

发送到开发板

点击 Run,几秒钟脚本就到了开发板上:通过空中传输、走加密链路,无需任何数据线。脚本也可以来自 SD 卡或串口控制台。开发板把它保存在 Flash 中,AUTOSTART 会在下次上电时再次运行它。

通过云端SD_IMPORTAUTOSTART

看着它运行

现在你能看到它在干活:读数大约每秒一次送到面板和你的手机,终端里显示脚本打印的一切。哪里不对,改一行再发一次就是了。与此同时开发板还在不断获得新命令,因为固件升级同样通过空中传输送达。

VARS_PUBLISH终端空中升级
为什么选 R1BBIT

专为通常最难受的那部分而做

如果你是从 Arduino IDE 进入 ESP32 的,你清楚每一次改动的代价:重新编译、插上数据线、重新烧录,来回折腾直到逻辑稳定。BlynkArduino Cloud 给了你面板和云端,但底下的逻辑仍然是 C++,每改一次都要重新构建、重新上传。R1BBIT 把控制权留给你,同时去掉了重新构建:逻辑是开发板读取的一个文本脚本,而面板不过是它发布的那些变量。

不用重新编译

改逻辑,不改固件

你的程序是一份文本文件,板子读它、跑它。在浏览器里改一行,发到板子上,立刻生效——固件本身从不改变。连接线也是用文字描述的:换屏幕或者把传感器挪到别的引脚,是一次编辑,而不是一次重新编译。

  • 第一次通过 USB 从浏览器烧录——没有工具链,也不用装 IDE
  • 脚本运行在隔离的解释器里:出错只会停下脚本,板子仍然在线
  • 固件更新通过无线送达,采用 AES-256-GCM 加密

用 Arduino IDE 时,每一次改动都要走一遍编译加插线重烧的循环。

改逻辑,不改固件
不用自己跑服务器

云端已经在跑了

没有什么要安装,也没有什么要托管。设备出厂就连上 cloud.r1bbit.com,遥测落进时序数据库并自动画成图表,每台设备都有远程终端和文件管理器。需要互联网上的数据?HTTP_GET 直接从板子取回来——中间不隔任何东西。

  • 读数每秒通过加密通道上传一次,并为你保存下来
  • 你名下的每块板子都有控制台、文件管理器和固件更新
  • 板子能自己去任何网络接口取数据——中间不需要你架任何东西

用 Blynk 或 Arduino Cloud,面板是现成的,但背后的 sketch 依然是 C++,每改一次都要重新构建并上传。

云端已经在跑了
用平实的话说出来

懂这门语言的助手

把设备该做的事描述出来,内置助手就会为它写出 R1BBIT-BASIC。它看得到你已有的脚本,所以能在上面继续写、解释某条命令,或者帮你找出怎么也找不到的那个错误。网页 IDE 和手机应用里都有它。

  • 按描述生成、修改已有脚本、修正错误、讲解语言
  • 答案在送到你手上之前,会先与真实的命令手册核对
  • 凭空编造的写法会被标出来,而不是当成可用代码交给你

通用聊天机器人会毫不迟疑地编出这门语言从来没有过的命令。

懂这门语言的助手
不需要后端的界面

既在屏幕上,也在口袋里

27 种控件直接绘制在设备自己的屏幕上:图表、仪表盘、滑块,甚至 OpenStreetMap 地图块。发布一个变量,它就成为手机应用里的一块磁贴;在那里拖动滑块,开发板上的 ON_VAR 就会触发。推送通知只需一条命令。

  • 27 种屏幕元素,从标签到图表或仪表盘
  • iOS 与 Android 应用:磁贴直接绑定开发板发布的数值
  • 一条命令即可推送通知,应用关闭时也能收到

实际上只有一步:在手机应用里添加一个组件并指定一个变量,设备就会自动订阅它并开始发送数据。

既在屏幕上,也在口袋里

可以放心试错

解释器与固件相互隔离。运行时出错只会停下脚本;板子保持连接,并通过无线接收你的修正。

语言本身支持多任务

除主循环外最多 15 个后台任务,共享变量,协作式调度——不用写 RTOS 代码。

蜂窝网络备份

接上一个 SIM 模块,Wi-Fi 断线时遥测、终端和脚本下发照样不中断。

音频、摄像头、视频房间

播放 MP3 和音轨音乐、录音、做 FFT、把摄像头画面推到浏览器或另一块板子。

5 种语言的文档

16 个章节,每条命令都附参数说明和示例,提供英语、俄语、西班牙语、法语和德语版本。

模板与社区

IDE 内置的官方模板库,以及一个分享脚本和接线方案的论坛。

编辑器内部

整个项目都在一个标签页里

嵌入式开发很少只是写代码。文件要传到板子上,图片要转成屏幕真正读得懂的格式,字体要塞进 Flash——还有很多东西根本不该落到板子上。这些都在与编辑器同一个浏览器标签页里:不用另装工具,也不用来回插拔 SD 卡。

远程文件系统

无论你在哪,都能看到板子上的文件

打开设备文件对话框,你看到的就是某块板子的 Flash,而它可能在另一栋楼里。可以浏览、把文件拖进窗口上传、把文件取回来、重命名、删除、新建目录——还能把正在编辑的脚本直接存到设备上。剩余空间的指示条会告诉你,在塞进一个大字体或一段声音之前还剩多少。

  • 内部 Flash 与 SD 卡在同一个对话框里
  • 把文件拖进窗口即可上传;任何文件都能下载或删除
  • 不离开编辑器就能把当前脚本保存到板子上
  • 这一切都走云端连接——不用数据线,也不用读卡器
/flash/sdUploadDownloadNew folderFree space
无论你在哪,都能看到板子上的文件
存放在服务器上的素材

板子永远不必存下来的图片和声音

一块开发板的 Flash 不到一兆字节——一张照片就能吃掉一半。所以把素材留在云端:文件上传一次,起个短名字,在脚本里写上这个名字并加个 @ 前缀。脚本需要时开发板才去取,按脚本要求的尺寸取,而且什么都不留存。

  • 显示一张图:DISPLAY_WIDGET(1, "image", 0, 0, 320, 240, "@logo")
  • 用 UI_IMAGE(1, "@frame2") 换到下一帧——做动画完全不用动 Flash
  • 用 PLAY_AUDIO("@intro") 播放声音或电台,用 VIDEO_PLAY("@clip") 播放视频
  • 在服务器上换掉那张图,所有板子显示的都是新的——什么都不用重烧
图片、音频、视频、字体、电台流、2 GB 存储空间
板子永远不必存下来的图片和声音
工具本身

不是一串名字,而是真能干活的编辑器

画出来,再变成代码

画出来,再变成代码

打开一张图,裁剪、涂改,选好屏幕需要的色深——结果既可以作为数组贴进脚本,也可以作为文件直接发到板子上。下方的计数器会在你动手前就告诉你它要花多少字节。

裁剪与重绘,RGB565 与单色,实时预览,字节计数,发送到开发板

你在这里做出来的东西,要么直接送到板子上,要么留在服务器上,让脚本按名字去取。

iOS 与 Android

整间工坊装进口袋

手机应用不是最后加上去的遥控器,而是和浏览器一样完整的工作流。搭建面板、编写和修改脚本、在开发板和手机之间搬运文件、打开终端、查看实时数值、阅读文档、向助手提问。登录之后,账号下的所有设备都已经在那里。

面板就在这里搭 直接在应用里创建和编辑组件:添加一个卡片,指定它显示的变量,选择数值、仪表盘、曲线图、开关或滑块,再拖到合适的位置。这套布局与设备和网页面板共用。
编写和修改脚本 手机上的正经编辑器:语法着色、自动补全、每个参数的提示,以及与浏览器相同的错误检查。打开开发板上已有的脚本,改一行,发回去,再从工具栏启动。
开发板上的文件 在应用里浏览设备存储——把脚本、日志或记录的数据文件下载到手机,也可以把文件上传回开发板。
通向开发板的终端 与浏览器里同样的控制台,经由云端。发一条命令、看输出、重启脚本——只要有信号,在哪都行。
有历史,不只是最新值 每一个发布过的数值都会保留。把曲线图全屏打开往回翻,时间范围从实时一直到三个月。
AI 助手 让它按描述写一个脚本、修改你已有的脚本,或者解释某条命令。回答会先与真实的命令手册核对。
推送通知 脚本里加一行,手机就会震动:漏水、开门、温度越限。即便应用已经关闭,通知照样送达。
离线文档 完整的命令手册随应用一起带着走,五种语言,可搜索,不需要联网。
按键对讲与视频 带上你的开发板加入一个语音房间,或者观看某台设备的摄像头画面——应用同时是这两件事的客户端。
R1BBIT app — script editor with syntax highlighting 编辑器
R1BBIT app — live widgets and charts from a device 控件
R1BBIT app — terminal streaming telemetry from the board 终端
声音与视频

三行就能写完的多媒体

在单片机上做音视频,通常意味着编解码器、缓冲区和一周的数据手册。在这里它们就是命令。收音机、摄像头画面、开发板与手机之间的对讲通道——每一样都只需几行,流量由云端承担。

播放音乐和电台

让命令指向 Flash 里的文件、服务器上保存的文件,或者直接指向一个网络电台——板子会解码并播放。它还能告诉你此刻正在播什么,因为它读得到电台的曲目信息。

radio.bas
VAR title$
PLAY_AUDIO("https://mangoradio.stream.laut.fm/mangoradio")

WHILE 1
    AUDIO_TITLE(title$)
    PRINT "Now playing: " + title$
    PAUSE 5000
WEND
MP3 与 WAV,网络电台,音轨音乐,5 段均衡器,录音

设备之间的对讲机

把几块板子放进同一个房间,它们就能互相听见。按住说话,松开收听。手机也能进同一个房间,于是设备和人落在同一条通道上——工坊、大门、地块尽头的温室,都用得上。

walkie.bas
CONFIG
    IN1 4
    IN1_PULL UP
END_CONFIG

JOIN_AUDIO_ROOM("myteam", 16)

WHILE 1
    IF IN1 = 0 THEN PTT(1)
    IF IN1 = 1 THEN PTT(0)
    PAUSE 50
WEND
Opus 语音,按下说话,多块板子同时在线,手机也能进同一个房间

摄像头画面送到手机——或者送到另一块板子

开一个视频房间,摄像头就上线了。可以在手机应用或浏览器里观看,另一块带屏幕的板子也能以观众身份进入同一个房间——门铃把自己显示在厨房的面板上,中间不需要你自己的服务器。

camera.bas
CAM_INIT
CAM_RESOLUTION(320, 240)
START_VIDEO_ROOM("frontdoor", 10)

// on the board with the screen:
// JOIN_VIDEO_ROOM("frontdoor")
摄像头画面,在应用中观看,在浏览器中观看,板到板传输

语音和视频走低延迟通道,被阻断时会自动切换备用路径。声音这边还提供音符与旋律播放、音轨模块、WAV 和 MP3 录音,以及实时频谱分析。

全部音频与视频命令
支持的设备

几乎任意一块 ESP32

固件面向六个目标编译:ESP32-S3、ESP32-P4、ESP32-C6、ESP32-C3、经典 ESP32,以及不带 PSRAM 的 S3。下面这些开发板是我们亲手验证过的。带一块同系列的开发板来,它照样有自己的 CONFIG 配置块。

ESP32-S3

7 boards

参考平台——新功能最先出现在这里

  • SPI 显示屏与电容触摸
  • DVP 摄像头、音频、FFT、音轨音乐
  • HTTP 数据源、蜂窝网络备份
  • 没有 MIPI-DSI / CSI,也没有以太网

ESP32-P4

6 boards

The big-screen one

  • 最高 1280 像素的 MIPI-DSI 面板、CSI 摄像头
  • 以太网、H.264 视频查看器、OpenStreetMap
  • 32 MB PSRAM——放得下复杂界面
  • Wi-Fi 经由 C6 协处理器——轻度睡眠会断开链路

ESP32-C6

5 boards

极小体积里的 Wi-Fi 6

  • OLED / TFT 显示屏、传感器、PWM、UART
  • 音频播放与网络电台
  • 深度睡眠与 GPIO 唤醒
  • 不支持 HTTP 数据源,没有电容触摸引脚

ESP32-C3

2 boards

The smallest and cheapest

  • OLED / TFT 显示屏、传感器、PWM、UART
  • 深度睡眠与 GPIO 唤醒
  • 云端遥测与远程终端
  • 没有音频和 FFT,不支持 HTTP 数据源,也没有触摸引脚

也为经典 ESP32(D0WD)和不带 PSRAM 的 ESP32-S3 编译:语言相同,云端相同,外设少一些。

面向企业

从一个原型到量产产品

这套生态今天就可以用于商业项目。在 ESP32 上做出一台设备,桌上第一块板所用的固件、云端和应用,同样能撑起现场的一百台。项目不再只是爱好的那一天,没有任何东西需要重写。

随手就能买到的硬件

R1BBIT 跑在普通分销商成批供货的标准 ESP32 模组上。从一台到一千台是采购问题,不是重新设计,而且同一个脚本在每一台上都能跑。

修的是整个机群,不是一台机器

改好的脚本或新构建的固件通过空中升级一次发给所有开发板。没有人需要带着笔记本和数据线跑现场。

遥测数据已经存好

每台设备都把读数写入云端,按设备分开保存,随时可以画出几个月前的曲线。不用写后端,也不用运维数据库。

你的客户直接拿到应用

iOS 和 Android 应用已经上架、随时可用。设备归属于机主的账号,它的组件会自动出现在那里——没人需要再做第二个应用。

每块板都有归属

设备绑定到账号,它与云端交换的一切——遥测、命令、脚本和固件——都走加密链路。

也可以带自己的板子来

目录里是我们逐块验证过的硬件,但固件可以编译到六个 ESP32 目标上,所以你自研的板子同样能加入这套生态。

制冷设备与冷库的运行统计、楼宇采暖与空调、车间和温室的监测——背后都是同一套系统。

R1BBIT 商业方案
用于教学

第一块一节课就能跑起来的开发板

初学者与单片机相处的第一天,大半时间都花在与编程无关的事上:装环境、找驱动、在菜单里选板子、等编译。R1BBIT 把这一天去掉了。一个浏览器、一块便宜的开发板和一根 USB 线——这一节课的前半段学生就在写逻辑,而不是等到第三节课。

三步:从闪烁的 LED 到手机上的曲线图

1
第一个脚本

先让它动起来

blink.bas
CONFIG
  OUT1 2
END_CONFIG

WHILE 1
  OUT1 1
  PAUSE 500
  OUT1 0
  PAUSE 500
WEND
八行,板子就有了回应。什么都没装,也没有编译——脚本是通过无线送过去的。
学到什么
程序是一串顺序,循环会重复执行,时间以毫秒计
2
加上传感器

读取温度和湿度

room.bas
CONFIG
  I2C_SCL 7
  I2C_SDA 6
END_CONFIG

VAR T, H
SI7021_INIT(T, H, 2000)

WHILE 1
  PRINT "temp " + T + "   hum " + H
  PAUSE 2000
WEND
传感器每两秒自己往 T 和 H 里写一次。学生只需决定拿这些数字做什么。
学到什么
变量,传感器来填满它们,读取输出
3
加上手机

把警报发到手机上

alarm.bas
CONFIG
  I2C_SCL 7
  I2C_SDA 6
END_CONFIG

VAR T, H
SI7021_INIT(T, H, 2000)
VARS_PUBLISH(T, H)

WHILE 1
  IF T > 27 THEN
    SEND_NOTIFY("Too warm", STR$(T) + " C")
  ENDIF
  PAUSE 60000
WEND
一行让图表出现在应用里,另一行让手机响起来。没有人写过后端、数据库或接口。
学到什么
一个条件判断,一条推送到手机,一张不需要服务器的图表

这里的每个脚本都是完整的程序——没有隐藏的配置文件,也没有工程需要设置。

什么都不用装

一切都在浏览器里进行:没有管理员权限的校园电脑上、笔记本上,甚至平板上。不用下载,不用授权,也不会出现只在教室某一台机器上能跑的版本。

读得懂的语言

命令本身就说明了它在做什么:DHT_INIT、PRINT、PAUSE、IF … THEN。学生读一行就懂一行,于是课堂可以讲循环和条件,而不是分号和花括号。

出错不需要付出代价

脚本运行在隔离的解释器里。写错一行会让它停下并说明原因;板子照常工作,一秒之后就能接受修正。硬件不会变砖,课也不会白上。

学校负担得起的硬件

支持的最小芯片只要几美元,一块板子加一个传感器就已经是个能跑的项目。给整个班配一套,不需要专门申请经费。

一个班真正需要的东西

  • 教室里任意一台机器上的浏览器,一块几美元的 ESP32 开发板,第一次烧录用的一根 USB 线,一颗 LED 或一个传感器作为对象

不需要管理员权限,不需要授权,也没有需要谁去维护的机房镜像。

适合用在哪里
STEM 与电子课程,机器人社团,用传感器做科学实验,课后与暑期项目,黑客松与创客日,毕业设计与结课项目
面向教育工作者

文档提供英语、俄语、西班牙语、法语和德语版本。

价格

一次付费即可开始,包含三个月

一块开发板只需接入云端一次,这次激活自带三个月的 Starter。之后你可以选择套餐,也可以留在免费版——开发板照样工作。

$9.99 一次性,按板计

激活一块开发板

按板一次性支付,不是按月。激活把开发板绑定到你的账号,并开通三个月的 Starter 套餐——编辑器、云端、手机应用和助手,全都包含在内。

激活一块开发板

之后呢

Free

免费

  • 3 台设备
  • 3 天历史数据
  • 每月 100 条通知
  • AI 助手
  • 读数最快每 60 秒一次
选择

Starter

$6.99 / 月

或每年 $69.99

  • 5 台设备
  • 90 天历史数据
  • 每月 1,000 条通知
  • AI 助手
  • 读数最快每 60 秒一次
选择

Professional

$19.99 / 月

或每年 $199

  • 15 台设备
  • 365 天历史数据
  • 每月 5,000 条通知
  • AI 助手
  • 读数最快每 20 秒一次
选择

价格按账号计,单位美元,直接取自我们的计费系统。按年付费比十二次月付更便宜。免费版完全不需要绑卡。

准备开工了吗?

打开云端、翻翻文档,或者到论坛提问:第一块板子花的是一个晚上,不是一个周末。

R1BBIT 云端

网页 IDE、模板库、看板,以及通向每块板子的终端——都在浏览器里。

打开云端

文档

16 个章节,每条命令都附参数说明和示例,共五种语言。

阅读文档

社区

在论坛上提问,或者分享一段脚本、一张接线图。

加入论坛