arduino uno采集mpu6050姿态信息和neo-y6m经纬度信息,通过esp8266wifi模块将数据发送到labview,建立TCP通讯(一)

同志们好,最近我在做毕设,过程中也是经历了许多曲折,查找了很多资料,虽然网上别的教程很多,作为一个整合怪,我觉得我的做法还是有参考意义的。另外,我只会发分代码,要是各位读者能看懂就能做出来,根本不需要我发代码。至于实在想要源码的,我决定最终arduino代码收费10快,labview代码收费10快(毕竟现在俺还是研究生在读,很缺钱的。很良心吧!加我QQ1825554165),于是我今天决定写这篇文章。如果各位读者觉得这篇文章有价值的话,请关注点赞收藏。
正文开始
鼠鼠我的毕设是做一个wifi小车,用单片机把姿态信息以及经纬度信息采集出来,建立TCP通讯,将采集到的信息发给上位机,上位机是利用labview编程来实现数据接收。为了达成目的,需要选择元器件,制定步骤。
对于单片机的选择,我选的是arduino uno (当然你也可以选择51系列,stm32系列),这款单片机非常简单,适合嵌入式初学者。至于姿态信息的采集,对于我们鼠鼠来说mpu6050就已经足够,主要是便宜。经纬度信息的采集毫无疑问选择neo-y6m(gps模块冷启动需要3分钟左右,并且放在空旷场合),WiFi模快选择esp8266,建议大家选择正点原子淘宝售卖的(相比于其他同类产品要稳定)。主要器件介绍完了,还需要若干的杜邦线,面包板。来几张图。
 

 

 拿到我们的器件之后,第一步做的事就是测试esp8266模块,给电脑装上arduino 编译器和labview软件,具体步骤参考网上别的方法,这里不说。
一般正点原子的器件出场就给你刷好了AT固件,直接用就可以。如果没有的话,我会在文章末尾附上刷AT固件的方法。对于esp8266模块的开发,有几种,本文就利用单片机设定软串口的方法对esp8266发送AT指令的方法,对它进行设置。同时esp8266模块有三种工作模式,分别为AP模式,它类似于手机开热点,连接后就可以与他通讯;STA模式,类似于手机连接路由器;以及AP+STA模式,他是两者的结合。
将esp8266与uno连接,esp8266的TX接uno的10号数字口,RX接11号数字口(10,11指的是单片机设定的软串口,分别为RX,TX),vcc接vcc(正点原子的esp8266器件需要5v,其他家的一般为3.3v),gnd接gnd。正点原子的esp8266没有EN引脚,不用管它。然后把下面程序烤进去。
此处参考https://blog.csdn.net/weixin_37865166/article/details/109912592?spm=1001.2014.3001.5501
 

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX 配置 10、11 为软串口
void setup()
{
  Serial.begin(9600);
  Serial.println("ESP8266 WIFI Test");
  while (!Serial) {
    ;
  }
  Serial.println("hardware serial!");
  mySerial.begin(115200);
  mySerial.println("software seria");
}
void loop()
{
  if (mySerial.available())
  {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

在串口监视器里应该观察到四行打印来的字符串,否则可能没连接对或者是esp8266的AT固件有问题,需要重新刷AT固件。方法放在最后。
这里讲一讲软串口与硬串口,arduino uno自带的0号和1号数字口为硬串口,为了解决这个问题,arduino官方设计了软串口这个东西,波特率最高只有9600。对于向esp8266发送AT指令都要用到这个软串口,硬串口就是程序里的Serial,它打印东西就是把东西发出去,在串口监视器里可以看到。软串口就是mySerial,它打印东西就是把东西打印到与它相连的esp8266中。
好的,上电之后,打开串口监视器,serial波特率选为9600,但是esp8266出场自带的波特率为115200,因此需要更改。
在串口监视器里输入

AT+UART_DEF=9600,8,1,0,0

返回OK证明发送成功, _DEF的作用是吧波特率设置为9600的指令存在esp8266的flash中,掉电保存。之后你可以发别的AT指令,对他进行设置
输入

AT+CWMODE_DEF=2

返回OK证明发送成功,将esp8266设置为AP模式,保存在flash中。
输入

AT+CWSAP_DEF="EM -ESP8266","12345678",1,4

返回OK证明发送成功,设置AP模式下的WiFi名和密码
输入

AT+CIPMUX=1

返回OK证明发送成功,启动多连接
输入

AT+CIPSERVER=1,8080

返回OK证明发送成功,设置端口号
输入

AT+CIPSTO=1200

返回OK证明发送成功,设置连接服务器超时时间
输入

AT+CIFSR

返回OK证明发送成功,查询AP模式的IP地址
打开安信可的这个软件,网上有资源

 鼠标右键客户端模式,创建连接,把你刚刚查询到的IP地址和设置的端口号写进去。电脑端连接esp8266的WiFi,在测试工具上点击连接。一般连上的话串口监视器就会有反应,
显示0,connected

在串口监视器输入

 

AT+CIPSEND=0,4

返回OK证明发送成功,是为了给0设备发送长度为4的字符串
之后在串口监视器里输入
abcd(长度为4的字符串都可以),此时应该能在测试工具里看到收到的数据。
那么,到目前为止你已经学会了利用对esp8266发送AT指令对他进行设置。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值