UWB定位需要电脑读取UWB基站的串口数据来读取距离信息,用wifi连接可以实现远程接收串口数据方便连接。这里记录一下如何让51UWB单片机接入WiFi模块ESP8266。

前置条件:

  • 单片机完成基站(RX)、标签(TX)程序的烧录(参考官方用户手册)

  • ESP8266模块完成AT指令集的烧录,可以通过串口用AT指令对其进行控制

开始!

  • ESP8266接入串口(这边用的是ESP8266-NodeMCU,可以直接通过安卓线连入电脑的USB口),在设备管理器中查看端口号,打开串口调试工具(用的是XCOM)连接该端口号。

  • 按RST复位ESP8266,如果串口有输出初始化信息,说明连接成功,接下来可以用AT指令对其进行操作

  • 模块配置为Station模式:AT+CWMODE=1

这时ESP8266可以作为TCP客户端,电脑作为TCP服务端进行通讯,之后可以进行透传,将串口数据通过WIFI传至电脑。

  • 扫描WIFI信息:AT+CWLAP

  • 选择要连接的网络(这里选择手机热点):AT+CWJAP="SSID","password"

  • 设置多连接模式:AT+CIPMUX=1

  • 打开cmd,输入ipconfig查看此时电脑接入WiFi的ip地址:

  • 设置上电自动透传:

AT+SAVETRANSLINK=1,"192.168.221.179",8080,"TCP"

需关闭防火墙与虚拟机,不然连接可能会出现ERRORCLOSED。可参考:

https://blog.csdn.net/rong81590509/article/details/76133002

https://blog.csdn.net/yottian/article/details/122916280

出现OK则配置完成,断开端口,拔出串口线/USB线。

  • 将ESP8266接入UWB基站串口(接入1号基站即可)

引脚如下:

ESP8266

UWB基站

RX

TX

TX

RX

G

GND

3V

3.3V

给基站上电(插入充电宝即可),并打开其余基站与标签,这里开了三个基站与一个标签作单标签定位测试。

开启之后基站的串口即可不断接收到标签到三个基站的距离数据,下面要做的就是将这些串口的数据传到电脑。

  • 打开网络调试助手测试连接情况(这里用XNET),设置协议为TCP Server,本机IP为192.168.221.179,端口8080,点击连接。

如果能接收到数据(一堆乱码),说明ESP8266与电脑的TCP通信没问题,剩下就是把这些数据解析出来了。

如果没收到数据再检查ESP8266的配置情况。

  • 断开XNET的连接,利用python脚本开启TCP服务端并解析数据。

import socket
import threading # 多线程# TCP IP与端口号
LOCAL_IP = "192.168.221.179"
PORT = 8080def dispose_client_request(tcp_client_1, tcp_client_address):# 循环接收和发送消息while True:recv_data = tcp_client_1.recv(16)# 有消息就回复数据,如果消息长度为0表示客户端下线了if recv_data:recv_data = bytes(recv_data)decode(data=recv_data)else:print("%s 客户端下线了..." % tcp_client_address[1])tcp_client_1.close()breakdef decode(data):# 根据UWB传输协议进行解码if len(data) != 16:print('error len data')return#print(data[4])tag_id = data[3]dis0 = (data[6] + data[7]*256)/100dis1 = (data[8] + data[9]*256)/100dis2 = (data[10] + data[11]*256)/100if __name__ == '__main__':fig = plt.figure()# 创建服务端套接字对象tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 端口复用tcp_server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)# 绑定端口tcp_server.bind((LOCAL_IP, PORT))# 设置监听tcp_server.listen(128)# 建立TCP连接tcp_client, tcp_client_address = tcp_server.accept()print  ('connected from:', tcp_client_address)socks = tcp_clientthd = threading.Thread(target=dispose_client_request, args=(tcp_client, tcp_client_address))thd.setDaemon(True)thd.start()
  • decode函数将target_ID、距离等信息提取出来之后,后面就可以进行自己的编程(定位算法、可视化等)啦

