当前位置: 首页 > 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.cnnetsun.cn/news/1470123.html

相关文章:

  • 11.2版本:使用Flow3D进行高能量密度下选区激光熔化(SLM)数值模拟与计算流体动力学(...
  • 论文合规双检新标杆:paperzz 查重系统,一站式破解本科毕业双重检测焦虑
  • 谷歌在其营销平台中新增了由 Gemini 驱动的人工智能工具
  • Stable Diffusion XL 1.0开源大模型应用:灵感画廊在数字策展中的落地
  • 区间预测QRCNN-BiGRU-MultiAttention基于分位数回归双向门控循环单元结合...
  • 云容笔谈·东方红颜影像生成系统与STM32的奇妙联动:在嵌入式设备上展示AI艺术
  • GitHub Pages实战:5步构建你的专业静态网站
  • FlowState Lab结合React前端:构建交互式波动模拟器
  • CLEAN:基于对比学习的酶功能预测实战指南与场景解析
  • GameAISDK终极指南:从传统测试到智能决策的全栈实战秘籍
  • ClickHouse流批一体数据处理:从技术原理到实战落地
  • 告别NAS软件!用Windows自带的IIS和WebDAV,5分钟搭建个人文件共享服务器
  • **Compose原理深度解析:从底层机制到实战应用**在现代Android
  • GME-Qwen2-VL-2B-Instruct部署详解:Windows系统C盘空间优化与配置
  • 【WASM时代Python开发者生存手册】:从pip install到浏览器运行——零配置Python WASM编译工作流(附GitHub Action一键部署脚本)
  • ComfyUI工作流开发入门:为Qwen-Image-Edit-F2P定制专属人脸编辑节点
  • RWKV7-1.5B-g1a效果展示:从用户原始需求‘写个招聘JD’到岗位职责/任职要求/公司介绍生成
  • 3大维度解锁虚拟世界互动创作:UdonSharp开发全指南
  • e2fsprogs-1.46.2 交叉编译实战:从配置到问题排查
  • Delphi XE环境下UniDAC控件的安装与配置实战
  • 别再为ImageNet-1k下载发愁了:一个种子+md5sum校验,保姆级搞定2012训练/测试集
  • flutter_swiper完全指南:从入门到架构师的进阶之路
  • Windows Cleaner:3步快速解决C盘爆红的终极方案
  • 14-AI论文创作:论文的结果
  • 解锁GPU渲染效能:Blender硬件加速配置指南(提升效率200%)
  • Wan2.2-I2V-A14B开源大模型教程:Python命令行infer.py参数详解与调优
  • 欧拉系统下载速度慢?3分钟教你更换华为云镜像源(附详细配置步骤)
  • 设备树PHY节点配置详解:从基础属性到高级调优
  • 反射内存卡性能优化:用C++实现高效结构体读写(RFM2g实例)
  • SEO_从零开始学习SEO的完整入门指南