กรอกลิงค์นี้ที่ preferences : http://arduino.esp8266.com/stable/package_esp8266com_index.json
1.ตัวอย่างการประยุกต์ใช้งานหลอด LED
Arduino IDE Code
void setup() { // ทำงานครั้งเดียว
pinMode(2,OUTPUT); // ตั้งค่าพอร์ต ขา 2 เป็น Output
digitalWrite(2,HIGH); // ขา2 ไฟติด
delay(1000); // เวลา 1 วินาที
digitalWrite(2,LOW); // ขา2 ไฟดับ
delay(1000); // เวลา 1 วินาที
}
void loop() { // ทำงานวนรอบ
}
2.ตัวอย่างการใช้งานเซนเซอร์วัดความชุ่มฉ่ำ Soil sensor (1)
Arduino IDE Code
void setup() { // ทำงานครั้งเดียว
Serial.begin(9600); // เปิดใช้งาน Serail Monitor
}
void loop() { // ทำงานวนรอบ
int x = analogRead(0); // ตั้งค่าตัวแปร x เป็นพอร์ต Analog 0
int soil =map(x,0,1023,0,100); //ปรับอัตราส่วนค่า Analog ให้เป็น เปอร์เซนต์ (ค่า Analog 0-1023 เป็น 0-100)
Serial.println(soil); // แสดงค่าความชุ่มฉ่ำเป็นเปอร์เซนต์ทีละบรรทัด
delay(500); // เวลา 0.5 วินาที
}
3.ตัวอย่างการใช้งานเซนเซอร์วัดความผ่าน OLED จาก Soil sensor (2)
Arduino IDE Code
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 OLED(-1);
void setup() {
OLED.begin(SSD1306_SWITCHCAPVCC,0x3C); // กำหนดแอดเดรสของพอร์ตจอเป็น 0x3C (for the 128x64)
}
void loop(){
int x = analogRead(0); // ตั้งค่าตัวแปร x เป็นพอร์ต Analog 0
int soil =map(x,0,1023,0,100); //ปรับอัตราส่วนค่า Analog ให้เป็น เปอร์เซนต์ (ค่า Analog 0-1023 เป็น 0-100)
OLED.clearDisplay(); // ลบหน้าจอ OLED
OLED.setTextColor(WHITE,BLACK); //สีอักษรเป็นสีขาว ,พื้นหลังดำ
OLED.setCursor(10,0); // เซตตำแหน่ง 10,0
OLED.setTextSize(2); // เซตขนาดอักษรมีขนาดเป็น 2
OLED.println(" DC "); // พิมพ์คำว่า Soil
OLED.setTextSize(1); // เซตขนาดอักษรมีขนาดเป็น 1
OLED.print("Soil Moisture = "); // พิมพ์คำว่า Soil
OLED.println(soil); // พิมพ์บรรทัดใหม่หลังคำว่า 2018
OLED.display();
}
4. การใช้งาน DHT11-22
Arduino IDE Code
#include "DHT.h"
#define DHTPIN1 10 // ตั้งค่าพอร์ตขา 10 ต่อกับ DHT11
#define DHTTYPE DHT11
DHT dht1(DHTPIN1, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!"); // ปริ้นคำว่า DHTxx test!
dht1.begin(); // เรียกการใช้งาน DHT
}
void loop() {
delay(2000);
float t1 = dht1.readTemperature(); // กำหนดค่าตัวแปร t1 อ่านค่า อุณหภูมิ
float h1 = dht1.readHumidity(); // กำหนดค่าตัวแปร h1 อ่านค่า ความชื้น
Serial.print("Temperature1: "); // ปริ้นคำว่า Temperature1:
Serial.print(t1); // ปริ้นค่า t1 --> อุณหภูมิ
Serial.print(" \t"); // วรรค
Serial.print("Humid: "); // ปริ้นคำว่า Humid:
Serial.print(h1); // ปริ้นค่า h1 --> ความชื้นสัมพัทธ์
Serial.println(" \t"); //วรรค ขึ้นบรรทัดใหม่
}
5. การวัดค่าความชื้น อุณหภูมิ ความชื้นสัมพันธ์
Arduino IDE Code
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "DHT.h"
////////////////เซ็ตค่าคงที่ระบบอัตโนมัติ/////////////////////////////
int high_soil = 55 ; // ค่าสูงสุดความชื้น
int low_soil = 45 ; // ค่าต่ำสุดความชื้น
int humid = 80 ; // ค่าสูงสุดความชื้นสัมพัทธ์ที่ต้องการ
////////////////////////////////////////////
Adafruit_SSD1306 OLED(-1);
#define DHTPIN1 10 // ตั้งค่าพอร์ตขา 10 ต่อกับ DHT11
#define DHTTYPE DHT11
DHT dht1(DHTPIN1, DHTTYPE);
//////////////////////////////////////////
void setup() {
OLED.begin(SSD1306_SWITCHCAPVCC,0x3C); // กำหนดแอดเดรสของพอร์ตจอเป็น 0x3C (for the 128x64)
dht1.begin(); // เรียกการใช้งาน DHT
Serial.begin(9600);
}
void loop(){
OLED.clearDisplay(); // ลบหน้าจอ OLED
/////////////////////////////////////////////
float t1 = dht1.readTemperature(); // กำหนดค่าตัวแปร t1 อ่านค่า อุณหภูมิ
float h1 = dht1.readHumidity(); // กำหนดค่าตัวแปร h1 อ่านค่า ความชื้น
////////////////////////////////////////////
////////////////////////////////////////////
OLED.setTextColor(WHITE,BLACK); //สีอักษรเป็นสีขาว ,พื้นหลังดำ
OLED.setCursor(10,0); // เซตตำแหน่ง 10,0
OLED.setTextSize(2); // เซตขนาดอักษรมีขนาดเป็น 2
OLED.println(" DC "); // พิมพ์คำว่า Soil
OLED.setTextSize(1); // เซตขนาดอักษรมีขนาดเป็น 1
OLED.print("Soil Moisture = "); // พิมพ์คำว่า Soil
int x = analogRead(0); // ตั้งค่าตัวแปร x เป็นพอร์ต Analog 0
int soil =map(x,0,710,0,100); //ปรับอัตราส่วนค่า Analog ให้เป็น เปอร์เซนต์ (ค่า Analog 0-1023 เป็น 0-100)
OLED.print(soil); // พิมพ์ค่า x -->รับค่ามาจากพอร์ตA0
OLED.println(" %"); // พิมพ์ %
OLED.print("Temperature = "); // พิมพ์คำว่า Temperature =
OLED.print(t1); // พิมพ์ค่า t1 --> อุณหภมิ
OLED.println(" C"); // พิมพ์ %
OLED.print("Humidity = "); // พิมพ์คำว่า Temperature =
OLED.print(h1); // พิมพ์ค่า h1 --> ความชื้น
OLED.println(" %"); // พิมพ์ %
OLED.display();
//delay(500);
}
6. การใช้งานวัดค่าความชื้น อุณหภูมิ ความชื้นสัมพันธ์ ร่วมกับการทำงานระบบอัตโนมัติผ่านหลอด LED และ ปั๊มน้ำ
Arduino IDE Code
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "DHT.h"
////////////////เซ็ตค่าคงที่ระบบอัตโนมัติ/////////////////////////////
int high_soil = 55 ; // ค่าสูงสุดความชื้น
int low_soil = 45 ; // ค่าต่ำสุดความชื้น
int humid = 80 ; // ค่าสูงสุดความชื้นสัมพัทธ์ที่ต้องการ
////////////////////////////////////////////
////////////////เซ็ตค่าขาระบบไฟและLED/////////////////////////////
int red = 2; // ขา2LEDแดง
int yellow = 3;// ขา3LEDเหลือง
int green = 9; // ขา9LEDเขียว
int pump = 11; // ขา11ปั๊มน้ำ
Adafruit_SSD1306 OLED(-1);
#define DHTPIN1 10 // ตั้งค่าพอร์ตขา 10 ต่อกับ DHT11
#define DHTTYPE DHT11
DHT dht1(DHTPIN1, DHTTYPE);
//////////////////////////////////////////////////////////////////
void setup() {
pinMode(red ,OUTPUT); // ขา red เป็น Output
pinMode(yellow ,OUTPUT); // ขา yellow เป็น Output
pinMode(green ,OUTPUT); // ขา green เป็น Output
pinMode(pump ,OUTPUT); // ขา pump เป็น Output
OLED.begin(SSD1306_SWITCHCAPVCC,0x3C); // กำหนดแอดเดรสของพอร์ตจอเป็น 0x3C (for the 128x64)
dht1.begin(); // เรียกการใช้งาน DHT
Serial.begin(9600);
}
void loop(){
OLED.clearDisplay(); // ลบหน้าจอ OLED
/////////////////////////////////////////////
float t1 = dht1.readTemperature(); // กำหนดค่าตัวแปร t1 อ่านค่า อุณหภูมิ
float h1 = dht1.readHumidity(); // กำหนดค่าตัวแปร h1 อ่านค่า ความชื้น
////////////////////////////////////////////
OLED.setTextColor(WHITE,BLACK); //สีอักษรเป็นสีขาว ,พื้นหลังดำ
OLED.setCursor(10,0); // เซตตำแหน่ง 10,0
OLED.setTextSize(2); // เซตขนาดอักษรมีขนาดเป็น 2
OLED.println(" DC "); // พิมพ์คำว่า Soil
OLED.setTextSize(1); // เซตขนาดอักษรมีขนาดเป็น 1
OLED.print("Soil Moisture = "); // พิมพ์คำว่า Soil
int x = analogRead(0); // ตั้งค่าตัวแปร x เป็นพอร์ต Analog 0
int soil =map(x,0,710,0,100); //ปรับอัตราส่วนค่า Analog ให้เป็น เปอร์เซนต์ (ค่า Analog 0-1023 เป็น 0-100)
OLED.print(soil); // พิมพ์ค่า x -->รับค่ามาจากพอร์ตA0
OLED.println(" %"); // พิมพ์ %
OLED.print("Temperature = "); // พิมพ์คำว่า Temperature =
OLED.print(t1); // พิมพ์ค่า t1 --> อุณหภมิ
OLED.println(" C"); // พิมพ์ %
OLED.print("Humidity = "); // พิมพ์คำว่า Temperature =
OLED.print(h1); // พิมพ์ค่า h1 --> ความชื้นสัมพัทธ์
OLED.println(" %"); // พิมพ์ %
OLED.display();
//////////////// เงื่อนไขการทำงานระบบอัตโนมัติ //////////////////////////
if(h1>79){digitalWrite(pump,HIGH);} // กรณีที่ความชื้นสัมพัทธ์มากกว่า 79 ปั๊มหยุดทำงาน
if(soil>55){digitalWrite(red,HIGH);digitalWrite(green,LOW);digitalWrite(yellow,LOW);digitalWrite(pump,HIGH);} // กรณีที่ความชื้นในดินมากกว่า55 หลอด LED สีแดงติด
if((soil>45)and(soil<55)){digitalWrite(yellow,HIGH);digitalWrite(red,LOW);digitalWrite(green,LOW);digitalWrite(pump,HIGH);} // กรณีที่ความชื้นในดินอยู่ระหว่าง 45 ถึง 55 LED สีเหลืองติด
if(soil<45){digitalWrite(green,HIGH);digitalWrite(yellow,LOW);digitalWrite(red,LOW);digitalWrite(pump,LOW);} // กรณีที่ความชื้นในดินน้อยกว่า45 หลอด LED สีเขียวติด ปั๊มน้ำทำงาน
}