资深版主
- 积分
- 1207
- 金钱
- 1207
- 注册时间
- 2020-2-25
- 在线时间
- 114 小时
|
引言
本项目使用机智云gokit2.0开发板,实现智能睡眠环境装置,解决目前大多数人对卧室睡眠要求逐渐增高的痛点。
痛点
- 环境数据可检测
- 温湿度可智能调控
- 人起床自动开灯
- 按下开关调控屋内设备
功能
- 当温度超过20°C后,风扇打开一档;当温度超过30°C后,风扇打开二档。温度低于20°C,风扇自动关闭。
- 实时检测温湿度传感器、红外人体检测传感器等数据,并通过串口发送出来进行数据显示。
- 红外人体检测传感器实时检测是否有人起床,有人则打开白灯。
- 按下按键一,打开白灯;按下按键二,打开风扇。
前期准备软件 硬件
项目开发 硬件开发
软件开发
- #include <Gizwits.h>
- #include <Wire.h>
- #include <SoftwareSerial.h>
- #include <DHT.h>
- #include <ChainableLED.h>
- #include <MsTimer2.h>
[color=rgb(0, 0, 0) !important]复制代码
2、根据电路图,定义温湿度传感器、按键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
[color=rgb(0, 0, 0) !important]复制代码
3、编写温湿度读取功能函数
- void DHT11_Read_Data(unsigned char * temperature, unsigned char * humidity)
- {
- *temperature = (unsigned char)dht.readTemperature();
- *humidity = (unsigned char)dht.readHumidity();
- return;
- }
[color=rgb(0, 0, 0) !important]复制代码
4、编写电机控制功能程序
- 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
|
|