一 Arduino IDE
安装esp32 SDK
- 安装
Arduino IDE
- 打开
Arduino IDE
- 打开
Arduino IDE
菜单 > 文件 > 首选项
在 附加开发板管理器网址 输入框中,填入以下网址:
https://www.arduino.cn/package_esp32_index.json
下载社区打包的esp32
安装包,直接运行,程序会自动解压到相应位置
下载地址:https://cloud.codess-nas.top:5213/s/2Ocn
二 实现LED
灯闪烁
开发板:esp32-c3
编译环境如下图:

完整程序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| int led1 = 12; int led2 = 13; void setup() { pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); } void loop() { digitalWrite(led1,1); digitalWrite(led2,1); delay(2000); digitalWrite(led1,0); digitalWrite(led2,0); delay(2000); }
|
三 Blinker
控制开关灯
下载并安装blinker APP
下载并安装blinker Arduino
库(点灯科技官网下载)
通过Arduino IDE
菜单>项目>加载库>添加.ZIP库 导入到库,如图:

在APP
中添加设备,获得key
值
5. 在app
中创建按钮组件(以开关按键为例)
6. 实例程序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| #define BLINKER_WIFI #include <Blinker.h>
int led1 = 12; int led2 = 13;
char auth[] = "e14b44d9a095"; char ssid[] = "3-512传媒"; char pswd[] = "Mm.512512";
BlinkerButton Button1("btn-abc");
void button1_callback(const String & state) { if (state=="on") { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); Button1.print("on"); }else if(state=="off"){ digitalWrite(led1, LOW); digitalWrite(led2, LOW); Button1.print("off"); } }
void setup() { Serial.begin(115200); pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); digitalWrite(led1, LOW); digitalWrite(led2, LOW); Blinker.begin(auth, ssid, pswd); Button1.attach(button1_callback); }
void loop() { Blinker.run(); }
|
这里之所以使用开关类型的按键是因为esp32-c3
对digitalRead()
函数没有进行适配,导致无法读取电位状态
四 数据反馈
添加DIY
组件
示例程序
实现按键按下向设备发送模拟数据,并更新温度和湿度值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| #define BLINKER_WIFI #include <Blinker.h>
char auth[] = "e14b44d9a095"; char ssid[] = "3-512传媒"; char pswd[] = "Mm.512512";
BlinkerButton Button1("btn-abc"); BlinkerNumber HUMI("num-wen"); BlinkerNumber TEMP("num-shi");
void button1_callback(const String & state) { if (state=="on") { HUMI.print(25); TEMP.print(30); Button1.print("on"); }else if(state=="off"){ HUMI.print(0); TEMP.print(0); Button1.print("off"); } }
void setup() { Serial.begin(115200); Blinker.begin(auth, ssid, pswd); }
void loop() { Blinker.run(); }
|
最终效果
五 定时,设备共享
先设置动作指令(JSON
格式)
1 2 3 4 5 6 7 8
| { "cmd":{"btn-abc":"on"}, "text":"打开?name" }, { "cmd":{"btn-abc":"off"}, "text":"关闭?name" }
|
设置定时
设备共享
主用户 共享设备
在 设备设置页>设备共享 或 用户中心>设备共享>对应设备 可进入 设备共享页
点击 +添加共享,输入要共享的用户的手机号(用户需已经注册blinker)
等待用户接受共享
子用户 接受/拒绝 共享
在用户中心>设备共享>接受 点击对应设备后的同意/拒绝
- 接受的设备不能修改设备相关配置
- 设备最多可共享给9位用户使用
六 blinker
接入小爱同学
下载米家和小爱同学APP
打开米家App
。通过 我的>其他平台设备>点击添加>点灯科技>绑定账号 ,绑定blinker账号
配置设备
1 2
| #define BLINKER_WIFI #define BLINKER_MIOT_LIGHT
|
打开米家App
扫描到设备
示例程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| #define BLINKER_WIFI #define BLINKER_MIOT_LIGHT #include <Blinker.h>
int led1 = 12; int led2 = 13;
char auth[] = "e14b44d9a095"; char ssid[] = "3-512传媒"; char pswd[] = "Mm.512512";
void miotPowerState(const String & state) { if (state == BLINKER_CMD_ON) { BlinkerMIOT.powerState("on"); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); BlinkerMIOT.print(); } else if (state == BLINKER_CMD_OFF) { BlinkerMIOT.powerState("off"); digitalWrite(led1, LOW); digitalWrite(led2, LOW); BlinkerMIOT.print(); } }
void setup() { Serial.begin(115200); pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); digitalWrite(led1, LOW); digitalWrite(led2, LOW); Blinker.begin(auth, ssid, pswd); BlinkerMIOT.attachPowerState(miotPowerState); }
void loop() { Blinker.run(); }
|
用小爱同学发送指令(打开/关闭 灯)
七 LuatOS
点亮lcd
屏
编译器:Luatools
示例程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| PROJECT = "lcddemo" VERSION = "1.0.0"
_G.sys = require("sys")
spi_lcd = spi.deviceSetup(2, 7, 0, 0, 8, 40000000, spi.MSB, 1, 1)
lcd.init("st7735s",{ port = "device", pin_dc = 6, pin_pwr = 11, pin_rst = 10, direction = 2, w = 160, h = 80, xoffset = 1, yoffset = 26 },spi_lcd)
sys.taskInit(function() log.info("lcd.drawLine", lcd.drawLine(20,20,150,20,0x001F)) log.info("lcd.drawRectangle", lcd.drawRectangle(20,40,120,70,0xF800)) log.info("lcd.drawCircle", lcd.drawCircle(50,50,20,0x0CE0)) end)
sys.run()
|
效果展示

字符显示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| PROJECT = "lvgldemo" VERSION = "1.0.0"
log.info("main", PROJECT, VERSION)
_G.sys = require("sys")
spi_lcd = spi.deviceSetup(2, 7, 0, 0, 8, 40000000, spi.MSB, 1, 1) log.info("lcd.init", lcd.init("st7735s",{ port = "device", pin_dc = 6, pin_pwr = 11, pin_rst = 10, direction = 2, w = 160, h = 80, xoffset = 0, yoffset = 26 },spi_lcd))
log.info("lvgl", lvgl.init()) lvgl.disp_set_bg_color(nil, 0xFFFFFF) local scr = lvgl.obj_create(nil, nil) local btn = lvgl.btn_create(scr) lvgl.obj_align(btn, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 0) local label = lvgl.label_create(btn) lvgl.label_set_text(label, "I LOVE YOU") lvgl.scr_load(scr)
sys.taskInit(function() while 1 do sys.wait(1000) end end)
sys.run()
|
效果演示

八 AD的使用
1、绘制SCH libray
元件




2、画出原理图

3、绘制PCB library


