EPS8266-01s的初步探索连接OneNET平台(TCP)

因为一些个人的毕设需求需要用到接入网络的模块连接OneNET,然后就选择了ESP-01s。仅代表个人知识探索,欢迎提出宝贵意见。

1.首先是对ESP-01s模块一个简单的介绍(给我的直观印象就是小、不仅仅体积,更突出在其功耗,后面会给出一些依据。)

a.ESP8266是实现WiFi通讯的一个模块种类有很多分为ESP8266-12、ESP8266-12E、ESP-01s、ESP32等等这些模块一般用于WiFi通讯。

正面
反面
b.如图是ESP-01s模块它是由一颗ESP8266作为主控再由一颗flash作为存储芯片组成的,带有板载芯片供电采用3.3V电压使用串口进行烧写程序和AT指令集调试的,注意芯片一旦烧写了程序便不可使用AT指令集需要重新刷回AT指令集固件才可以使用AT指令集。(我故意放到键盘旁边就是为了突出它little)

先来讲一下我在做毕设时成功的案例吧。我所使用的是Arduino UNO R3开发板连接ESP-01s使用AT指令经过一系列的验证最后达到连接OneNET平台上传数据的效果。(TCP协议)

2.说一下,ESP-01s的各个引脚和接线的方式吧。

在这里插入图片描述
这是ESP-01s的引脚说明,部分模块的CH_PD在板子上面的标识为EN

