【STM32】【HAL库】遥控关灯1主机

2023-11-06

相关连接

【STM32】【HAL库】遥控关灯0 概述

【STM32】【HAL库】遥控关灯1主机

【STM32】【HAL库】遥控关灯2 分机

【STM32】【HAL库】遥控关灯3 遥控器

需求

主机需要以下功能:

  • 接收来自物联网平台的命令
  • 发送RF433信号给从机
  • 接收RF433信号和红外信号
  • 驱动舵机动作

方案设计

使用双MCU方案,ESP32C3负责物联网相关通信,STM32负责发送信号给从机和接收RF433的信号,还有舵机控制

本单使用ESP32即可,但手头的RF433的遥控器的协议不是常见的,没找到相关的解码库

而ESP32本人不算熟悉,经过测试没法成功解码,因此使用双MCU方案,后续可能会改进

ESP32与STM32直接使用串口通信

使用巴法云平台作为物联网平台,使用MQTT协议连接

硬件设计

433接收

使用XL700芯片(淘宝)(单价0.52)

电路是数据手册的参考电路,天线使用弹簧天线

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YYm9ZLzX-1676130327907)(picture/1.png)]

433发射

使用XL4456(淘宝)(单价0.47)

电路是数据手册的参考电路,天线使用弹簧天线

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F40M8GrJ-1676130327908)(picture/2.png)]

esp32

使用ESP32C3(单价10)(也可以使用esp8266模块,但手头无货,故使用这个芯片)

烧录时同时按下两个按键,先松开EN按键 2s以上后在松开Io9按键

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z0vMwBYL-1676130327910)(picture/3.png)]

stm32

最小系统设计

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1lQqcCy7-1676130327912)(picture/4.png)]

电源

使用5v电源适配器

只需要在这里转3,3v即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iWvjBAGo-1676130327912)(picture/5.png)]

其余接口

包括控制舵机的接口和红外接口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ePYwmzg1-1676130327913)(picture/6.png)]

软件设计

协议

功能 esp32串口输出代码 物联网平台代码 stm32动作
主屋开 0xac0000 H_ON 操作舵机开灯
主屋关 0xac00ff H_OFF 操作舵机关灯
北屋开 0xac1100 N_ON 将串口代码通过RF433发射
北屋关 0xac11ff N_OFF 将串口代码通过RF433发射
南屋开 0xac2200 S_ON 将串口代码通过RF433发射
南屋关 0xac22ff S_OFF 将串口代码通过RF433发射
西屋开 0xac3300 W_ON 将串口代码通过RF433发射
西屋关 0xac33ff W_OFF 将串口代码通过RF433发射
全开 0xacff00 ALL_ON 分别发送各屋开灯代码
全关 0xacffff ALL_OFF 分别发送各屋关灯代码

esp32

环境

这里使用Arduino框架

请自行查询arduino的环境搭建

这里使用了一个第三方库(PubSubClient)来建立MQTT连接

这里提供zip文件(成品的github连接中),自行导入即可

如下图选择添加zip库,添加即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1oUTd77Z-1676130327914)(picture/7.png)]

wifi连接

将esp32设置为sta模式,接入其他wifi

根据wifi的ssid和password接入

如下所示

const char *ssid = "";
const char *password = "";
void setupWifi() {
  WiFi.mode(WIFI_STA);
  esp_wifi_set_mac(WIFI_IF_STA, newMACAddress);
  Serial.println(WiFi.macAddress());

  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected.");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

MQTT

云平台设置

使用的是巴法云的mqtt服务

巴法云设置,传送门

一般的MQTT有这么几个要素

设备id(mqtt_devid),产品id(mqtt_pubid),密钥信息(mqtt_password),主题名(mqtt_topic)

在巴法云中只用了设备ID和主题名(产品ID和密钥为空即可)

#define mqtt_devid "********"  //设备ID
#define mqtt_pubid "  "                                //产品ID
#define mqtt_password " "                              //鉴权信息
const char *mqtt_topic = "ESP32HomeRFLight2";


设备ID是巴法云控制台中的这个红圈里的私钥

主题则是自己建立的主题名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BxBbVn7e-1676130327915)(picture/8.png)]

