本帖最后由 Creeper666 于 2018-9-25 17:02 編輯 (2018,9,15日:我改用了esp12s模塊,因?yàn)殚_發(fā)板在燈罩里面實(shí)在是顯得累贅。。要注意的是,最小系統(tǒng)用的是3.3v,記得降壓)最小系統(tǒng)接線參考如下: 暑假開始接觸Blinker和esp8266開發(fā)板,一直在搗鼓。。開學(xué)是肯定沒空碰了,于是趁現(xiàn)在把一個(gè)吸頂燈改造了。用esp8266開發(fā)板+blinker控制,用一個(gè)學(xué)期,寒假再拆下來,研究其他項(xiàng)目。 準(zhǔn)備材料: esp8266開發(fā)板一個(gè)(我用的是WeMos D1,官方也有WiFiduino) 5v繼電器模塊一個(gè)(有分高/低電平觸發(fā),要留意自己的是高電平觸發(fā)還是低電平觸發(fā),后期記得在程序里面改。圖片所示為接線參考。這里例程為高電平觸發(fā)) 一盞吸頂燈 5v電源適配器一個(gè) Micro USB電源線一條 LED若干 杜邦線若干 備用電線0.5m左右(五金店里那種紅黃交替的電線) 扎帶少許(若有需要,可以使用) 接線: 開發(fā)板: 5V---------繼電器電源+(DC+) GND-------繼電器電源-(DC-) GPIO3-----繼電器信號(hào)輸入端(IN) GPIO16-----LED電源+GPIO5-----LED電源+ GND-------LED電源-(這里L(fēng)ED有兩組,共負(fù)極) 市電: 火線-----電源適配器,繼電器輸入(COM) 零線-----電源適配器,燈光模組 繼電器: 常開端(NO)-----燈光模組 程序: 這里使用MQTT接入 [mw_shl_code=c,true]#define BLINKER_MQTT #include char auth[] = 'mqtt密鑰'; char ssid[] = 'WiFi名稱'; char pswd[] = 'wifi密碼'; // 新建組件對(duì)象 BlinkerButton Button1('btn-led');//LED組件名 BlinkerButton Button2('btn-jdq');//繼電器組件名 // 按下按鍵即會(huì)執(zhí)行該函數(shù) 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('關(guān)小夜燈'); } } void button2_callback(const String & state) { if (state == 'on') { digitalWrite(3, HIGH); Blinker.print('開大燈'); } else if (state == 'off') { digitalWrite(3, LOW); Blinker.print('關(guān)大燈'); } } void setup() { // 初始化IO pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH);//板載LED,經(jīng)測(cè)試要輸出高電平才熄滅 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口要以開發(fā)板背面的GPIOxx為準(zhǔn),不是正面的D1,D2等端口 IO1是板載LED的IO口 LED需要并聯(lián),串聯(lián)點(diǎn)不亮 |
|