一、开发版介绍
Wemos D十一个数字输出引脚(包括RX和TX),除了D除0引脚外,其余10引脚均支持PWM、I2C、中断和单总线。模拟引脚(最大3.3V输入)。它的形状和Arduino Uno开发板非常相似,区别在于只有一个模拟引脚。需要注意的是Wemos D1上数字引脚一侧的引脚数比11个多得多,因为D3和D15、D4和D14、D5和D13、D6和D12、D7和D11、D9和On-Board LED是相互连接的。WemosD1是以与Arduino兼容的ESP-8266 WiFi基于模块的开发板通过Arduino IDE实现编程功能。
引脚介绍:
D0(RX) | 串口接收 | GPIO3 |
---|---|---|
D1(TX) | 串口发送 | GPIO1 |
D2 | I/O,不支持中断,PWM,I2C以及1-wire | GPIO16 |
D3/SCL/D15 | I/O,默认模式下,I2C的SCL | GPIO5 |
D4/SDA/D14 | I/O,默认模式下,I2C的SDA | GPIO4 |
D5/SCK/D13 | I/O,SPI的时钟 | GPIO14 |
D6/MISO/D12 | I/O,SPI的MISO | GPIO12 |
D7/MOSI/D11 | I/O,SPI的MOSI | GPIO13 |
D8 | I/O,上拉,低电平时进入FLASH模式 | GPIO0 |
D9/TX1 | I/O,上拉 | GPIO2 |
D10/SS | I/O,下拉,SPI默认片选(SS) | GPIO15 |
A0 | AD输入,0-3.3V | ADC |
二、功能介绍
1.在阿里云中检测室内温度、湿度和光照强度。
2.在烟雾传感器检测到有可燃气体被触发时,蜂鸣器会有节奏地报警并且自动打开窗户通风透气。
3.当温度高于设定的摄氏度,并在红外人体感应模块中检测到人时,自动打开风扇。
4.当光敏电阻检测到光强高于设定值时,窗帘会自动关闭。
5.当雨滴传感器触发时,窗户会自动关闭,防止室内被淋湿。
6.APP 电气开关可控制风扇、窗户和窗帘,检查温湿度和光强值。
三、功能实现
1.整体系统图
由两个舵机模拟窗户、窗帘、雨滴传感器、风扇、蜂鸣器、温湿度传感器、人体红外传感器、烟雾传感器和光敏电阻组成。
2.wifi初始化
void wifiInit(const char *ssid, const char *passphrase) {
WiFi.mode(WIFI_STA); WiFi.begin(ssid, passphrase); while (WiFi.status() != WL_CONNECTED) {
delay(1000); Serial.println("WiFi not Connect"); } Serial.println("Connected to AP"); }
3.风扇
if((t)>10&&(val_ir)==LOW) //温度高于10℃并且有人自动打开风扇; {
digitalWrite(fan,HIGH); AliyunIoTSDK::send("FanSwitch", 1); }else{
digitalWrite(fan,LOW); AliyunIoTSDK::send("FanSwitch", 0); }
4.烟雾
if((val_smog)==LOW) //当烟雾超出临界值时,会触发蜂鸣器报警,同时会自动打开窗户通风透气。
{
tone(buzzer,400,500);
servo2.write(angle_on);
AliyunIoTSDK::send("ChSwitch", 1);
}
加酒精在纸巾
5.光照
if((1024 - val_gz)<350) //当光照强度大、就是太阳强时,自动关闭窗帘,反之,暗了就自动打开窗帘。
{
servo1.write(angle_on);
AliyunIoTSDK::send("ClSwitch", 1);
}else{
servo1.write(angle_off);
AliyunIoTSDK::send("ClSwitch", 0);
}
6.雨水
if((val_ys)==LOW) //雨水传感器触发,落雨就关窗
{
servo2.write(angle_off);
AliyunIoTSDK::send("ChSwitch", 0);
}
7.阿里云状态图
8.app界面