程序

连接函数

巴法云的MQTT连接地址是(bemfa.com),端口号是 9501

MQTT连接,传入链接地址端口,在传入设备信息,主题信息即可

注意设置回调函数(接收到信息时触发)(client.setCallback(callback)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【STM32】【HAL库】遥控关灯1主机 的相关文章

  • Java的基本语法

    上一篇分享了IDEA的安装 想必大家在知道我在开始学习JAVA了 今天我就来分享这几天学习Java的基本语法 Java基本语法就是指java中的规则 也是一种语言规则 规范 同时也能让您在后面的学习中避免不必要的一些错误和麻烦 是您学好ja
  • python中iloc的用法示例

    得到属性名 第一行数据 数据类型 print data iloc 0 No 1 square feet 150 loaction 4 built 10 price 6450 Name 0 dtype int64 得到属性名 第二行数据 数据

随机推荐

  • docker-compose部署Nginx

    docker挂载文件时会覆盖掉容器里面的目录 因此需准备一份默认的配置文件 准备配置文件 临时启动nginx容器 拷出默认配置文件 启动nginx docker run d name tmp nginx nginx latest 拷出默认配
  • cesium解决报错“DeveloperError: _workerName must be defined for asynchronous geometry”

    文章目录 1 报错问题 2 解决方法 Cesium实战系列文章总目录 传送门 1 报错问题 在使用Primitive方式加载Geojson数据时 报错An error occurred while rendering Rendering h
  • Qt窗口程序所有窗口关闭后进程不退出

    Qt窗口程序所有窗口关闭后进程不退出 Qt窗口程序在所有窗口关闭 Application对象的exec函数返回 main函数结束 程序结束 进程退出 如何实现关闭依然不退出 调用QApplication的函数 setQuitOnLastWi
  • YOLOv5-第Y1周:调用官方权重进行检测

    YOLOv5 第Y1周 调用官方权重进行检测 YOLOv5 第Y1周 调用官方权重进行检测 一 前言 二 我的环境 三 下载源码 四 运行代码 五 视频检测 八 总结 YOLOv5 第Y1周 调用官方权重进行检测 一 前言 本文为 365天
  • Java中的进制转换

    Java中的进制转换 十进制转成十六进制 Integer toHexString int i 注意转换后字母默认为小写 十进制转成八进制 Integer toOctalString int i 十进制转成二进制 Integer toBina
  • 政企云平台“一云多芯”路线全景图

    一云多芯 成为政企云平台可被信赖的关键 近年来 一云多芯 成为云计算领域的一个热词 不仅代表着云平台向着开放化标准化发展 也反应出政企守护 IT安全生命线 的刚性要求 狭义的 一云多芯 是指在一个云平台内可同时采用多种异构CPU等类型的国产
  • 【自然语言处理】条件随机场【Ⅴ】条件随机场解码问题

    有任何的书写错误 排版错误 概念错误等 希望大家包含指正 部分推导和定义相关的佐证资料比较少 供参考 讨论的过程中我会加入自己的理解 难免存在错误 欢迎大家讨论 在阅读本篇之前建议先学习 隐马尔可夫模型系列 最大熵马尔可夫模型 由于字数限制
  • 【小应用】使用深度学习和OpenCV的火灾检测系统

    文章目录 1 创建定制的CNN架构 2 创建自定义inceptionV3模型 3 实时测试 4 结论 创建自定义的InceptionV3和CNN架构用于室内和室外火灾检测 本文为翻墙阅读的国外博客的翻译 亲测代码可实现 嵌入式技术的最新进展
  • Unity脚本的Monobehavior不变绿VS无智能提示补全问题解决

    VS智能提示不出现 程序集引用为空问题解决 刚才遇到的 Unity安装了新版本 然后打开项目脚本的时候虽然还是默认VS打开 但是里面的智能提示都没有了 并且看项目方案面板里面也没有内容 这是因为新装的Unity里面默认的脚本编译器没有设置正
  • CSDN 缩进、目录、表格输入竖线或回车、字体及颜色设置

    目录 0 Markdown在线转换 1 缩进 2 目录 3 转义字符 4 字体 颜色 字号 4 1 颜色 4 2 字体 4 3 字号 4 4 背景色 5 表格 5 1 单元格对齐 5 2 合并单元格 6 数学公式 6 1 上下标 幂指数等
  • mmcls 多标签模型部署在torch serve

    GitHub仓库 gy 7 mmcls multi label torchserve github com 各个文件说明 cls requests demo 分类模型请求api服务的demo det requests demo 检测模型请求
  • linux hostname设置步骤

    查询hostname 设置步骤 其它相关点 hostid etc hosts EDA工具license破解注意事项 以RHEL 6 5为例 查询hostname uname a hostname 设置步骤 vim etc sysconfig
  • 最小年龄仅5岁!盘点全球最“天才”少年黑客 TOP 10

    你还能想起自己8岁的时候 每天都在玩什么吗 可能是在楼下和小朋友一起捉迷藏 在家追一本连载的漫画书 又或者在电脑上玩种菜偷菜的小游戏 当同龄人还在沉迷于这些比较 基础 的小游戏时 有这样一批和互联网 打交道 的少年 已经在忙着发现并修补游戏
  • ciclop读音,购机必备,15种 3D扫描 设备 优缺点汇总

    原标题 购机必备 15种 3D扫描 设备 优缺点汇总 小编总结了市场上常见的15种 可用于3D扫描的软件和设备 并详细列出有关它们的价格 优缺点等特征 以供大家在购机时有比较实用性参考 一 软件选择 根据研究表明 很多人可能不需要买一个3D
  • Android实现倒计时的几种方案

    前言 关于倒计时可以说我们App开发中常见的一种场景了 比如Splash倒计时跳转首页 比如发送短信之后倒计时60秒显示等等 关于倒计时的实现方式 大家可能有不同的做法 这里做一下总结看看你使用的是哪一种呢 一 CountDownTimer
  • 3、Nginx系列之: location和alias的区别

    Nginx系列之 location和alias的区别 一 概述 root 语法 root path 默认值 root html 配置段 http server location if alias 语法 alias path 配置段 loca
  • 【多线程】三种实现方案

    目录 1 多线程中的并发和并行概念 2 多线程中的进程和线程概念 3 多线程的实现方案 3 1 方式1 继承Thread类的方式进行实现 3 2 方式2 实现Runnable接口 3 3 方式3 Callble和Future 可以获取返回结
  • 关于MaxCompute的基本了解

    大数据计算服务 MaxCompute 原名 ODPS 是一种快速 完全托管的 GB TB PB 级数据仓库解决方案 MaxCompute 为您提供了完善的数据导入方案以及多种经典的分布式计算模型 能够更快速的解决海量数据计算问题 有效降低企
  • 【高数】导数存在,导数就连续吗?

    高数 导数存在 导数就连续吗 一 概念理解 二 问题讨论 三 小结 一 概念理解 函数连续 y f x 在 x 0 的某邻域有定义 且满足下式 也就说明 连续意味着 x 0 处 f x 的极限存在 也即 f x 的左极限 右极限 该点函数值
  • 【STM32】【HAL库】遥控关灯1主机

    相关连接 STM32 HAL库 遥控关灯0 概述 STM32 HAL库 遥控关灯1主机 STM32 HAL库 遥控关灯2 分机 STM32 HAL库 遥控关灯3 遥控器 需求 主机需要以下功能 接收来自物联网平台的命令 发送RF433信号给