在这里插入图片描述
图片是借别的大佬的但是我再经过时间时遇到了一些他所没有提到的问题,也是花费了一些时间才解决的,所以我想有必要写明一下自己的经过。另外,我也会贴出大佬的[链接(https://blog.csdn.net/zyntxz/article/details/123048504)]。注意:在这里接线的时候我刚开始使用Arduino UNO开发板的3.3V直接连接ESP-01s然后就总是没有什么反馈,最后在看过很多人的经历后我推荐大家把3.3V的电压接到面包版再连接ESP01s。

3.代码拷贝与简单的连接——开发环境:Arduino IDE

a.我们本次要使用模拟Rx和Tx与ESP-01s进行通信,因此我们要使用到<SoftwareSerial.h>这个头文件,着这个头文件的下载与使用我也是出现了一些问题——在库管理器搜索不到。查询Arduino官方如下
在这里插入图片描述
大致的意思就是如果你的Arduino IDE的版本是1.0 及更高版本中包含的 SoftwareSerial 版本基于新软件串行库由“米卡尔·哈特”撰写。
要使用此库,请执行以下操作:#include <SoftwareSerial.h>。

b.简单联网测试一下,我个人推荐去连接自己的热点可以比较方便的读取AT指令

#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9); // RX, TX    //模拟一个软串口
void setup()
{
   
  Serial.begin(9600);//设置硬串口波特率
  Serial.println("ESP8266 WIFI Test");
  while (!Serial) {
   //串口是否准备好。
    ;
  }
  Serial.println("hardware serial!");
  mySerial.begin(9600);//设置8266的波特率为9600
  mySerial.println("software serial!");
}
void loop()
{
   
  if (mySerial.available())//获取从软串口读取有效的字节数
  {
   
    Serial.write(mySerial.read());//硬串口写软串口中读取的数据
  }
  if (Serial.available()) {
   //获取从硬串口读取有效的字节数
    mySerial.write(Serial.read());//软串口写硬串口中读取的数据
  }
}

打开Arduino IDE串口监视器 选择波特率9600,下方设为NL和CR
只有出现了ERROR才是运行成功***(如果一直没有就把两个波特率改为115200再试下)***
在这里插入图片描述
出现这个ERROR的时候不要惊慌!!!这说明你的ESP在通过Arduino UNO在于你的计算机进行通信。

c.下面开始向ESP-01s发送AT指令进行两位啦。在那之前先给大家介绍以下几个简单的AT指令。
AT`
在这里插入图片描述
CSDN的代码块太难用了,这是我用语雀写的

再发送指令的时候建议把Arduino IDE对键盘ENTER键的反馈 改为 换行 或者 换行和回车两者都是

如下图:
在这里插入图片描述
把上面的指令依次执行一下后:因为我用的是TCP透传,所以开发中最后我们还需要发送登录报文,只需要在输入框输入再发送就行
在这里插入图片描述执行命令的过程如下:

在这里插入图片描述
接下来是我认为最难的部分了OneNET平台接收TCP数据是需要一个lua脚本官方有给的脚本模板在下图会有下载的渠道
虽然lua脚本代码很多很乱但是只需要改两个就够了
用户需要自行完成一下2个函数的实现
– 1、定时下发数据任务初始化函数:device_timer_init(dev)【可选】 --倒数第二个函数
– 2、对设备上传数据进行解析(包括心跳等):device_data_analyze(dev)–倒数第一个函数
下面是我的用的lua脚本

-----------------------------------------------------------------------
-- 使用说明:                                                        --
-- V1.0                                                              --
-- 用户需要自行完成一下2个函数的实现                                 --
-- 1、定时下发数据任务初始化函数:device_timer_init(dev)【可选】     --
-- 2、对设备上传数据进行解析(包括心跳等):device_data_analyze(dev) --
-----------------------------------------------------------------------


-------------------------------------------------------
-- 注册C函数                                         --
-- u2f 将32位整型内存数据转换为浮点数(不同于值转换)--
-- 类似C代码 *(float*)(&u)                           --
-- function utf(u)                                   --
-- @param   u   number   整数值                      --
-- @return  成功返回浮点数值,否则返回nil            --
-- @example local u = 123                            --
--          local f = u2f( 123 )                     --
-------------------------------------------------------

--------------------------------------------------------
-- 将bytes string转换hex string                       --
-- @param   s   string   bytes string                 --
-- @return  返回hex string,类似"0A0B0C0D..."         --
-- @example local hex = to_hex("\2\2\0\150\0\37\206") --
--------------------------------------------------------
function to_hex(s)
  local i
  local t

  t={
   s:
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
STM32系列是一种微控制器芯片系列,其中HAL库是STM32提供的一个高级应用层库,可以方便地进行硬件抽象和外设驱动。ESP8266-01S是一种常用的物联网模块,可以通过Wi-Fi连接互联网。OneNET是华为提供的物联网平台,可以将设备的数据上传到云端。 要在STM32系列芯片上利用HAL库连接ESP8266-01S模块,并实现数据上传到OneNET平台,需执行以下步骤: 1. 初始化STM32的串口和GPIO配置,以连接ESP8266-01S模块。通过串口与模块进行通信,以发送AT指令控制模块的工作。 2. 通过串口发送AT指令,使ESP8266-01S模块连接到Wi-Fi网络。这些AT指令包括设置Wi-Fi SSID、密码等,并执行连接操作。 3. 通过串口发送AT指令,使ESP8266-01S模块与OneNET平台建立TCP或UDP连接。这些AT指令包括设置服务器地址和端口号,并执行连接操作。 4. 编写STM32的C代码,通过HAL库函数,将需要上传的数据封装为JSON格式,并发送到ESP8266-01S模块。 5. ESP8266-01S模块收到数据后,通过已建立的TCP或UDP连接,将数据上传到OneNET平台。通过发送AT指令,模块将数据作为HTTP请求发送到OneNET的数据接口。 6. 在OneNET平台上可以配置数据接口和数据流。数据接口是OneNET平台提供的用于接收数据的API接口,数据流是数据的分类和整理方式。 通过以上步骤,可以实现STM32系列芯片利用HAL库连接ESP8266-01S模块,并通过模块将数据上传到OneNET平台。这样,可以方便地将STM32芯片连接物联网,并通过OneNET平台实现远程监控和管理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值