ZH
云端
面向 ESP32 的云端生态

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

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

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

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

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

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

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

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

01

固件 + R1BBIT-BASIC

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

298 commands6 ESP32 families15 parallel tasks
02

网页 IDE

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

AutocompleteAI 助手Ready examples
03

R1BBIT 云端

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

ChartsRemote consoleWireless updates
04

iOS 与 Android 应用

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

App StoreGoogle 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 说明接线Display driver, pins, buses, codec, camera, SD card — 184 directives, one syntax. The block is read before the script starts, so the hardware is ready by the first line of logic.
  • 两行就能换掉硬件Replace an ILI9341 with an ST7789: change the driver and the size, keep the rest of the script. Moving a sensor to other pins is one number.
  • 出错永远不会把板子变砖A wrong CONFIG stops the script from starting with a clear message. The firmware and the cloud link stay up, so the fix goes out over the air.
  • The dashboard comes freeVARS_PUBLISH makes a variable visible in the cloud and on the phone. No API to write, no endpoint to register — the value is simply there.

只烧录一次

The web flasher writes the firmware from the browser over USB. No toolchain, no drivers to hunt down, no IDE to install.

浏览器 + USB

编写

In the web IDE or the mobile app — with autocomplete, inline parameter hints and a linter that catches mistakes before the board sees them.

网页 IDEMobile app

发送到开发板

Press Run and the script is on the board in seconds — over the air, over an encrypted link. From an SD card or on boot, if you prefer.

Over the cloudSD_IMPORTAUTOSTART

看着它运行

Now you can see it working: readings reach the dashboard and your phone about once a second, and the console answers from wherever the board is.

VARS_PUBLISHCharts终端
为什么选 R1BBIT

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

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

不用重新编译

改逻辑,不改固件

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

  • First flash from the browser over USB — no toolchain, no IDE to install
  • Scripts run in an isolated interpreter: a bug stops the script, the board stays online
  • Firmware updates arrive over the air, encrypted with AES-256-GCM

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

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

云端已经在跑了

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

  • Readings go up once a second over an encrypted channel and are kept for you
  • A console, a file browser and firmware updates for every board you own
  • The board can fetch data from any web API by itself — nothing to host in between

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

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

懂这门语言的助手

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

  • Write from a description, change an existing script, fix errors, explain the language
  • Answers are checked against the real command reference before they reach you
  • Invented constructs are flagged instead of quietly handed over as working code

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

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

既在屏幕上,也在口袋里

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

  • 27 kinds of on-screen element, from a label to a chart or a gauge
  • iOS and Android apps — tiles bound to the values your board publishes
  • One command sends a push notification, even with the app closed

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

既在屏幕上,也在口袋里

可以放心试错

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

语言本身支持多任务

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

蜂窝网络备份

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

音频、摄像头、视频房间

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

编辑器内部

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

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

远程文件系统

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

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

  • Internal flash and an SD card in the same dialog
  • Drag a file into the window to upload; download or delete any file back
  • Save the open script to the board without leaving the editor
  • It all rides the cloud connection — no cable, no card reader
/flash/sdUploadDownloadNew folderFree space
无论你在哪,都能看到板子上的文件
存放在服务器上的素材

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

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

  • Show a picture: DISPLAY_WIDGET(1, "image", 0, 0, 320, 240, "@logo")
  • Swap it for the next frame with UI_IMAGE(1, "@frame2") — animation without touching flash
  • Play sound or a radio stream with PLAY_AUDIO("@intro"), video with VIDEO_PLAY("@clip")
  • Change the picture on the server and every board shows the new one — nothing to reflash
ImagesAudio视频字体Radio streams2 GB of storage
板子永远不必存下来的图片和声音
工具本身

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

画出来,再变成代码

画出来,再变成代码

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

Crop and redrawRGB565 and monoLive previewByte count发送到开发板
只留下用得到的字符

只留下用得到的字符

载入任意 TTF 字体,挑选要保留的字符范围,再逐像素手工修好那个别扭的字形。下方那行会统计它将占用的内存——当其中大部分是空白时还会提醒你,而这正是字体塞不下的常见原因。

TTFOTFWOFFPick character rangesPixel-level editingMemory estimate
亲手排出这块屏幕

亲手排出这块屏幕

把画布设成你屏幕的尺寸,然后把标签、按钮、滑块、仪表盘、图表和列表拖上去,在网格上排好。按一下按钮,就得到画出这块屏幕的脚本——它还能反过来读取已有脚本,所以布局以后还能再改。

25 element typesSnap to gridGenerate the scriptRead a script back
芯片音乐,一个音符一个音符地做

芯片音乐,一个音符一个音符地做

音轨模块在浏览器里和在板子上一样能放。打开一个,你会看到带全部音符和效果的音序网格、通道列表和所有采样——在这里改好,同一个文件就能从你的脚本里放出来。

