动易网站后台密码破解,自己开发一款聊天软件,中山网约车资格证报名地点,南京经济经济技术开发总公司基于Arduino的环境监测装置 引言痛点功能前期准备软件硬件 项目开发硬件开发软件开发 功能演示更多精彩#xff0c;欢迎关注 引言
本项目使用机智云Gokit2.0开发板#xff0c;实现基于Arduino的环境监测装置#xff0c;解决目前大多数人对环境数据要求逐渐增高的痛点。
痛… 基于Arduino的环境监测装置 引言痛点功能前期准备软件硬件 项目开发硬件开发软件开发 功能演示更多精彩欢迎关注 引言
本项目使用机智云Gokit2.0开发板实现基于Arduino的环境监测装置解决目前大多数人对环境数据要求逐渐增高的痛点。
痛点
环境数据可检测温湿度可智能调控人起床自动开灯按下开关调控屋内设备
功能
当温度超过20°C后风扇打开一档当温度超过30°C后风扇打开二档。温度低于20°C风扇自动关闭。实时检测温湿度传感器、红外人体检测传感器等数据并通过串口发送出来进行数据显示。红外人体检测传感器实时检测是否有人起床有人则打开白灯。按下按键一打开白灯按下按键二打开风扇。
前期准备
软件
Arduino IED串口调试助手
硬件
机智云Gokit2.0开发板Arduino
项目开发
硬件开发 软件开发 首先申明引用的头文件 #include Gizwits.h #include Wire.h #include SoftwareSerial.h #include DHT.h #include ChainableLED.h #include MsTimer2.h 根据电路图定义温湿度传感器、按键1、按键2、RGB灯、红外传感器和电机的管脚。 #define Infrared_PIN 2 /// 红外IO管脚 #define DHTPIN 3 /// 温湿度IO管脚 #define MOTOR_PINA 4 /// 电机IO管脚 #define MOTOR_PINB 5 /// 电机IO管脚 #define KEY1 6 /// 按键IO管脚 #define KEY2 7 /// 按键IO管脚 //温湿度功能值定义 #define DHTTYPE DHT11 //电机功能值定义 #define MOTOR_MAX 100 #define MOTOR_MAX1 -100 #define MOTOR_MIN 0 #define MOTOR_16 DHT dht(DHTPIN, DHTTYPE); ChainableLED leds(A5, A4, 1); SoftwareSerial mySerial(0, 1); // A2 - RX, A3 - TX 编写温湿度读取功能函数 void DHT11_Read_Data(unsigned char * temperature, unsigned char * humidity) { *temperature (unsigned char)dht.readTemperature(); *humidity (unsigned char)dht.readHumidity(); return; } 编写电机控制功能程序 void Motor_status(long motor_speed) { unsigned char Temp_motor_speed 0; if (motor_speed 0) //停止 { digitalWrite(MOTOR_PINA, LOW); } if (motor_speed 0) //正转 { Temp_motor_speed (motor_speed - 0) * 51; if (Temp_motor_speed 255) Temp_motor_speed 255; digitalWrite(MOTOR_PINA, LOW); analogWrite( MOTOR_PINB, Temp_motor_speed); } if (motor_speed 0) //反转 { Temp_motor_speed 255 - (0 - motor_speed) * 51; //Temp_motor_speed (255 ‐ (5 motor_speed))* 51; if (Temp_motor_speed 255) Temp_motor_speed 255; digitalWrite(MOTOR_PINA, HIGH); analogWrite( MOTOR_PINB, Temp_motor_speed ); } } 编写RGB灯功能程序 void LED_RGB_Control(byte red, byte green, byte blue) { leds.setColorRGB(0, red, green, blue); } 声明温湿度暂存变量 unsigned char temperature_buf0; unsigned char humidity_buf0; 在初始化程序中定义串口波特率初始化RGB定义GPIO。 mySerial.begin(115200); leds.init(); digitalWrite(A0, HIGH);//使能RGB LED pinMode(KEY1, INPUT_PULLUP); //KEY1 上拉输入 pinMode(KEY2, INPUT_PULLUP); //KEY2 上拉输入 LED_RGB_Control(0,0,0); 在主循环中首先检测温湿度值并将温湿度传感器的值进行显示。当温度超过20°C后风扇打开一档当温度超过30°C后风扇打开二档。温度低于20°C风扇自动关闭。 DHT11_Read_Data(temperature_buf, humidity_buf); if(temperature_buf20) { Motor_status(1); } else if(temperature_buf30) { Motor_status(2); } else { Motor_status(0); } mySerial.println(“temperature:”); mySerial.println(temperature_buf, DEC); mySerial.println(“humidity:”); mySerial.println(humidity_buf, DEC); 按下按键一打开白灯按下按键二打开风扇。 if(digitalRead(KEY1) LOW) { LED_RGB_Control(255,255,255); mySerial.println(“open led!”); } else if(digitalRead(KEY2) LOW) { Motor_status(1); mySerial.println(“open fan!”); } 检测红外人体检测传感器是否有人有人则打开白灯没人则关闭。并通过串口发送出来。 if (digitalRead(Infrared_PIN)) { mySerial.println(“No one appears and disappears!”); LED_RGB_Control(0,0,0); } else { LED_RGB_Control(255,255,255); mySerial.println(“Someone is appearing!”); }
功能演示 更多精彩欢迎关注
抖音号《物联网知识》
公众号《物联网知识》
B站:《跋扈洋》
CSDN:《跋扈洋》