ESP32控制舵機轉動,使用blinker實現遠程開關宿舍燈/宿舍門


ESP32控制舵機轉動,使用blinker實現遠程開關宿舍燈/宿舍門

准備

杜邦線若干條(至少3條)

舵機一個,我使用的是SG90,大概扭力為1.4kg/cm

ESP32/ESP8266一塊,我的是樂鑫的,帶WIFI模塊,大概30RMB

USB數據線一條

ESP32使用servo庫會出現編譯問題,架構不匹配,所以我這里直接使用pwm進行舵機的控制,你也可以使用ESP8266直接使用servo庫控制舵機,方便很多,或者使用ESP32的舵機庫(arduino的庫管理器中可以找到)

連線

很多人可能接觸開發板時間不長(比如說我),我就是最開始連線都不知道怎么接,網上給出完整接法的挺少的:

舵機直接連接ESP32:需要准備3條公母杜邦線,

先上一張ESP32引腳圖

image

image

我們將黃色接GPIO16,黑色(咖啡色)接地(GND),紅色接5v電源(Vin)

插上數據線連接電腦

手機和開發板通信

通過blinker向開發板發送Json格式的指令,由開發板通過blinker解析后執行相應的callback(回調)函數

下載blinker 的APP,添加設備即可

image

添加設備並選擇服務器供應商后,會給出設備專屬的密鑰,保存之后有用

完整代碼

#define BLINKER_WIFI 
#include <Blinker.h> 


char auth[] = "";//點燈秘鑰
char ssid[] = "";//無線網名稱
char pswd[] = "";//無線網密碼

int freq = 50;     
int channel = 8;   
int resolution = 8; 
const int led = 16;


BlinkerButton Button1("btn-max"); 
BlinkerButton Button2("btn-min"); 
int servo_max=180,servo_min=90;

int calculatePWM(int degree)
{ 
  const float deadZone = 6.4;
  const float max = 32;
  if (degree < 0)
    degree = 0;
  if (degree > 180)
    degree = 180;
  return (int)(((max - deadZone) / 180) * degree + deadZone);
}

void button1_callback(const String & state)    
{    
  BLINKER_LOG("get button state: ", servo_max); 
  ledcWrite(channel, calculatePWM(180));  
  Blinker.vibrate();  
} 
void button2_callback(const String & state)   
{         
  BLINKER_LOG("get button state: ", servo_min);  
  ledcWrite(channel, calculatePWM(90));
  Blinker.vibrate();    
}

void setup()    
{   
  Serial.begin(9600);   
  ledcSetup(channel, freq, resolution); // 設置通道
  ledcAttachPin(led, channel);          // 將通道與對應的引腳連接
  BLINKER_DEBUG.stream(Serial);    
  Blinker.begin(auth, ssid, pswd); 
  Button1.attach(button1_callback);   
  Button2.attach(button2_callback);     
}

void loop() 
{   
Blinker.run();   
}

上面的三個字符串分別寫入自己的密鑰和WiFi,在宿舍沒WiFi的直接開手機熱點

燒錄程序,別忘了在燒錄之前或之后打開WiFi,燒錄結束我們的開發板就會連接上我們的WiFi

我們在程序中設置了兩個Button,分別為btn-max,btn-min

在blinker的設備中也做相應的配置:

進入自己的設備

image

點擊右上角可以對布局和按鍵功能等做出配置

image

配置結束后

我們就可以測試我們的程序:
在確保設備連接上WiFi后(可以在arduino的串口監控中查看具體發來的信息和WiFi連接情況)

現在點擊開燈/關燈,舵機就會隨之轉動

使用它開關等的最簡單方式就是

(🤦‍♂️)把他綁在宿舍燈開關的旁邊,通過轉動,讓舵機對燈的開關施加壓力實現開關燈

雖然有點撈,但是起碼不用下床開門關燈了,可喜可賀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM