关闭视频

基于arduino的智能家居系统,远程控制家中的电器

发表于:2021年06月03日 17:49更新于:2024年05月05日 07:46

利用机智云平台进行开发,在机智云平台上创建数据点,然后二次开发其MCU代码和APP代码。最终实现APP能够获取到智能家居的温湿度,并且能够远程控制智能家居中的风扇和加湿器。

 

链路连接关系

TP-LINK路由器通过网线联网,WIFI模块连接此路由器:账号arduino,密码12345678。

手机连接此路由器网络/其他无线网络/使用流量,打开APP就可以对智能家居控制。(后来直接组成局域网进行控制,没将数据上传到机智云,所以手机只能连接路由器网络arduino进行控制)

注意:继电器模块和温湿度模块都单独采用USB转TTL上的5V电源供的电,否则可能会影响WIFI的正常工作。如果WIFI模块连接电脑分出来的无线网,会出现不稳定,APP经常会获取不到数据。(待考证)

 

硬件连线说明

WIFI模块

WIFI模块 RX——arduino TX

WIFI模块 TX——arduino RX

WIFI模块 VCC——arduino 3.3V

WIFI模块 GND——arduino GND

KEY1——arduino PIN6(后来去掉了,直接通过程序设置为SOFTAP模式)

KEY2——arduino PIN7(后来去掉了,直接通过程序设置为SOFTAP模式)

 

注意:KEY2短按为WIFI_SOFTAP_MODE模式,此时可通过局域网控制智能家居;长按为WIFI_AIRLINK_MODE模式,此时可通过机智云服务器控制

 

温湿度传感器DHT11

DHT11 VCC——arduino 5V

DHT11 GND——arduino GND

DHT11 DATA——arduino PIN2

 

控制风扇的继电器模块(低电平触发)

RELAY VCC——USB转TTL5V

RELAY GND——arduino GND

RELAY IN——arduino PIN12

 

控制加湿器的继电器模块(低电平触发)

RELAY VCC——USB转TTL 5V

RELAY GND——arduino GND

RELAY IN——arduino PIN13

 

开发步骤

1、先对ESP8266-12F WIFI模块烧写机智云的固件,按照下面的电路图搭建WIFI模块外围电路,当然也可以买搭建好的WIFI模块(注意此时GPIO0接地)。参考资料

 

 

2、将GPIO0悬空,WIFI模块、继电器模块和温湿度传感器与arduino按照连线说明进行连接。

 

3、在机智云上下载MCU和APP的代码。机智云APP生成


4、按照 整体步骤参考链接 在arduino 1.8.5对MCU代码进行二次开发。

整体步骤:参考链接1参考链接2
 

5、在Android studio对APP进行二次开发。

其中改APP涉及到的图标:替换icon.png图标、launch图标和about_logo.png图标即可。参考链接



6、下载好arduino程序后,首先短按KEY2,使系统在局域网工作,如果一切正常的话,长按KEY2,此时系统通过WIFI模块与机智云联网。(后来不用进行这一步)

 

7、APP配置界面,首先短按KEY2键,配置WIFI模块为WIFI_SOFTAP_MODE模式,连接到路由器;然后长按KEY2键,配置WIFI模块为WIFI_AIRLINK_MODE模式,连接到机智云服务器,手机也连接到路由器网络。(后来不用进行这一步,打开APP直接点击“一键配置”即可)
 

 

注意事项:

1、下载arduino程序时最好将所有接在板子上的线拔掉,防止下载失败。特别是接在arduino TX和RX上的引线,必须拔掉,因为下载程序是通过这个串口下载的。

2、不能在WIFI模块连着某个无线的情况下,配置其连接另外一个无线,此时配置不成功。

3、供电采用方口(下载口),用圆口供电的话APP控制不正常(好像是电压小)。

4、配置引脚输出时:

首先定义引脚:int myWaterPin = 5;

然后设置为输出模式:pinMode(myWaterPin, OUTPUT);

最后根据逻辑进行高低输出:

if(varR_Water_OnOff == 0)

{

digitalWrite(myWaterPin, LOW);

}

else{digitalWrite(myWaterPin, HIGH);

}

 

5、MCU和APP代码的目录中最好不要有中文,可能会编译失败。

6.目录说明

Arduino代码位置:Arduino连接机智云\MCU_ArduinoUNOR3_source\Gizwits\examples\simpleTry

APP代码位置:Arduino连接机智云\App_Android_source\AndroidStudio

 

实物图

 

运行记录