MODS3MXMITPattern gridPiano rollSamples to WAV
一帧一帧,直到只剩一位

一帧一帧,直到只剩一位

一段视频会变成一条可以逐帧编辑的胶片:在某一帧上涂画、复制它、剪掉一段。然后压缩到小屏幕吃得下的程度:带抖动的一位黑白,或者压缩后的彩色。

Per-frame editingTrim and cut1-bit with ditheringFrame rate发送到开发板
剪短、压小、放出来

剪短、压小、放出来

把一段音频拖进来就能看到波形:选一段、剪掉、只留需要的部分。然后选码率,下面那行会提前告诉你代价——一首两分半的曲子从 15 MB 降到 1.3 MB,小到可以直接存在板子上。

WaveformTrim and cutMP3 and WAVMono downmixSize before and after

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

iOS 与 Android

整间工坊装进口袋

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

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

三行就能写完的多媒体

Audio and video on a microcontroller usually mean codecs, buffers and a week of reading datasheets. Here they are commands: play a station, join a voice room, start a camera. The firmware carries the decoders, the cloud carries the channel.

播放音乐和电台

让命令指向 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 and WAVInternet radioTracker music5-band equaliserRecording

设备之间的对讲机

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

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 voicePress to talkSeveral boards at oncePhones in the same room

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

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

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

// on the board with the screen:
// JOIN_VIDEO_ROOM("frontdoor")
Camera streamWatch in the appWatch in a browserBoard-to-board

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

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

几乎任意一块 ESP32

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

ESP32-S3

9 boards

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

  • SPI displays and capacitive touch
  • DVP camera, audio, FFT, tracker music
  • HTTP feeds, cellular fallback
  • 没有 MIPI-DSI / CSI,也没有以太网

ESP32-P4

6 boards

The big-screen one

  • MIPI-DSI panels up to 1280 px, CSI cameras
  • Ethernet, H.264 video viewer, OpenStreetMap
  • 32 MB PSRAM — room for large UIs
  • Wi-Fi 经由 C6 协处理器——轻度睡眠会断开链路

ESP32-C6

5 boards

极小体积里的 Wi-Fi 6

  • OLED / TFT displays, sensors, PWM, UART
  • Audio playback and internet radio
  • Deep sleep and wake on GPIO
  • 不支持 HTTP 数据源,没有电容触摸引脚

ESP32-C3

2 boards

The smallest and cheapest

  • OLED / TFT displays, sensors, PWM, UART
  • Deep sleep and wake on GPIO
  • Cloud telemetry and remote terminal
  • 没有音频和 FFT,不支持 HTTP 数据源,也没有触摸引脚

Also builds for the classic ESP32 (D0WD) and the ESP32-S3 without PSRAM — same language, smaller set of commands.

面向企业

从一个原型到量产产品

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

随手就能买到的硬件

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

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

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

遥测数据已经存好

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

你的客户直接拿到应用

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

每块板都有归属

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

也可以带自己的板子来

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

Refrigeration and cold-store statistics, building heating and air conditioning, workshop and greenhouse monitoring, access control, information panels — the same stack covers all of it.

R1BBIT 商业方案
用于教学

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

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

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

1
第一个脚本

先让它动起来

blink.bas
CONFIG
  OUT1 2
END_CONFIG

WHILE 1
  OUT1 1
  PAUSE 500
  OUT1 0
  PAUSE 500
WEND
八行,板子就有了回应。什么都没装,也没有编译——脚本是通过无线送过去的。
学到什么A program is a sequenceA loop repeatsTime is in milliseconds
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 里写一次。学生只需决定拿这些数字做什么。
学到什么VariablesA sensor fills themReading the output
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
一行让图表出现在应用里,另一行让手机响起来。没有人写过后端、数据库或接口。
学到什么A conditionA push to the phoneA chart with no server

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

什么都不用装

Everything happens in a browser — on a school computer with no admin rights, on a laptop, on a tablet. There is no environment to roll out across a lab and nothing to keep updated.

读得懂的语言

Commands say what they do: DHT_INIT, PRINT, PAUSE, IF … THEN. A student reads a line and understands it, instead of copying a template nobody has explained yet.

出错不需要付出代价

The script runs in an isolated interpreter. A wrong line stops the script and prints why; the board stays online and takes the next version straight away.

学校负担得起的硬件

The smallest supported chips cost a few dollars, and one board with a sensor is already a working lesson. A class set does not need a budget request.

一个班真正需要的东西

  • A browser on any machine in the room
  • An ESP32 board from a few dollars
  • One USB cable for the very first flash
  • An LED or a sensor to point it at

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

适合用在哪里
STEM and electronics lessonsRobotics clubsScience experiments with sensorsAfter-school and summer programmesHackathons and maker daysFinal-year and capstone projects
面向教育工作者

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

价格

选择一个套餐,或者留在免费版

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 秒一次
选择

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