WiFi蓝牙模块开发配置过程中需要注意的细节

  在很多产品的应用场景中,WIFI网络会给我们提供很多便捷,MCU开发中大多使用串口WIFI蓝牙模块来实现产品接入WIFI网络中。
  具体的使用模型如下图所示:整个系统涉及到WIFI网络、手机、服务器平台以及我们设计的产品,一个完整的生态是这样的。服务器端要有数据库和管理平台,手机端有一个APP来远程查看或者操控,大多数智能家居产品使用这个模式。


  常规的使用流程:
  1.产品的WIFI蓝牙模块首先应该处在AP模式下,手机连接WIFI蓝牙模块释放的WIFI网络,实现手机与设备之间的网络通信,这一步是用来给WIFI配置网络使用的,这个网络是能够连接到互联网中的。


  2.当设备收到手机端传来的WIFI名称(SSID)和密码(password)时,WIFI蓝牙模块进入到STA模式下,去连接手机配置的这个WIFI网络,如果网络连接成功之后,就可以去跟服务器进行通信了。
  需要注意的是,部分WIFI蓝牙模块厂家的模块连接的WIFI名称和密码都必须是英文字符和数字,例如中文名的WIFI就无法连接。
  3.WIFI连接成功之后,就是连接服务器了,可以通过一条AT指令与服务器建立一个TCP或者UDP连接或者其他什么网络连接。使用AT指令去建立连服务器的IP和端口。
  例如:
  221.23.452.22是服务的IP地址,1883是端口。
  4.手机去连接到服务器,这样整个系统就连接到一起了,实现了手机到设备的远程查看和设置,服务器更像是一个中间媒介,将手机和设备通过网络连接起来。
  基于MCU开发串口WIFI蓝牙模块需要了解哪些?
  AT指令

  串口WIFI蓝牙模块的控制都是通过AT指令来实现的,其他一些串口模块都是这样的。这里说一些处理AT指令处理的方法。
  AT指令都是字符串格式的,C语言有专门处理字符串的函数,#include string.h这个头文件;
  指令和响应一般都是以rn作为结束符,处理数据时可以以此来作为判断;
  服务器通信协议
  有很多WIFI蓝牙模块已经集成了一些网络通信协议,例如MQTT、HTTP等网络协议,但是有一些模块是没有这些通信协议的,价格会便宜一些。如果没有通信协议,WiFi蓝牙模块只能建立TCP连接,需要开发工程师自己编写程序来实现相应的网络协议。这些协议都是标准协议,可以参考相应的文档,包括连接过程,数据格式等。
  WIFI蓝牙模块不支持MQTT协议,可以通过MCU实现。
  如何实现网络协议?需要开发工程师找到相对应的协议标准,根据协议标准去开发,因此开发工程师要对这些协议标准比较熟悉。
  建立通信协议
  上面介绍的是标准的网络通信协议,通过协议格式能够与服务器正常的连接上,能够正常的通信。但是具体发送什么内容,还需要再制定一个通信协议。
  MesoonRF美迅物联网是工业物联网无线通信模块生产厂商,提供WiFi蓝牙模块,低功耗蓝牙模块,Mesh组网模块,UWB模块,NFC模块等产品,并通过了BQB,FCC,CE,ROHS,REACH等认证。产品包括蓝牙串口透传模块,蓝牙双模,低功耗蓝牙4.2/5.0/5.1/5.2/5.3,hc05/06,BM77/78,蓝牙mesh组网等工业级、车规级物联网方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/840170.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker技术搭建Grafana监控平台

centos7虚拟机和docker的安装:可以参考之前的博文 CPU、mysql-exporter、docker监控模板:百度网盘 提取码:0000 先查看服务器时间是否和当前时间一致,如果不一致,查看对应设置:centos7时间同步博文 一、…

拆分盘投资深度解析:投资逻辑、风险探讨与投资建议

随着互联网技术的飞速发展,金融领域也迎来了诸多创新。其中,拆分盘作为一种新型投资模式,以其独特的“只涨不跌”机制,吸引了众多投资者的目光。本文将深入探讨拆分盘的投资逻辑,并通过一个实际案例进行解析&#xff0…

BUUCTF [GUET-CTF2019]zips 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 得到的 flag 请包上 flag{} 提交。 密文: 得到一个attachment.zip文件 解题思路: 1、解压attachment.zip,得到222.zip文件。尝试解压需要密码,使用Ziperello爆破密码…

Elementui里使用el-date-picker来选择多个日期(日期数量不超过31个)

