ESP32, IOT物聯網

【IOT物聯網應用-ESP32】第十四篇:水位感測器應用

實驗說明:

米羅這篇要跟各位介紹一款便宜又簡單使用的水位感測器,此款水位感測器可以偵測水滴(雨水)也可以測量水位、監測集水坑或是液體洩漏等。

S (信號)Pin 是一個類比輸出,需要連接到ESP32上的一個類比輸入腳位。

+ (VCC)為感測器供電。建議使用 3.3V – 5V 為傳感器供電。請注意,類比輸出將根據為感測器提供的電壓而變化。

– (接地):接地連接。

 

材料:

  • ESP32-E DevKit
  • USB 傳輸線
  • 水位感測器
  • RGB LED
  • 麵包板
  • 杜邦線

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

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

 

接線說明:

 

▼注意:假如使用下列程式碼發生編譯錯誤,則表示您目前安裝的ESP32函式庫較為新版,請務必將「#include <analogWrite.h>」這一行移除並重新編譯,則可編譯成功並正常運行。

程式:

#include <analogWrite.h> 

int redPin = 15;     // R 紅色LED控制腳 連接到ESP32的 GPIO15
int greenPin = 17;   // G 綠色LED控制腳 連接到ESP32的 GPIO17
int bluePin = 16;    // B 藍色LED控制腳 連接到ESP32的 GPIO16 
int water_sensor=36; // 水位感測器S信號腳 連接到ESP32的 GPIO36 

void setup()    
{   
  pinMode(redPin, OUTPUT);     //設置redPin對應的腳GPIO15為輸出
  pinMode(greenPin, OUTPUT);   //設置greenPin對應的腳GPIO17為輸出
  pinMode(bluePin, OUTPUT);    //設置bluePin對應的腳GPIO16為輸出
  pinMode(water_sensor,INPUT); //設置water_sensor對應的腳GPIO36為輸入
}    
      
void loop()  
{    
  int val=analogRead(water_sensor); //從水位感測器讀出類比數值 
  if (val>2500){ 
      color(255, 0, 0); //當水位值>2500:红色亮
   }else if (val>800){
      color(255,255,0); //當水位值介於2500~800:黄色亮
   }else{
      color(0,255, 0);  //當水位值小於800:綠色亮   
   }
} 

//顏色控制函數
void color (unsigned char red, unsigned char green, unsigned char blue)
{    
        analogWrite(redPin, red);   
        analogWrite(greenPin,green); 
        analogWrite(bluePin, blue); 
} 

 

程式說明:

將程式碼下載到ESP32後,我們來測試一下高低水位,看看會發生什麼事:

當水位值超過上限閾值2500:LED會亮红色

當水位值介於上限閾值2500~下限閾值800:LED會亮黄色

當水位值低於下限閾值800:LED會亮綠色

 

 

 

 

 

 

相關文章