|
本帖最后由 Creeper666 于 2018-9-25 17:02 编辑
(2018,9,15日:我改用了esp12s模块,因为开发板在灯罩里面实在是显得累赘。。要注意的是,最小系统用的是3.3v,记得降压)最小系统接线参考如下:
暑假开始接触Blinker和esp8266开发板,一直在捣鼓。。开学是肯定没空碰了,于是趁现在把一个吸顶灯改造了。用esp8266开发板+blinker控制,用一个学期,寒假再拆下来,研究其他项目。
准备材料:
esp8266开发板一个(我用的是WeMos D1,官方也有WiFiduino)
5v继电器模块一个(有分高/低电平触发,要留意自己的是高电平触发还是低电平触发,后期记得在程序里面改。图片所示为接线参考。这里例程为高电平触发)
一盏吸顶灯
5v电源适配器一个
Micro USB电源线一条
LED若干
杜邦线若干
备用电线0.5m左右(五金店里那种红黄交替的电线)
扎带少许(若有需要,可以使用)
接线:
开发板:
5V---------继电器电源+(DC+)
GND-------继电器电源-(DC-)
GPIO3-----继电器信号输入端(IN)
GPIO16-----LED电源+GPIO5-----LED电源+
GND-------LED电源-(这里LED有两组,共负极)
市电:
火线-----电源适配器,继电器输入(COM)
零线-----电源适配器,灯光模组
继电器:
常开端(NO)-----灯光模组
程序:
这里使用MQTT接入
[mw_shl_code=c,true]#define BLINKER_MQTT
#include <Blinker.h>
char auth[] = "mqtt密钥";
char ssid[] = "WiFi名称";
char pswd[] = "wifi密码";
// 新建组件对象
BlinkerButton Button1("btn-led");//LED组件名
BlinkerButton Button2("btn-jdq");//继电器组件名
// 按下按键即会执行该函数
void button1_callback(const String & state) {
if (state == "on")
{
digitalWrite(5, HIGH);
digitalWrite(16, HIGH);
Blinker.print("开小夜灯");
}
else if (state == "off")
{
digitalWrite(5, LOW);
digitalWrite(16, LOW);
Blinker.print("关小夜灯");
}
}
void button2_callback(const String & state) {
if (state == "on")
{
digitalWrite(3, HIGH);
Blinker.print("开大灯");
}
else if (state == "off")
{
digitalWrite(3, LOW);
Blinker.print("关大灯");
}
}
void setup() {
// 初始化IO
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);//板载LED,经测试要输出高电平才熄灭
pinMode(3, OUTPUT);//继电器
pinMode(5, OUTPUT);//LED
pinMode(16, OUTPUT);//LED
digitalWrite(3, HIGH);//继电器高电平
digitalWrite(5, LOW);//LED低电平
digitalWrite(16, LOW);//如上
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);
Button2.attach(button2_callback);
}
void loop() {
Blinker.run();
}[/mw_shl_code]注意:
IO口要以开发板背面的GPIOxx为准,不是正面的D1,D2等端口
IO1是板载LED的IO口
LED需要并联,串联点不亮
|
|