ESP32, IOT物聯網

【IOT物聯網應用-ESP32】第十八篇:SW-420震動感測器

實驗說明:

在這篇使用ESP32搭配SW-420震動感測模組,當SW-420模組不震動時,震動開關呈閉合導通狀態,輸出端輸出低電位;震動時,震動開關瞬間斷開,輸出端輸出高電位。模組上有一個藍色十字形的電位器調節,可以根據自己的需要調整靈敏度。

SW-420震動感測模組是無方向性振動傳感器,一般可用在各種震動觸發,報盜報警,智能小車,地震報警,摩托車報警等。

 

材料:

  • ESP32-E DevKit
  • USB 傳輸線
  • SW-420震動感測模組
  • 直插LED
  • 220Ω直插電阻
  • 麵包板
  • 麵包板跳線

▼ 購買IoT物聯網學習教材:

ESP32 物聯網應用學習套件 ESP32CAM IoT物聯網學習教材 適用Arduino

 

相關知識:

SW-420震動開關常閉型元件在沒有震動時,震動軸靜止,導針A和導針B處於導通狀態,平時任何角度開關都是導通狀態,當受到振動或移動時,震動軸會產生移動或振動,從而導致導針A和B會出現斷開。

這種開關的特點是平時一般處於導通狀態,當發生振動時會短暫斷開,所以它的靈敏度很高。 SW-420沒有震動時電路是導通的,所以也被稱作常閉式震動傳感器。

 

程式:

int  shockPin = 17; //SW-420震動感測器DO信號腳 連接到ESP32 GPIO17
int  ledPin = 16; //LED連接到ESP32 GPIO16
byte value; //宣告value變數。

void setup() {
  Serial.begin(9600);
  pinMode(ledPin,OUTPUT); //設定ledPin的接腳為輸出模式
  pinMode(shockPin,INPUT); //設定shockPin的接腳為輸入模式
}

void loop() {
  value = digitalRead(shockPin); 
  Serial.println(value);
  
  //若value等於1,則點亮ledPin上的LED;否則熄滅ledPin上的LED
  if (value == 1){
    digitalWrite(ledPin,HIGH);
  }else{
    digitalWrite(ledPin,LOW);
  }
  delay(100);
}

 

程式說明:

將程式碼下載到ESP32後,當SW-420模組不震動時,震動開關呈閉合導通狀態,輸出端輸出低電位,LED燈熄滅;震動時,震動開關瞬間斷開,輸出端輸出高電位,LED燈點亮。

 

相關文章