//include <Intelligent_dangerous_object_detection_system>
#include "Main_Method.h"
//define value and pin
#define pin10 10 //red
#define pin9 9 // green
#define pin8 8 //yellow
#define pin7 7 // bt red (stop)
#define pin6 6 // bt green (start)
#define pin5 5 // DHT22 pin5
#define leg_ping_pin 15 // output pin HC_SR04
#define leg_in_pin 16 // in pin HC_SR04
#define Det10s 10000 //delay 10s
#define Det5s 5000 // delay 5s
//end define value and pin
//create main class
Intelligent_dangerous_object_detection_system::Arduino_Mega *call_arduino_mega = new Intelligent_dangerous_object_detection_system::Arduino_Mega() ;
//end create main class
//setup function
void setup(void) {
Serial.begin(12000) ; //set begin 12000
Serial.println("-------------------------------------------------------") ;
misc_call->start() ; Serial.println("-------------------------------------------------------") ;
misc_call->check_version() ; Serial.println("-------------------------------------------------------") ;
leg_arduino_call->set_led_Arduino(pin10, pin9, pin8) ; Serial.println("-------------------------------------------------------") ;
char *pinMode01 = "OUTPUT" ;
leg_arduino_call->set_pin_mode_led() ; Serial.println("-------------------------------------------------------") ;
button_arduino_call->set_leg_button_green(pin6) ; Serial.println("-------------------------------------------------------") ;
button_arduino_call->set_leg_button_red(pin7) ; Serial.println("-------------------------------------------------------") ;
Serial.println("<Button control (green: start) (red : stop)>") ; Serial.println("-------------------------------------------------------") ;
//set dht type DHT22
dht_call_arduino->set_dht01(pin5) ; Serial.println("-------------------------------------------------------") ;
hc_sr01_call_arduino->set_HC_SR04(leg_ping_pin, leg_in_pin) ; Serial.println("-------------------------------------------------------") ;
model = dht_call_arduino->get_dht_model() ;
model->begin() ;
}
//start program (Main)
void loop(void) {
button_arduino_call->button_read_green() ;
green_button = button_arduino_call->button_read_return_value_green() ;
button_arduino_call->button_read_red() ;
red_button = button_arduino_call->button_read_return_value_red() ;
user_contorl_program = Serial.readStringUntil('\n'); // user contorl
user_contorl_program.trim(); //Remove leading spaces
if ((*(int *)green_button == HIGH && *(int *)red_button == LOW) || (user_contorl_program == "start" || user_contorl_program == "Start")) {
digital_leg_write_all(*(array_leg_led + 0), *(array_leg_led + 1) + 1, *(array_leg_led + 2) + 1, 1000) ;
Serial.println("Start") ;
contorl_while_out = true ;
while (contorl_while_out) {
humidity = model->readHumidity() ;
if (humidity >= 41) {
contorl_while_in = true ;
while (contorl_while_in) {
delay(1000) ;
hc_sr01_call_arduino->set_pinMode_auto() ;
array_dht_arduion = dht_call_arduino->get_DHT01_value() ;
result_cm01 = hc_sr01_call_arduino->get_cm_Hc() ;
call_arduino_mega->inspect_objects(array_leg_led, array_dht_arduion, result_cm01) ;
Serial.println("-------------------------------------------------------") ;
Serial.println("You need stop") ;
user_contorl = Serial.readStringUntil('\n');
user_contorl.trim();
if(user_contorl == "stop" || user_contorl == "Stop"){
Serial.println("Stop") ;
contorl_while_out = false ;
contorl_while_out = false ;
exit(1) ;
}
delay(2000) ;
}
}else{
Serial.println("Humidity < 41") ;
contorl_while_out = false ;
}
delay(2000);
}
} else if ((*(int *)red_button == HIGH && *(int *)green_button == LOW) || (user_contorl_program == "stop" || user_contorl_program == "Stop")) {
digital_leg_write_all(*(array_leg_led + 2) + 1, *(array_leg_led + 1) + 1, *(array_leg_led + 0), 1000) ;
Serial.println("stop program") ;
exit(1) ;
} else {
digital_leg_write_all(*(array_leg_led + 0), *(array_leg_led + 1) + 1, *(array_leg_led + 2) + 1) ;
Serial.println("Not start") ;
delay(1000) ;
}
}