(一)esp8266透传简单使用

最近闲的在捣鼓wifi,以太网连接网,不过好像没有那么多时间去研究cc3200,先从封装好的芯片模块开始玩起吧,这几天准备研究下ESP8266,由于手头上是有一个透传的模块,和一个块STM32F4的板子,而且有对应的代码例程,所以先开始研究下,工作的大致过程。

那开始从esp8266的透传开始:

所谓的透传可以这样来理解:

透传就是指不需要关心wifi协议是如何实现的.所需要做的就是A通过串口发数据,B通过串口收数据,整个过程中A串口和B串口就像是用导线直接连接起来了一样。则对于开发人员来看,就是完全透明的。既可以用下面这句来表示:

A----串口---->wifi - - -->   电磁波   - - --> wifi----->串口----->B
则对开发人员来讲完全可以认为是这样的:
A------------------------         串口          --------------------------->B

      插好模块就是上面的这两个样子的了。模块别插反了,不然会发热明显,不过好像没那么容易烧掉

那我得了解下无线网可以工作的几种模式了,可以分为3类:station , ap  , sttaion&ap:

1、station模式:Station, 类似于无线终端,sta本身并不接受无线的接入,它可以连接到ap,一般无线网卡即工作在该模式。

2、ap模式:Access Point,提供无线接入服务,允许其它无线设备接入,提供数据访问,一般的无线路由/网桥工作在该模式下。ap和ap之间允许相互连接。

3、sttaion&ap模式:就是两个功能支持。

则可以理解为:station为终端,就像我们手机做终端设备,连到我们的无线路由器上。ap就好比是你手机开了热点,像是一个无线路由器,其他的终端可以连进来。

=========================================

选模式的指令:

AT+CWMODE=1  //station模式

AT+CWMODE=2  //ap模式

AT+CWMODE=3  //sttaion&ap模式

==========================================

那么好像主要就是一些AT指令的介绍咯,一般这类的设备包括蓝牙,wifi  ,GSM模块等等设备 的功能 都是封装成了相应的AT指令,我们要使用模块的功能,对应查找手册就行。

那就开始列出一些,感觉常用用的到的吧。(其实在对应厂商出的测试软件里面就有了这个些常用的了)

这里有一篇博客,是把常用的指令,运行和返回值图都粘出来了,不熟的朋友可以看看:

https://blog.csdn.net/weixin_40153838/article/details/78824388

测试指令:        AT

工作模式选择: AT+CWMODE=3

复位重启:        AT+RST

感觉还是太多了,还是贴图吧。

4.1 选择要工作的模式

4.2 加入某个AP:

AT+CWJAP=”public”,”123456789”

4.3 列出当前的可用AP列表

4.4 退出当前AP的连接

4.5 设置AP模式下的参数

AT+CWSAP="ESP8266","0123456789",11,0

好像就把几个最常用的列出来了。。。

 

测试工具可以用这个esp8266调试工具-v1.1:

链接:https://pan.baidu.com/s/1vqxeWSQ2jz800KHuF0Uvaw   提取码:ycjh

=====================================================

下面这段例子就是一个两个透传模块,组成服务器和客户端的写法了:

1)  服务端

AT

AT+CWMODE=3

AT+RST

AT+CWJAP=”public”,”123456789”   //这里是让两个模块都连到一个无线网中(即在同一个局域网),不过服务端的这边同时也支持ap功能

AT+CIPMUX=1

AT+CIPSERVER=1,8080      //设置自己为服务器,且断口号为8080

(默认端口号为8080)

AT+CIFSR                            //可以查看自身的ip,下面客户端连接时候需要知道他的ip的

2)  客户端

AT

AT+CWMODE=1

AT+RST

AT+CWJAP=”public”,”123456789”   //连入局域网 

AT+CIPMUX=0

AT+CIPMODE=1

AT+CIPSTART=”TCP”,”192.168.43.136”,8080 //连接上服务器

(此处使用的IP服务端查询到的随机分配给客户端的IP)

