当前位置: 首页 > news >正文

ESP32+MQTT阿里云+手机APP,实现智能家居控制

前言:本人也是第一次写这种类型的文章,有很多不足或者疑问欢迎大家评论区留言。

一、所需软件(自行安装):

二、使用硬件:

ESP32-S3模块、手机

三、Arduino配置:

1、安装ESP32开发板

2、安装这两个库

3、开发板工具设置

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

4、还有一个设置,这里是看的这位大佬的,https://blog.csdn.net/weixin_55638055/article/details/130094472?fromshare=blogdetail&sharetype=blogdetail&sharerId=130094472&sharerefer=PC&sharesource=qq_40021465&sharefrom=from_linkhttps://blog.csdn.net/weixin_55638055/article/details/130094472?fromshare=blogdetail&sharetype=blogdetail&sharerId=130094472&sharerefer=PC&sharesource=qq_40021465&sharefrom=from_link

打开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软件来控制设备。

看这个大佬的文章就行,跟着他做,做到测试与验证就可以了,验证咱就跳过了哈

https://blog.csdn.net/Freddy_Ssc/article/details/144412456?fromshare=blogdetail&sharetype=blogdetail&sharerId=144412456&sharerefer=PC&sharesource=qq_40021465&sharefrom=from_linkhttps://blog.csdn.net/Freddy_Ssc/article/details/144412456?fromshare=blogdetail&sharetype=blogdetail&sharerId=144412456&sharerefer=PC&sharesource=qq_40021465&sharefrom=from_link5、做到这里,基本上所有的东西都已经配置完成了。

六、复制粘贴

1、回到“设备”界面,找到ESP32接收端设备,点击“查看”,把设备证书里面的三元组和MQTT连接参数挨个复制到arduino的程序里面(注意不要把引号误删了,引号也不要打成中文的了)

记得修改上面代码的WiFi配置哦,改为你自己手机热点的WiFi名称和密码,注意AP频段必须要2.4GHz

2、连接实物,编译下载程序

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

如何导出APK文件可以查看这篇文章:

https://blog.csdn.net/m0_74353785/article/details/148535565?fromshare=blogdetail&sharetype=blogdetail&sharerId=148535565&sharerefer=PC&sharesource=qq_40021465&sharefrom=from_linkhttps://blog.csdn.net/m0_74353785/article/details/148535565?fromshare=blogdetail&sharetype=blogdetail&sharerId=148535565&sharerefer=PC&sharesource=qq_40021465&sharefrom=from_link使用USB真机调试可以看这篇文章:

https://blog.csdn.net/JUSTLOVEBOY/article/details/119413729?fromshare=blogdetail&sharetype=blogdetail&sharerId=119413729&sharerefer=PC&sharesource=qq_40021465&sharefrom=from_linkhttps://blog.csdn.net/JUSTLOVEBOY/article/details/119413729?fromshare=blogdetail&sharetype=blogdetail&sharerId=119413729&sharerefer=PC&sharesource=qq_40021465&sharefrom=from_link

七、补充

1、我这里只设置了两个IO口控制,对应的ESP32引脚是2和4,一个LED,一个继电器。

可以自己更改

2、找不到手机端Java文件的伙伴,可以打开下面地址找到:

\ESP32+MQTT阿里云+手机APP_程序源码\手机APP程序\ESP32Control\app\src\main\java\com\example\esp32control

八、代码文件

【免费】ESP32+MQTT阿里云+手机APP-程序源码资源-CSDN下载https://download.csdn.net/download/qq_40021465/92757436?spm=1001.2014.3001.5503

http://www.jsqmd.com/news/532861/

相关文章:

  • GME-Qwen2-VL-2B-Instruct部署详解:Windows系统本地开发环境配置教程
  • 成都装饰公司优选:别墅装修口碑、质量与适配性最新解析 - 深度智识库
  • 国产开源大模型2026格局:Qwen3.5与DeepSeek V3.2深度解析
  • OpenClaw高阶用法:Qwen3.5-4B-Claude多技能组合调度
  • 2026年西安权际海外移民服务排名,解析权际移民的服务质量保障与特色 - myqiye
  • 11.2版本:使用Flow3D进行高能量密度下选区激光熔化(SLM)数值模拟与计算流体动力学(...
  • 小白也能轻松上手:cv_unet_image-colorization本地AI上色工具快速入门指南
  • 分期乐购物额度回收避坑指南:3 个标准筛掉 99% 的不靠谱渠道 - 团团收购物卡回收
  • 2026年如何选择移民公司,权际移民服务特色与口碑参考 - mypinpai
  • Z-Image-Turbo-rinaiqiao-huiyewunv 前端交互实战:用Vue3构建可视化AI应用界面
  • 3步掌握神经网络可视化:PlotNeuralNet专业绘图实战指南
  • fern-wifi-cracker使用教程
  • 2026年国内热门的IPPBX软交换厂商找哪家,IP电话/IAD综合接入网关,IPPBX软交换厂家有哪些 - 品牌推荐师
  • 2026年揭秘做IBMS系统打破供应商专有生态垄断的企业 - 工业品牌热点
  • 焦耳小偷电路:高效升压转换设计解析
  • AlmaLinux 8下RealVNC自定义分辨率配置全攻略
  • 2026六大CRM系统:从线索到报表能力拆解与选型参考 - jfjfkk-
  • 论文合规双检新标杆:paperzz 查重系统,一站式破解本科毕业双重检测焦虑
  • 5大维度解锁专业音效:开源均衡器深度优化指南
  • 蚁剑免杀实战:5种PHP木马绕过360/火绒的骚操作
  • 像素幻梦应用场景:AR滤镜开发者用AI生成像素风贴纸与动态遮罩
  • 告别屎山代码!架构设计三大黄金原则 SOLID、DRY、KISS 全拆解
  • nanobot+OpenClaw私人教练:健身计划生成与追踪
  • 2026年CRM系统全景解析:品牌矩阵、选型逻辑与趋势预判 - jfjfkk-
  • 观测线程状态
  • OpenClaw+Qwen3-32B私有部署:RTX4090D 24G显存一键体验自动化助手
  • SEER‘S EYE模型原理入门:图解卷积神经网络与注意力机制
  • SpringBoot参数校验实战:@Valid和@Validated注解的5个高频使用场景与避坑指南
  • 2026年GEO服务商综合实力测评:技术驱动与实效口碑深度解析 - 品牌2025
  • ldn_mitm:突破Switch局域网联机限制的开源解决方案