181
}
}
void pinAnalogRead(void)
{
unsigned int lux1 = analogRead(A0);
lux1 = map(lux1, 0, 2025, 0, 100);
unsigned int co2 = random(15, 82); //analogRead(A1);
DataBuff[26] = lux1;
DataBuff[24] = co2 >> 8; DataBuff[25] = co2;
Serial.println("-------------------------------");
Serial.println("Lux | CO2");
Serial.print(lux1); Serial.print("|"); Serial.println(co2);
}
void AirSensor_Read(void)
{
unsigned int datBuf;
float temp1 = dht.readTemperature(); // อา่ นค่าอณุ หภมู จิ าก DHT Sensor
datBuf = temp1 * 100;
DataBuff[4] = datBuf >> 8; DataBuff[5] = datBuf & 0x00FF;
float temp2 = sht20.readTemperature(); // อา่ นค่าอุณหภูมิจาก sht Sensor
datBuf = temp2 * 100;
DataBuff[6] = datBuf >> 8; DataBuff[7] = datBuf & 0x00FF;
sensors.getTempCByIndex(0);
float temp3 = sensors.getTempCByIndex(0); //DS18B20_Read();
datBuf = temp3 * 100;
DataBuff[8] = datBuf >> 8; DataBuff[9] = datBuf & 0x00FF;
float humi1 = dht.readHumidity(); // อา่ นคา่ ความชนื้ จาก DHT Sensor
datBuf = humi1 * 100;
182
DataBuff[12] = datBuf >> 8; DataBuff[13] = datBuf & 0x00FF;
float humi2 = sht20.readHumidity(); // Read Humidity
datBuf = humi2 * 100;
DataBuff[14] = datBuf >> 8; DataBuff[15] = datBuf & 0x00FF;
Serial.println("***************************************");
Serial.println("AirTemp1|AirTemp2|AirTemp3|Humid1|Humid2|");
Serial.print(temp1); Serial.print("|"); Serial.print(temp2);
Serial.print("|");Serial.print(temp3); Serial.print("|");
Serial.print(humi1); Serial.print("|"); Serial.println(humi2);
}
unsigned int soilTempVal;
void soilTempRead(void)
{
/* sensors.getTempCByIndex(0);
float soilTempRead = sensors.getTempCByIndex(0); //DS18B20_Read();
soilTempVal = soilTempRead * 100;
DataBuff[8] = soilTempVal >> 8; DataBuff[9] = soilTempVal & 0x00FF;
Serial.print(DataBuff[8], HEX); Serial.println(DataBuff[9], HEX);
soilTempVal = ((DataBuff[8] << 8) | DataBuff[9]);
Serial.print(soilTempVal); Serial.print("|");
float soilTemp1_Val = soilTempVal / 100.00;
Serial.println(soilTemp1_Val);*/
}
void RELAY_clt(void)
{
if ((RxBuff[6] == '0') && (RxBuff[7] == '1'))
{
if (RxBuff[8] == 'N') digitalWrite(RY1, LOW);
183
if (RxBuff[8] == 'F') digitalWrite(RY1, HIGH);
}
else if ((RxBuff[6] == '0') && (RxBuff[7] == '2'))
{
if (RxBuff[8] == 'N') digitalWrite(RY2, LOW);
if (RxBuff[8] == 'F') digitalWrite(RY2, HIGH);
}
else if ((RxBuff[6] == '0') && (RxBuff[7] == '3'))
{
if (RxBuff[8] == 'N') digitalWrite(RY3, LOW);
if (RxBuff[8] == 'F') digitalWrite(RY3, HIGH);
}
else if ((RxBuff[6] == '0') && (RxBuff[7] == '4'))
{
if (RxBuff[8] == 'N') digitalWrite(RY4, LOW);
if (RxBuff[8] == 'F') digitalWrite(RY4, HIGH);
}
}
//------- PROGRAM RUNNING ------//
unsigned long PreTime, NowTime;
unsigned char Cx, secNum = 0;;
void loop()
{
serialEvent();
NowTime = millis();
if (rxComplete)
{
rxComplete = false;
184
DataBuff[0] = '@'; DataBuff[1] = RxBuff[1];
DataBuff[2] = RxBuff[2]; DataBuff[3] = RxBuff[3];
if ((RxBuff[2] == '0') && (RxBuff[3] == '2'))
{
if ((RxBuff[4] == 'S') && (RxBuff[5] == 'R'))
{
sendDatToRS485();
}
else if ((RxBuff[4] == 'R') && (RxBuff[5] == 'Y'))
{
RELAY_clt();
}
}
}
//------ สรา้ งจงั หวะในการ อ่านตัวตรวจรู้ ----
if (NowTime >= (PreTime + 100))
{
if (Cx == 0)
{
digitalWrite(RunLED, HIGH);
// pinAnalogRead();
}
else if (Cx == 3) digitalWrite(RunLED, LOW);
if (Cx == 10)
{
Cx = 0;
secNum++;
if (secNum == 2)
185
{
AirSensor_Read();
}
else if (secNum == 4)
{
pinAnalogRead();
secNum = 0;
}
// Serial.println(" ");
// Serial.print("secNum is "); Serial.println(secNum);
} else Cx++;
PreTime = NowTime;
}
}
186
4.โปรแกรมควบคมุ มการทำงานกล่องลกู ข่าย 3
#include <SoftwareSerial.h>
#include "DHT.h"
#include "DFRobot_SHT20.h"
#define TX_485 8
#define RX_485 7
#define RS485transmit 1
#define RS485receive 0
#define DHTPIN 2
#define DHTTYPE DHT22
#define RunLED 13
#define RY1 9
#define RY2 10
#define RY3 11
#define RY4 12
DHT dht(DHTPIN, DHTTYPE);
DFRobot_SHT20 sht20(&Wire, SHT20_I2C_ADDR);
SoftwareSerial RS485_serial (RX_485, TX_485);
unsigned long theCurrentTime; น
unsigned long theLastReadTime = 0;
long readDataInterval = 5000;
int analog1Pin = 1;
int analogPin = 0;
int Relay1 = 9;
int Relay2 = 10;
unsigned char DataBuff[65];
////////////////////////////////////// PROGRAM SETUP //////////////////////////////////////
187
void setup() {
pinMode(RunLED, OUTPUT);
pinMode(RY1, OUTPUT); digitalWrite(RY1, HIGH);
pinMode(RY2, OUTPUT); digitalWrite(RY2, HIGH);
pinMode(RY3, OUTPUT); digitalWrite(RY3, HIGH);
pinMode(RY4, OUTPUT); digitalWrite(RY4, HIGH);
Serial.begin(9600);
RS485_serial.begin(9600);
dht.begin();
sht20.initSHT20();
sht20.checkSHT20();
theCurrentTime = millis();
}
unsigned char inChar;
unsigned char RxBuff[64];
unsigned char RxdCount = 0;
boolean rxComplete = false;
void serialEvent()
{
while (RS485_serial.available())
{
inChar = RS485_serial.read();
RxBuff[RxdCount] = inChar;
if (RxBuff[0] == '*')
{
if ((RxBuff[1] != 'B') && (RxdCount == 2))
{
RxdCount = 0; return;
188
}
// Serial.print(" "); Serial.println(RxdCount);
if ((RxdCount == 9) || (RxBuff[RxdCount] == '#'))
{
RxdCount = 0; rxComplete = true;
return;
}
RxdCount++;
}
}
}
void sendDatToRS485(void)
{
Serial.println("getCommand Sensors Data to RS-485");
for (unsigned char i=0; i<40;i++)
{
RS485_serial.write(DataBuff[i]);
}
}
void pinAnalogRead(void)
{
unsigned int lux1 = analogRead(A0);
lux1 = map(lux1, 0, 600, 0, 100);
unsigned int co2 = random(15,82); //analogRead(A1);
DataBuff[26] = lux1;
DataBuff[24] = co2 >> 8; DataBuff[25] = co2;
Serial.println("-------------------------------");
189
Serial.println("Lux | CO2");
Serial.print(lux1); Serial.print("|"); Serial.println(co2);
}
void AirSensor_Read(void)
{
unsigned int datBuf;
float temp1 = dht.readTemperature(); // อ่านค่าอุณหภูมิจาก DHT Sensor
datBuf = temp1 * 100;
DataBuff[4] = datBuf >> 8; DataBuff[5] = datBuf & 0x00FF;
float temp2 = sht20.readTemperature(); // อา่ นค่าอณุ หภูมิจาก sht Sensor
datBuf = temp2 * 100;
DataBuff[6] = datBuf >> 8; DataBuff[7] = datBuf & 0x00FF;
float humi1 = dht.readHumidity(); // อ่านค่าความชนื้ จาก DHT Sensor
datBuf = humi1 * 100;
DataBuff[12] = datBuf >> 8; DataBuff[13] = datBuf & 0x00FF;
float humi2 = sht20.readHumidity(); // Read Humidity
datBuf = humi2 * 100;
DataBuff[14] = datBuf >> 8; DataBuff[15] = datBuf & 0x00FF;
Serial.println("***************************************");
Serial.println("AirTemp1|AirTemp2|Humid1|Humid2 ");
Serial.print(temp1); Serial.print("|"); Serial.print(temp2); Serial.print("|");
Serial.print(humi1); Serial.print("|"); Serial.println(humi2);
}
unsigned int soilTempVal;
void soilTempRead(void)
{
float soilTempRead = 27.45 ; //DS18B20_Read();
soilTempVal = soilTempRead * 100;
190
DataBuff[2] = soilTempVal >> 8; DataBuff[3] = soilTempVal & 0x00FF;
Serial.print(DataBuff[2], HEX); Serial.println(DataBuff[3], HEX);
soilTempVal = ((DataBuff[2] << 8) | DataBuff[3]);
Serial.print(soilTempVal); Serial.print("|");
float soilTemp1_Val = soilTempVal / 100.00;
Serial.println(soilTemp1_Val);
}
void RELAY_clt(void)
{
if ((RxBuff[6] == '0') && (RxBuff[7] == '1'))
{
if (RxBuff[8] == 'N') digitalWrite(RY1, LOW);
if (RxBuff[8] == 'F') digitalWrite(RY1, HIGH);
}
else if ((RxBuff[6] == '0') && (RxBuff[7] == '2'))
{
if (RxBuff[8] == 'N') digitalWrite(RY2, LOW);
if (RxBuff[8] == 'F') digitalWrite(RY2, HIGH);
}
else if ((RxBuff[6] == '0') && (RxBuff[7] == '3'))
{
if (RxBuff[8] == 'N') digitalWrite(RY3, LOW);
if (RxBuff[8] == 'F') digitalWrite(RY3, HIGH);
}
else if ((RxBuff[6] == '0') && (RxBuff[7] == '4'))
{
if (RxBuff[8] == 'N') digitalWrite(RY4, LOW);
if (RxBuff[8] == 'F') digitalWrite(RY4, HIGH);
191
}
}
//------- PROGRAM RUNNING ------//
unsigned long PreTime, NowTime;
unsigned char Cx, secNum = 0;;
void loop()
{
serialEvent();
NowTime = millis();
if (rxComplete)
{
rxComplete = false;
DataBuff[0] = '@'; DataBuff[1] = RxBuff[1];
DataBuff[2] = RxBuff[2]; DataBuff[3] = RxBuff[3];
if ((RxBuff[2] == '0') && (RxBuff[3] == '1'))
{
if ((RxBuff[4] == 'S') && (RxBuff[5] == 'R'))
{
sendDatToRS485();
}
else if ((RxBuff[4] == 'R') && (RxBuff[5] == 'Y'))
{
RELAY_clt();
}
}
}
//------ สรา้ งจังหวะในการ อ่านตัวตรวจรู้ ----
if (NowTime >= (PreTime + 100))
192
{
if (Cx == 0)
{
digitalWrite(RunLED, HIGH);
}
else if (Cx == 3) digitalWrite(RunLED, LOW);
if (Cx == 10)
{
Cx = 0;
secNum++;
if(secNum == 2)
{
AirSensor_Read();
}
else if(secNum == 4)
{
pinAnalogRead();
secNum = 0;
}
} else Cx++;
PreTime = NowTime;
}
}
193
ประวตั ผิ ูจ้ ัดทำ
194
ประวัตผิ ้จู ัดทำ
ช่อื -สกลุ นายกวลี กั ษณ์ อุตราชา
วนั /เดือน/ปเี กิด 1 กรกฎาคม 2542
ทอี่ ยู่ 246 หมู่ 11 ต.สามพรา้ ว อ.เมือง จ.อดุ รธานี 41000
เบอรโ์ ทรศพั ท์ 063 - 6709875
Email : [email protected]
ประวัติการศึกษา
พ.ศ.2559 ปวช. (อเิ ลก็ ทรอนิกส)์ วทิ ยาลัยเทคนคิ จงั หวดั อดุ รธานี
พ.ศ.2562 ปวส. (อิเลก็ ทรอนกิ ส์) วทิ ยาลยั เทคนคิ จังหวดั อดุ รธานี
พ.ศ.2565 วศ.บ. (วศิ วกรรมอเิ ลก็ ทรอนกิ ส์อัจฉรยิ ะ) คณะวิศวกรรมศาสตร์
มหาวิทยาลัยเทคโนโลยรี าชมงคลอีสาน วทิ ยาเขตขอนแกน่ จังหวัดขอนแกน่
ชอื่ -สกลุ
วัน/เดือน/ปีเกดิ นายจิรายสุ ดิษฐเ์ จริญ
ทอ่ี ยู่ 30 สงิ หาคม 2542
เบอรโ์ ทรศพั ท์ 10 หมู่ 4 ต.โนนสะอาด อ.ศรบี ญุ เรือง จ.หนองบวั ลำภู 39180
Email : 063 - 6709875
ประวตั ิการศึกษา [email protected]
พ.ศ.2559
พ.ศ.2562 ปวช. (อเิ ล็กทรอนิกส์) วิทยาลยั การอาชีพศรีบญุ เรือง จงั หวัดหนองบัวลำภู
พ.ศ.2565 ปวส. (อิเล็กทรอนิกส)์ วิทยาลัยการอาชีพศรบี ุญเรอื ง จงั หวดั หนองบัวลำภู
วศ.บ. (วศิ วกรรมอิเล็กทรอนกิ ส์อัจฉริยะ) คณะวิศวกรรมศาสตร์
มหาวทิ ยาลยั เทคโนโลยีราชมงคลอสี าน วทิ ยาเขตขอนแก่น จังหวดั ขอนแกน่