<el-date-picker style"width:350px;"v-model"selectedDates" type"dates" :picker-options"pickerOptionsMul" placeholder"选择日期"> </el-date-picker>data(){return{selectedDates: [],pickerOptionsMul: …

CATIA入门操作——萌新宝宝遇到的奇奇怪怪的问题解决,持续更新中。。。

目录 引出发生肾么事了&#xff1f;&#xff1f;鼠标中键旋转不了解决&#xff1a;特征树不显示参数关系 我的窗口去哪了&#xff1f;插曲&#xff1a;草图工具的调出插曲&#xff1a;颜色工具栏显示 弹窗警告警告&#xff1a;创建约束是临时的 操作技巧技巧&#xff1a;快速隐…

unity 常用工具和代码

GitHub - edcasillas/unity-missing-references-finder: A tool to find missing references in Unity ASE MagicaCloth PostProcessing GPU culling AmplifyColor Bakery

Unity功能——设置图片渐显渐掩

两种方式&#xff1a; 本质都是 根据时间修改图片透明度 达到动态显示或掩藏图片的效果 1、监测图片透明度&#xff0c;根据图片透明度值来显示或掩藏图片&#xff1b; 2、监测时间&#xff0c;根据时间长短来显示或掩藏图片&#xff1b; 可根据项目需求进行选择和细节修改。 …

微软必应全球宕机事件分析及其对ChatGPT、Copilot等服务的影响

微软必应全球宕机事件分析及其对ChatGPT、Copilot等服务的影响 一、引言 在数字化时代&#xff0c;云计算和在线服务已成为人们日常生活和工作不可或缺的一部分。然而&#xff0c;当这些服务遭遇故障或宕机时&#xff0c;其影响范围往往远超出人们的想象。近期&#xff0c;微…

Bytebase 2.17.0 - 支持为工单设置标签

&#x1f680; 新功能 支持为工单设置标签。 支持显示工单任务执行日志&#xff0c;如影响行数或错误&#xff08;支持 MySQL 和 PostgreSQL&#xff09;。 支持在数据库页面为表或列配置分类分级。之前的版本需要通过 DDL 实现&#xff0c;且只支持 MySQL 和 PostgreSQL。…

C语言从头学11——运算符优先级

前面曾提及多使用圆括号来回避运算符优先级的问题&#xff0c;这里还是大致介绍一下运算符优先级的主要内容。优先级是指如果一个表达式包含多个运算符&#xff0c;哪个运算符优先执行的顺序问题。各种运算符的优先级是不一样的。下面是部分常用运算符的优先级顺序(从高到低)&a…

【传知代码】Modnet 人像抠图-论文复现

文章目录 概述原理介绍核心逻辑ModNet 的结构 环境配置WebUI 小结 论文地址 论文GitHub 本文涉及的源码可从Modnet 人像抠图该文章下方附件获取 概述 人像抠图技术在多个领域有着广泛的应用场景&#xff0c;包括但不限于&#xff1a; 展馆互动拍照&#xff1a;展馆中使用的抠…

【高阶数据结构】 B树 -- 详解

一、常见的搜索结构 适合做内查找&#xff1a; 以上结构适合用于数据量相对不是很大&#xff0c;能够一次性存放在内存中&#xff0c;进行数据查找的场景。如果数据量很大&#xff0c;比如有 100G 数据&#xff0c;无法一次放进内存中&#xff0c;那就只能放在磁盘上了。 如果…

计算机系统基础 8 循环程序

概要 两种实现方法——分支指令实现和专门的循环语句实现以及有关循环的优化。 分支指令实现 倒计数 …… MOV ECX&#xff0c;循环次数 LOOPA&#xff1a;…… …… DEC ECX JNE LOOPA 正计数 …… MOV ECX&#xff0c;0 LOOPA&#xff1a; …… INC ECX CMP …

向郭老师学习研发项目管理

学习研发项目管理思路 通过以下思路来学习研发项目管理&#xff1a; 1、研发项目管理分3级 2、研发项目管理分4类 3、研发项目管理分5大过程组 4、新产品开发项目生命周期分6个阶段 5、研发项目管理分10大知识体系 项目组合、项目集、简单项目3级管理 针对Portfolio组合…

Nodejs及stfshow相关例题

Nodejs及stfshow相关例题 Node.js 是一个基于 Chrome V8 引擎的 Javascript 运行环境。可以说nodejs是一个运行环境&#xff0c;或者说是一个 JS 语言解释器而不是某种库。 Node.js可以生成动态页面内容Node.js 可以在服务器上创建、打开、读取、写入、删除和关闭文件Node.js…

我加入了C++交流社区

最近&#xff0c;我决定加入了一个C交流社区&#xff0c;这是一个专注于C编程语言的在线平台。加入这个社区的初衷是为了提升我的编程技能&#xff0c;与其他对C感兴趣的人交流经验和知识。 加入这个社区后&#xff0c;我发现了许多有趣的讨论和资源。每天都有各种各样的话题&…

使用 QMetaObject 和 QMetaMethod,从Dll库中导出类,Dll库类继承QOject

Dll库代码&#xff1a; .h #ifndef DLLDEMO_H #define DLLDEMO_H #include <QObject> #include "DllDemo_global.h"extern "C" DLLDEMO_EXPORT void *CreatInst(char *strpart);class DLLDEMO_EXPORT DllDemo : public QObject {Q_OBJECT public:D…

解决无法启动Redis,打开redis-server闪退的问题

【问题】 ① 双击redis-server.exe闪退。 ② 终端运行redis-server没反应。 但是终端运行redis -cli没问题。 【解决方法】 步骤1&#xff1a;找到Redis文件夹&#xff0c;右击&#xff0c;在终端打开。 步骤2&#xff1a;输入命令&#xff1a;redis-server.exe redis.windows…

深入解析力扣161题:相隔为 1 的编辑距离(逐字符比较与动态规划详解)

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…