51UWB单片机连接ESP8266实现Wifi接收串口数据相关推荐

  1. 52单片机连接ESP8266烧入固件使用MQTT协议将温湿度上传至OneNET云平台

    52单片机连接ESP8266烧入固件使用MQTT协议连接OneNET云平台 参考: ---------------------------------------------------------- ...

  2. QT多线程接收串口数据

    ** QT多线程接收串口数据 ** 1.前言 QT多线程的使用,和绝大数人一样,犯了错误(请查阅Qt开发人员( Bradley T. Hughes)Blog中的文章 you are-doing-it- ...

  3. serialport接收串口数据_C#串口操作类,包括串口读写操作

    串口进行操作的类,其中包括写和读操作,类可设置串口参数.设置接收函数.打开串口资源.关闭串口资源,操作完成后,一定要关闭串口.接收串口数据事件.接收数据出错事件.获取当前全部串口.把字节型转换成十六进 ...

  4. java swing 串口_ComTest 接收串口数据,并显示在文本框内,通过JavaSwing实现 Develop 265万源代码下载- www.pudn.com...

    文件名称: ComTest下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 3157 KB 上传时间: 2016-09-21 下载次数: 0 提 供 者: 韩坤 ...

  5. 串口通信——接收串口数据并处理(C语言)

    本文主要内容包含:  1.接收串口数据程序的编程逻辑示意图:  2.接收串口数据程序要用到的通用函数模块(可直接引用,无需更改):  3.接收串口数据程序的示例. 1.接收串口数据程序的编程逻辑示意图 ...

  6. 使用iocomp中iplot控件实现接收串口数据并显示曲线

    概述:Iocomp 是一个强大的工业控件.适用于vb/vc/vs.net/Delphi/BCB(windows/linux).囊括了常见的工业控件. 本例使用简单iocomp控件中的一个简单iplot ...

  7. simulink接收串口数据_基于Unity串口通信的解决方案

    思路有三种,等下我会详细介绍. 后面的博客详细介绍是我收录两年前写的博客,现在我已经没有往串口方向进行开发了,所以只能将一些思路分享给大家. ​ ​ 解决方式一:将Unity串口通信数据模块(接收与发 ...

  8. simulink接收串口数据_JLink RTT连接Simulink

    JLink及其RTT功能简介 JLink是SEGGER开发的用于DEBUG ARM核芯片的仿真器,支持SWD,JTAG.JLink Pro支持最高SWD频率达50MHz,普通JLink V10也支持2 ...

  9. 如何接收串口数据_UART IDLE 中断使用接收不定长串口数据

    前言 在串口通信应用中,我们常使用接受和发送中断,相信大家都不陌生.这里有个非常有用的中断可能被大家所忽略,即总线IDLE中断.当一帧数据传输结束之后,总线会维持高电平状态,此时,就可以触发MCU的I ...

最新文章

  1. 如何用R进行单因素方差分析
  2. Opengl-光照-基本光照-投光物-多光源(现实世界的光可不只有太阳也并不只有一个)
  3. asp.net Forums 之HttpHandler和HttpModule
  4. 统计学习方法第九章作业:三硬币EM算法、GMM高维高斯混合模型 代码实现
  5. LeetCode_数组_简单题
  6. HDU 4917 Permutation(拓扑排序 + 状压DP + 组合数)
  7. 19号以后包括数组在内的所有内容(数组、函数、方法、dom操作)
  8. ajax 跨站返回值,jquery ajax 跨域问题
  9. 聊聊Lambda架构
  10. C 语言实例 - 判断奇数/偶数
  11. 软件安装 gcc编译器
  12. uni app push 集成华为 及 调试
  13. matplotlib堆积图
  14. 这是我见过最美的公众号图文排版,不接受反驳。
  15. SpringBoot word文件转pdf
  16. 又一家中国IC进军IPO:年出货上亿颗,在做Type-C 8K芯片
  17. 智能书包方案——智能书包重力测量模块CSM92F32
  18. 最小费用最大流 【模板】
  19. 数据库原理与应用--数据库系统概述
  20. 产业复苏|2020区块链与数字经济高峰论坛暨区块链战“疫”报告线上发布会召开...

热门文章

  1. 很有深意的12句话!
  2. 论文图片格式转化工具
  3. tqdm介绍及常用方法
  4. 酒管系统 需求 结构图
  5. 酒店管理系统部分代码(王志宏,徐傲)
  6. 浅谈智能终端实行设备联网,条码系统ERP对接
  7. 【opencv 官方教程】翻译2 核心功能 中 图像操作 线性变换 亮度调整 简单绘图
  8. Android开发-在Android里接入阿里云推流SDK实现直播推流的功能
  9. 记录编程学习过程(C语言)
  10. (二)、Python查询12306余票:联网查询余票信息并解析