The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Cannabis greenhouse Temp & Humidity Embedded Control Box

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by BE ST, 2022-05-07 02:36:32

Cannabis greenhouse Temp & Humidity Embedded Control Box

Cannabis greenhouse Temp & Humidity Embedded Control Box

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 ปวส. (อิเล็กทรอนกิ ส)์ วิทยาลัยการอาชพี ศรบี ญุ เรอื ง จงั หวัดหนองบัวลำภู
วศ.บ. (วิศวกรรมอิเล็กทรอนิกส์อจั ฉรยิ ะ) คณะวิศวกรรมศาสตร์
มหาวิทยาลยั เทคโนโลยีราชมงคลอสี าน วทิ ยาเขตขอนแกน่ จังหวดั ขอนแกน่


Click to View FlipBook Version