概要
最近在跟著幾個大佬的教學視頻做項目。陸續(xù)會更新記錄一些要點,便于后期總結(jié)筆記的時候進行引用。
也可以幫助有心跟著一起復刻的寶子們,更好地捋清思路。
【本系列教程 - 總目標】:
使用ESP系列板卡,通過MQTT進行數(shù)據(jù)通信,達到遠程控制多個傳感器的效果。
◆配置說明
硬件板卡:ESP系列板卡 <本系列教程以ESP32
和 ESP8266
為例>
硬件元件:
- 一顆LED燈
- 一個5v驅(qū)動的繼電器
- 一個按鍵開關(guān)
- 杜邦線若干
◆需求概述
【本篇章目標】:
使用代碼,簡單點亮一個LED,同時附上代碼(ESP32和ESP8266通用)
ESP芯片官方技術(shù)文檔鏈接:
https://www.espressif.com.cn/zh-hans/support/documents/technical-documents
技術(shù)名詞簡介
● ESP系列簡介
ESP芯片是一種由樂鑫科技(Espressif Systems)開發(fā)的低功耗無線通信芯片。【PS】
ESP芯片官方技術(shù)文檔
ESP芯片系列包括ESP8266和ESP32兩個主要型號。這些芯片具有強大的處理能力和豐富的外設(shè)接口,適用于物聯(lián)網(wǎng)(IoT)應用和嵌入式系統(tǒng)開發(fā)。
◆ESP8266
是一款高度集成的Wi-Fi芯片,具有低功耗和低成本的特點。它支持TCP/IP協(xié)議棧,可以通過Wi-Fi連接到互聯(lián)網(wǎng),并與其他設(shè)備進行通信。ESP8266可以作為主控芯片,與傳感器、執(zhí)行器等設(shè)備進行通信,實現(xiàn)智能家居、智能農(nóng)業(yè)、智能工業(yè)等應用。
◆ESP32
是ESP8266的升級版本,除了具備Wi-Fi功能外,還增加了藍牙(Bluetooth)功能。ESP32具有更高的處理能力和更多的外設(shè)接口,支持更復雜的應用場景。它可以作為Wi-Fi和藍牙網(wǎng)關(guān),連接多個設(shè)備并實現(xiàn)數(shù)據(jù)傳輸和控制。
ESP芯片具有開放的開發(fā)環(huán)境和豐富的開發(fā)資源,開發(fā)者可以使用Arduino IDE、MicroPython等開發(fā)工具進行編程。此外,樂鑫科技還提供了豐富的文檔和示例代碼,方便開發(fā)者快速上手和開發(fā)應用。
硬件連接實現(xiàn)
LED/開關(guān) 連接引腳為 GPIO_2
繼電器連接引腳為 GPIO_4
PS:請注意,ESP8266
和ESP32
連接引腳不太一樣,詳請根據(jù)引腳圖調(diào)整連線
●ESP8266 引腳圖
ESP8266的GPIO_2
和 GPIO_4
分別對應的標識相反,即:
- GPIO_2 對應 D4
- GPIO_4 對應 D2
●ESP32 引腳圖
圖來自大佬:莽小石
文章來源:http://www.zghlxwxcb.cn/news/detail-802938.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-802938.html
代碼實現(xiàn)
●Demo_1:控制LED閃爍
// 引入開發(fā)庫
#include <Arduino.h>
// 定義LED引腳
const int ledPin = 2; // 根據(jù)實際連接的引腳進行修改
void setup() {
// 初始化串口通信
Serial.begin(115200);
// 初始化LED引腳為輸出
pinMode(ledPin, OUTPUT);
}
void loop() {
// 點亮LED
digitalWrite(ledPin, HIGH);
// 打印信息到串口監(jiān)視器
Serial.println("LED is ON");
// 等待一秒鐘
delay(1000);
// 關(guān)閉LED
digitalWrite(ledPin, LOW);
// 打印信息到串口監(jiān)視器
Serial.println("LED is OFF");
// 等待一秒鐘
delay(1000);
}
●Demo_2:利用繼電器驅(qū)動LED亮滅
// 引入開發(fā)庫
#include <Arduino.h>
// 定義按鍵和繼電器的引腳
const int buttonPin = 2; // 按鍵連接到引腳2
const int relayPin = 4; // 繼電器連接到引腳4
int buttonState = 0; // 保存當前按鍵狀態(tài)(低電平或高電平)
int lastButtonState = 0; // 保存上一次的按鍵狀態(tài)
void setup() {
// 初始化串口通信,用于在串口監(jiān)視器中打印信息
Serial.begin(115200);
// 初始化按鍵和繼電器引腳
pinMode(buttonPin, INPUT); // 將按鍵引腳設(shè)置為輸入模式
pinMode(relayPin, OUTPUT); // 將繼電器引腳設(shè)置為輸出模式
}
void loop() {
// 讀取按鍵狀態(tài)
buttonState = digitalRead(buttonPin);
// 如果按鍵狀態(tài)發(fā)生變化(從低電平變?yōu)楦唠娖剑?,則切換繼電器狀態(tài)
if (buttonState == HIGH && lastButtonState == LOW) {
//buttonState == HIGH && lastButtonState == LOW這個條件用于檢測按鍵是否被按下,以執(zhí)行繼電器狀態(tài)的切換
// 切換繼電器狀態(tài)
if (digitalRead(relayPin) == HIGH) {
digitalWrite(relayPin, LOW); // 將繼電器引腳設(shè)置為低電平
Serial.println("Relay OFF"); // 在串口監(jiān)視器中打印繼電器關(guān)閉的信息
} else {
digitalWrite(relayPin, HIGH); // 將繼電器引腳設(shè)置為高電平
Serial.println("Relay ON"); // 在串口監(jiān)視器中打印繼電器打開的信息
}
}
// 保存當前按鍵狀態(tài),以便下一次比較
lastButtonState = buttonState;
}
到了這里,關(guān)于ESP系列入門教程(一)——之用繼電器簡單驅(qū)動一個LED【附 ESP32 / ESP8266 通用代碼】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!