ESP32+MQTT阿里云+手机APP,实现智能家居控制
前言:本人也是第一次写这种类型的文章,有很多不足或者疑问欢迎大家评论区留言。
一、所需软件(自行安装):


二、使用硬件:
ESP32-S3模块、手机
三、Arduino配置:
1、安装ESP32开发板

2、安装这两个库

3、开发板工具设置
按照图中设置就行了,至于为什么,可以去看正点原子的Arduino ESP32课程,讲的很详细

打开IDE首选项查看这个路径

然后在你电脑搜索出来,进去有一个libraries文件,进去之后上面你下载过的头文件在里面,找到文件PubSubClient,打开里面.h文件
修改两个宏:
MQTT_MAX_PACKET_SIZE 1024;
MQTT_KEEPALIVE 60;
5、把我文章最后的代码复制进去,然后修改对应的值即可(目前到这一步还没有配置阿里云,暂时不用修改)

四、Android Studio配置
1、新建项目
选择Empty Views Activity

给项目命名(不能带中文,包括保存目录也不要有中文)

新建之后等待右下角加载完成之后再继续操作
我们主要编辑下图这4个文件即可。(可以直接复制我的文件内容)

2、在build.gradle(Module :app)文件的dependencies函数下加入以下程序
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.9.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
// MQTT客户端库
implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
// JSON解析库
implementation 'com.google.code.gson:gson:2.10.1'
加入之后会弹出这个小窗,点击Sync Now
3、打开AndroidManifest.xml,把这个代码复制进去
<!--允许程序打开网络套接字-->
<uses-permission android:name="android.permission.INTERNET" />
<!--允许程序获取网络状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

4、剩下的MainActivity.java和activity_main.xml文件里面的内容直接复制我的代码过来,然后修改下面的值就行了


5、如果此处没有设备,点击右边新建一个设备即可

五、阿里云配置
1、百度打开阿里云平台 -> 登录 -> 搜索“物联网平台” -> 公共实例(如果没有开通自行百度如何开通,个人版免费)
2、配置产品和设备可以看这位大佬的文章
阿里云物联网平台最完全的使用教程_阿里物联网平台手册-CSDN博客
https://blog.csdn.net/weixin_42155673/article/details/1079509583、最终结果:创建两个设备 (controller打错了不要介意)

4、接着是云产品流转。
简单来说就是把两个设备的消息互相传递,不做这一步消息只有用mqtt软件来控制设备。
看这个大佬的文章就行,跟着他做,做到测试与验证就可以了,验证咱就跳过了哈
六、复制粘贴
1、回到“设备”界面,找到ESP32接收端设备,点击“查看”,把设备证书里面的三元组和MQTT连接参数挨个复制到arduino的程序里面(注意不要把引号误删了,引号也不要打成中文的了)



记得修改上面代码的WiFi配置哦,改为你自己手机热点的WiFi名称和密码,注意AP频段必须要2.4GHz
2、连接实物,编译下载程序


3、把设备证书里面的三元组和MQTT连接参数也挨个复制进Android Studio里面,之后运行一下没问题,导出APP到手机即可(也可以电脑直接插手机进行调试)。


如何导出APK文件可以查看这篇文章:
七、补充
1、我这里只设置了两个IO口控制,对应的ESP32引脚是2和4,一个LED,一个继电器。
可以自己更改

2、找不到手机端Java文件的伙伴,可以打开下面地址找到:
\ESP32+MQTT阿里云+手机APP_程序源码\手机APP程序\ESP32Control\app\src\main\java\com\example\esp32control
八、代码文件
更多推荐
所有评论(0)