目前ESP8266的開發(fā)方式有這幾種: AT指令方式 –燒錄AT的固件包,,使用AT指令與ESP8266交互,執(zhí)行相應(yīng)指令,,需與單片機(jī)相連 NodeMCU的lua開發(fā) –燒錄NodeMCU的固件包,,使用Lua語言開發(fā),使用ESP內(nèi)部資源,。 Arduino IDE下的開發(fā) –相當(dāng)于直接編寫固件,,編譯之后,燒錄進(jìn)ESP,,使用ESP內(nèi)部資源,。 Non-OS,就是傳統(tǒng)單片機(jī)的while(1),大循環(huán)寫法,,可以充分利用資源 RTOS,,實(shí)時系統(tǒng)的編寫法。占用硬件資源比較多,,但是對于大項目有著天然的親和性
各種方式的優(yōu)缺點(diǎn)AT指令開發(fā)方式: 優(yōu)點(diǎn):開發(fā)簡單,,資料較多。只需知道AT指令集,,以及它的通信方式即可,。 缺點(diǎn):浪費(fèi)資源,需要MCU與其通信,,不能獨(dú)立完成某項功能,。 NodeMCU的lua開發(fā):NodeMCU本質(zhì)也是ESP8266,只是它的固件是與lua腳本語言交互,。 優(yōu)點(diǎn):節(jié)省資源,,開發(fā)簡單,代碼量少,。 缺點(diǎn):lua解釋器執(zhí)行效率較低,,最終換成ArduinoIDE開發(fā),就是因?yàn)樽x取傳感器數(shù)據(jù)時,,總是漏掉一個數(shù)據(jù)。前期準(zhǔn)備比較麻煩,。需要準(zhǔn)備相應(yīng)功能的固件,,燒錄進(jìn)去,然后使用lua語言和工具與之調(diào)試。 Arduino IDE下的開發(fā)方式: 優(yōu)點(diǎn):集編程和燒錄一體,,使用很方便,。語言執(zhí)行效率高,節(jié)省資源,,庫函數(shù)比較多,,開發(fā)語言簡單,能夠很快上手,。 缺點(diǎn):Arduino IDE需要寫較長的代碼時,,不是很方便,如果需要查看底層函數(shù)或者方法,,非常費(fèi)勁,。可以使用VsCode Non-OS的開發(fā):需要配置官方的燒寫環(huán)境,,需要不停的查找API去編寫 最大的限度的控制芯片的各個功能,,但是入門較難,沒有嵌入式開發(fā)的經(jīng)驗(yàn)較難上手,。 RTOS,,比Non-OS編寫稍易,但是需要學(xué)習(xí)過一種相關(guān)的RTOS才可以上手,。也是區(qū)分水平的一種辨析方式~
普通ESP8266如果是普通的ESP8266,,開發(fā)版選擇Generic ESP8266 Module!在上傳燒寫過程控制臺沒有打印信息,。ESP8266也不會閃爍,。沒有任何反應(yīng),等待一會出現(xiàn)上傳成功,!拔掉跳線帽使GPIO0懸空,,再次供電即可使用。 就是指普通的裸板,,沒有外圍的器件
https://www.basemu.com/how_to_control_relay_for_nodemcu.html 繼電器是可以簡單理解為開關(guān),,它和普通開關(guān)的區(qū)別在于它可以判斷輸入量(也就是控制信號,可以是聲,、光,、電、磁等)當(dāng)其到達(dá)預(yù)設(shè)的閥值時,,可以接通或斷開電路,。在智能家居的遠(yuǎn)程遙控開關(guān)燈等應(yīng)用上多會用到它。在生活中,,最常見的是電磁繼電器,,它是由鐵芯,、線圈、銜鐵,、觸點(diǎn),、復(fù)位簧片等組成的。 如上圖所示,,當(dāng)我們在線圈兩端加入電壓后,,線圈就會產(chǎn)生電流,形成電磁效應(yīng),,銜鐵就會在電磁力的作用下克服復(fù)位彈簧的拉力被吸向鐵芯,,從而使銜鐵與靜觸點(diǎn)吸合。當(dāng)線圈斷電后,,鐵芯的吸力消失,,銜鐵就會在彈簧拉力的作用下與靜觸點(diǎn)分開。這樣繼電器在電路中就可以導(dǎo)通或斷開電路,。怎么去區(qū)分繼電器的常開和常閉”觸點(diǎn),,當(dāng)繼電器線圈未接通電源時,銜鐵與靜觸點(diǎn)分離與動觸點(diǎn)結(jié)合,,因此,,靜觸點(diǎn)被稱為常開觸點(diǎn),而動觸點(diǎn)被稱為“常閉觸點(diǎn)”,。 里面是這樣的構(gòu)造 核心思想就是隔離
ESP的連接圖 其實(shí)如果是你要單獨(dú)控制的話,,不需要連接3V3和GND 你就管控制就好
/* *描述:通過控制繼電器的輸入端高低電平來控制繼電器的通斷 *引腳連接:繼電器輸入端 D4/GPIO2 */ int relayInput = 2; //定義繼電器輸入引腳為GPIO2,即D4 voidsetup(){ pinMode(relayInput, OUTPUT); //初始化relayInput,,并設(shè)為輸出針 } voidloop(){ digitalWrite(relayInput, HIGH); //設(shè)置relayInput為高電平輸出 delay(1000); digitalWrite(relayInput, LOW); //設(shè)置relayInput為低電平輸出 delay(1000); }嚶嚶嚶,,我沒有繼電器。 我這邊就是用一個萬用表來顯示這個過程,。不停的發(fā)送高低電平
和你點(diǎn)燈沒有什么區(qū)別 我發(fā)現(xiàn)我有個開發(fā)板,,連接一個控制腳就可以了
|