2019年7月10日 星期三

用wemos di dimi 玩物聯網(8)土壤溼度感測器的使用

一、教學目標:學習類比輸入,將土壤的溼度作立即的測量,並顯示於顯示器

二、接線圖
感測器腳位 d1 mini 接法
1. VCC→3.3V或5V(電源腳位)
2. GND
→GND(接地腳位)
3. DO→D1~D9(數位腳位) 可以設定邊界值(藍色的可變電阻是用於土壤濕度的閥值調節)
4. AO→A0(類比腳位), 本範例是接在此腳位A0




三、程式碼
1.利用serial monitor(序串埠監視窗)顯示結果

const int AnalogIn  = A0;  //設定類比腳位
int readingIn = 0;    //測量值

void setup() {
  Serial.begin(9600);
}

void loop() {
  readingIn = analogRead(AnalogIn);  //讀取數值
  Serial.println(readingIn);
  delay(500);
}


2.將測量結果顯示在2x16LCD上
#include <Wire.h>
#include <esp_LiquidCrystal_I2C.h>
esp_LiquidCrystal_I2C mylcd(0x27, 16, 2);

const int AnalogIn  = A0;  //設定類比腳位
int readingIn = 0;    //測量值
int no = 0;//計數器

void setup() {
  Serial.begin(9600);
  mylcd.init();
  mylcd.backlight();
  mylcd.setCursor(0, 0);
  mylcd.print("Welcome to");
  mylcd.setCursor(0, 1);
  mylcd.print("my sensor");
delay(2000);
}
void loop() {
  no++;
  readingIn = analogRead(AnalogIn);  //讀取數值
  Serial.println(readingIn);
  mylcd.clear();
  mylcd.setCursor(0, 0);//移到第一行第一個位置
  mylcd.print("NO:");
  mylcd.print(no);
  mylcd.setCursor(0, 1);//移到第二行第一個位置
  mylcd.print(readingIn);
  delay(1000);//每秒測量一次
}
四、執行結果
五、參考資料
http://lihan.shinyo.bixone.com/Arduino/arduino-2015.10.13-5.html

沒有留言:

張貼留言