AT+CIPSEND

///

第二例子:

插上一个透传,笔记本,然后两者都连入,同一个wifi网络当中,然后,在本本上设置一个服务器,透传模块,做客户端连入,然后完成两者的数据收发。

服务端,随便这个软件设置,或者自己用QT写个最简单的demo就OK了

客户端:

AT

AT+CWMODE=1

AT+RST

AT+CWJAP=”public”,”123456789”   //连入局域网 

AT+CIPMUX=0

AT+CIPMODE=1                             //开启透传模式

AT+CIPSTART=”TCP”,”192.168.43.136”,8080 //连接上服务器

(此处使用的IP服务端查询到的随机分配给客户端的IP)

AT+CIPSEND                                //  开启透传

>                                                    //输入要发的数据
退出透传模式的办法是发送+++(后面不要加回车)即可退出。

(记得退出透传模式后,相当于结束发送,数据在对方那是接受不到了。不然要重新AT+CIPSEND开始透传)

则效果图就是大概下面的样子了。

服务端:

客户端(即透传模块):

/*AT+CWJAP="Honor 8","1234567"

AT+CIPMUX=1     //设置服务器
AT+CIPSERVER=1,7777//连接服务器

AT+CIPSTART="TCP","192.168.43.49",6000*/

  • 54
    点赞
  • 249
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要将ESP8266透传Grbl串口数据到MQTT你可以按照以下步骤进行: 1. 首先,确保你已经正确地连接了ESP8266与Grbl的串口。ESP8266的RX引脚连接到Grbl的TX引脚,ESP8266的TX引脚连接到Grbl的RX引脚。 2. 在ESP8266上安装MQTT库。你可以使用Arduino IDE的库管理器来搜索并安装适合的MQTT库。 3. 创建一个WiFi连接并连接到你的WiFi网络。使用WiFi库的相应函数来设置WiFi SSID和密码,并在代码中调用连接函数。 4. 创建一个MQTT客户端对象,并设置MQTT服务器的地址和端口。使用MQTT库提供的函数来设置服务器地址和端口。 5. 在ESP8266上监听Grbl的串口数据。使用Serial库的相应函数来打开串口,并使用SerialEvent函数或loop函数中的Serial.available函数来接收Grbl发送的数据。 6. 将接收到的Grbl数据发布到MQTT服务器。使用MQTT客户端对象的publish函数来发布消息到指定的主题。 下面是一个简单的示例代码,可以帮助你开始: ```cpp #include <ESP8266WiFi.h> #include <PubSubClient.h> // WiFi参数 const char* ssid = "your_wifi_ssid"; const char* password = "your_wifi_password"; // MQTT参数 const char* mqtt_server = "mqtt_server_address"; const int mqtt_port = 1883; const char* mqtt_topic = "grbl_data_topic"; // Grbl串口 const int grbl_serial_baud = 115200; // WiFi客户端 WiFiClient wifiClient; // MQTT客户端 PubSubClient mqttClient(wifiClient); // Grbl串口数据接收函数 void serialEvent() { while (Serial.available()) { char receivedChar = Serial.read(); // 将接收到的数据发布到MQTT服务器 mqttClient.publish(mqtt_topic, &receivedChar, 1); } } void setup() { // 初始化串口 Serial.begin(grbl_serial_baud); // 连接WiFi网络 WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } // 设置MQTT服务器地址和端口 mqttClient.setServer(mqtt_server, mqtt_port); } void loop() { // 如果WiFi连接断开,尝试重新连接 if (!mqttClient.connected()) { if (mqttClient.connect("ESP8266")) { // 成功连接到MQTT服务器 // 订阅其他主题,或执行其他操作 } } // 处理MQTT消息 mqttClient.loop(); } ``` 请注意,这只是一个基本示例,你可能需要根据你的具体要求进行修改和调整。确保你已经在代码中填入正确的WiFi和MQTT参数,并根据你的实际情况进行相应的调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值