Arduino基于ESP8266模块的TCP透传功能使用TCP透传协议连接移动onenet

2023-11-12

一:硬件资源

      1. Arduion  UNO  R3

      2. ESP8266WIFI模块

二:需要提前明确的知识点

      1. ESP8266模块具有TCP透传功能,通过AT指令可以使得WIFI模块连接至相应的服务器

      2.onenet具有多协议接入方式,例如TCP透传,HTTP协议,EDP, MQTT等,每种协议接入的IP地址和端口号是不同的,例如HTTP协议时IP为"183.230.40.33",端口80, 而TCP透传协议时IP为“”183.230.40.40",端口1811

      3.当使用TCP透传协议接入onenet时,需要提前在Onenet中上传lua脚本,onenet会更具你上传的脚本解析你上传的数据,lua脚本中最重要的函数是

      device_data_analyze(dev)  为终端上行数据解析函数每一包数据都会经过其处理
      device_timer_init(dev)  为定时器初始化函数,用于指定周期性的数据下发操作;

三:具体操作步骤

      1.在ONENET中注册TCP透传协议的产品,然后添加设备

      2.上传lua脚本值onenet

      3.在ArduinoIDE编码实现通过AT指令控制ESP8266,使得ESP8266连接至Onenet TCP透传服务器

          const char * at = "AT\r\n";
          const char * at_cwmode = "AT+CWMODE=1\r\n";
          const char * at_rst = "AT+RST\r\n";
          const char * at_cwjap = "AT+CWJAP=\"tplink111\",\"tttttttt\"\r\n"; //此处改wifi名称和密码
          const char * at_cifsr = "AT+CIFSR\r\n";
          const char * at_cipmux = "AT+CIPMUX=0\r\n";
          const char * at_cipmode = "AT+CIPMODE=1\r\n";
          const char * at_cipstart = "AT+CIPSTART=\"TCP\",\"183.230.40.40\",1811\r\n";
          const char * at_cipsend = "AT+CIPSEND\r\n";

          const char * tcp_connect = "*346686#123546#pump*\r\n"; //346686为产品ID, 123456为设备鉴权信息,pump为lua脚本名称

   通过Arduino串口向ESP8266发送上述字符串,ESP8266执行无误便可通过TCP透传协议连接至Onenet,后续就可以发送数据了.

          

      4 发送数据至onenet并解析onenet响应或者onenet下发的指令

四:Arduino代码及Lua脚本:

  https://download.csdn.net/download/oofish0519/12456281

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Arduino基于ESP8266模块的TCP透传功能使用TCP透传协议连接移动onenet 的相关文章

  • Arduino:字符串到整数得到奇怪的值

    我想转换一个String to an int 我所能找到的就是你必须将 String 转换为 char 数组 然后将该数组转换为int 但我的代码产生奇怪的值 我无法弄清楚问题是什么 void ledDimm String command
  • STM32 Nucleo 上的上升沿中断多次触发

    我正在使用 STM32 NUCLEO F401RE 微控制器板 我有一个扬声器 经过编程 当向上 向下推操纵杆时 可以按设定的量改变频率 我的问题是 有时 通常 当向上 向下推动操纵杆时 频率会增加 减少多次 这意味着 ISR 正在执行多次
  • Fedora 中的 Arduino 上传错误“stk500_recv(): 程序员没有响应”

    我正在尝试上传库存Blink在 Fedora Core 15 Linux 中使用 Arduino IDE 绘制草图 我收到此错误 avrdude stk500 recv 程序员没有响应 要重现该问题 通过 USB 线插入 Arduino U
  • 读取串行端口 - 忽略在一定时间内写入串行端口的部分数据

    我想定期读取串行端口上的数据和Arduino 所以本质上是这样的 读一读 Wait 读一读 Wait Take etc 我面临的问题是端口将缓冲其信息 因此一旦我调用等待函数 串行端口上的数据就会开始缓冲 等待函数完成后 我尝试再次读取数据
  • PySerial 从 Arduino 读取线路的延迟

    我正在使用带有基本 DigitalReadSerial 设置的 arduino uno 如下所述 http arduino cc en Tutorial DigitalReadSerial http arduino cc en Tutori
  • Arduino:使用串口和软件串口与蓝牙模块

    我的目的是使用 Arduino 通过 HC 05 蓝牙模块在 PC 和 Android 设备之间建立通信 我使用 PC 和 Arduino 串行监视器 之间的 USB 通信以及 SoftwareSerial 来连接到 HC 05 我的问题是
  • 如何将 ASCII char 转换为其 ASCII int 值?

    我想将 char 转换为它的ASCII http en wikipedia org wiki ASCIIint 值 我可以用所有可能的值填充一个数组并与其进行比较 但这对我来说似乎不正确 我想要类似的东西 char mychar k pub
  • sim800L GPRS 发布请求

    我一直在研究 LoNet 迷你 GSM 模块 SIM800L 并将其与 Arduino 连接 我已插入 SIM 移动卡并且可以连接互联网 通过串行监视器 我可以毫无问题地与它通信 但是当向网络服务器页面发出 GET 或 POST 请求时 它
  • STM32 上的 ADC 单次转换

    我正在研究 STM32 F103x 上的 ADC 编程 并从最简单的情况 单次转换开始 测量内部温度传感器 连接到 ADC1 的值 并使用 USART 将其发送到 COM 端口 目标似乎很明确 但是当我尝试将源代码下载到闪存时 它不会向 C
  • 如何实现Android Open Accessory模式即服务?

    我一直在研究 Android 开放配件开发套件 依照指示Google 提供的 DemoKit 示例 http developer android com guide topics usb accessory html 我在使解决方案适应我的
  • 是否有通用 I2C 命令来查看设备是否仍然存在于总线上?

    是否有通用的 I2C 命令来查看设备在初始化一次后是否仍然存在于总线上 例如 OLED 显示器 我问这个的原因是为了避免主程序由于库代码中存在无限循环而冻结 当设备断开连接时 例如 Wire 库 在 MCU 启动时 我想检查设备是否可用 并
  • Arduino 的 C++ 类文件中的字符串无法编译

    我正在用 C 为 Arduino 编写一个堆栈类sketch http www arduino cc en Tutorial Sketch 我相信它完全符合AVR 如果这就是它的名字 我记不清了 编译器 我都用过malloc and fre
  • 为什么使用 libnfc 和 PN532 SHIELD 时“找不到 NFC 设备”

    我在 ArchLinux 上安装了 libnfc 并通过我的 Adafruit PN532 arduino SHIELD 使用它 nfc list返回消息 未找到 NFC 设备 我在 etc nfc devices d pn532 conf
  • pySerial 与 python 2.7 和 3.4 的差异

    我正在开发一个项目 需要通过串口将一些数字从 Windows 10 中的 python 发送到 arduino uno 作为一个简单的测试 我只想通过发送 2 来打开 LED 并通过从命令提示符发送 4 来关闭 LED 尽管我希望最终能够将
  • AVRDUDE Android Arduino ioctl 错误

    我之前的问题 Android 无法使用 AVRDUDE 与 Arduino 通信 https stackoverflow com questions 15596376 android cannot talk to arduino using
  • 是否可以在 Arduino 上运行 ZeroMQ

    我想知道是否可以通过 ZeroMQ 与 Arduino 进行通信 我想使用 Arduino 来控制一些设备 并希望将大部分应用程序放在计算机上 为此 如果 Arduino 和控制器可以通过 Zeromq 以及 WiFi 或以太网扩展板进行通
  • 移动数组中的元素

    我需要一点帮助 我想将数组中的元素向上移动一个元素 以便新位置 1 包含位置 1 中的旧值 new 2 包含 old 1 依此类推 旧的最后一个值被丢弃 第一个位置的新值是我每秒给出的新值 我使用大小为 10 的数组 uint32 t TE
  • Arduino C++ 代码:可以使用虚函数和异常吗?

    跟进这条评论 https stackoverflow com questions 452139 writing firmware assembly or high level 452401从问题中编写固件 汇编还是高级 https stac
  • Arduino Nano 33 IoT 的软件序列号

    我计划从旧的 5V Arduino Nano 迁移到新的 Arduino Nano 33 IoT 我已经使用软件串行 SoftwareSerial h 为旧的 5V Arduino Nano 编写了一个功能代码 以便与 Sim800L 模块
  • 带 firebase 的 Nodemcu(ESP8266)

    这是我上传到 ESP8266 以连接到 firebase 的代码 include

随机推荐

  • 基于FPGA的图像sobel锐化实现,包括tb测试文件和MATLAB辅助验证

    目录 1 算法运行效果图预览 2 算法运行软件版本 3 部分核心程序 4 算法理论概述 5 算法完整程序工程 1 算法运行效果图预览 将FPGA的仿真结果导入到matlab显示图像效果 2 算法运行软件版本 MATLAB2022a viva
  • python基本数据类型、数据类型的判断、数据类型的转换、算数运算符、赋值运算符、比较运算符

    基本数据类型 python3中有6个标准的数据类型 数值 number 包括整数 int 浮点数 float 复数 complex 布尔值 bool 字符串 string python种字符串要求使用一堆单引号 或者双引号 或者双引号来包裹
  • Flink-1.12.0 CEP详解与实战

    什么是CEP CEP Complex Event Processing 复杂事件处理 一个或多个由简单事件构成的事件流通过一定的规则匹配 然后输出用户想得到的数据 满足规则的复杂事件 Flink CEP简介 Flink CEP是在flink
  • 小程序系列:onLoad,onReady和onShow等生命周期函数的区别和使用

    小程序请求这部分 我们发现有onLoad onReady onShow等都可以调用function发送请求 他们之间有什么区别 首先官方文档先甩出来 这些都是微信页面page这个Object的声明周期函数里面的 其实点进去看定义就可以了 毕
  • mysql分片的几种分配策略 - 固定、动态、固动结合、显示分配等

    假设我们要对用户的数据进行分片存储 依据的是用户id 1 关于固定分配 核心是利用哈希函数将输入的id值映射到一个输出值上 这个输出值就直接是分片id 注意这一点很重要 这是与混合分配策略区分的关键 2 动态分配 动态分配不使用哈希函数 而
  • 【Android】ReactNative实现计算器

    简介 大三学生党一枚 主攻Android开发 对于Web和后端均有了解 语录 取乎其上 得乎其中 取乎其中 得乎其下 以顶级态度写好一篇的博客 做IT行业的相信大部分朋友都开发过计算器的小demo 大部分都是基于C Java Python开
  • 前端系列之jQuery(jQuery事件)

    DOM事件模型 DOM 0级事件模型
  • 绝了!一个妹子 rm -rf 把公司整个数据库删没了...

    作者 zhouyu 来源 cnblogs com zhouyu629 p 3734494 html 经历了两天不懈努力 终于恢复了一次误操作删除的生产服务器数据 对本次事故过程和解决办法记录在此 警醒自己 也提示别人莫犯此错 也希望遇到问题
  • JAVA-程序的编译过程及运行过程

    目录 前言 一 Java程序的执行过程 1 编译期 2 运行期 二 小例子 1 进入cmd窗口 2 编译期 3 运行期 总结 前言 在之前我们做了第一个案例 Hello World 案例 也对其进行了详细的解析 HelloWorld案例 详
  • 【数电】理解MOS管的Vth(增强型)

    其实就是 对NMOS来说 栅极底下是P型半导体 有空穴和B 离子 栅衬之间加电压 电子往栅极底下跑 与空穴复合 此时形成耗尽层 虽然因为B 离子的原因带负电 但无法自由移动 当电压超过Vth 多余电子来到栅极底下 可自由移动 形成沟道
  • C或C++项目实战之贪吃蛇

    编译环境 VS2017 VS其他版本皆可 EasyX图形库 编程语言 c c 当前版本 snakeGame1 0 修改时间 2019 6 13 项目组成 5 1 头文件 snake snake h 5 2 源文件 main cpp snak
  • python获取程序运行过程中所需要的时间

    使用python的过程中 需要得知程序从运行开始到结束所需要的时间 可以使用clock 的方法来实现 引入所需要的时间库 import datetime import time 程序计时器 启动计时器 start time clock 中间
  • conda 环境无法激活的问题

    项目场景 提示 这里简述项目相关背景 例如 项目场景 示例 通过蓝牙芯片 HC 05 与手机 APP 通信 每隔 5s 传输一批传感器数据 不是很大 安装anaconda3 pypcharm pycharm解释器使用anaconda3目录下
  • Dynamics 365 9.0 Version 新功能(1) 支持查找没有Opporunity的Account

    Dynamics 365 升级到9 0版本后 增强了高级查找中相关实体1 N关系的不包含数据的查询 这个功能虽然不太起眼 但是确实很多人期盼已久的 先来看下之前版本的高级查找 我以Accouts为示例 选择查询的相关实体是Opportuni
  • 4.tcp问题及进程

    1 tcp 问题 a 粘包 b 拆包 解决 1 1 解决方案 1 粘包 特殊字符方式 a 当时短连接的情况下 不用考虑粘包的情况 b 如果发送数据无结构 如文件传输 这样发送方只管发送 接收方只管接收存储就ok 也不用考虑粘包 c 如果双方
  • ccf-201412-3 集合竞价(详解)

    ccf 201412 3 集合竞价 详解 试题编号 201412 3 试题名称 集合竞价 时间限制 1 0s 内存限制 256 0MB 问题描述 问题描述 某股票交易所请你编写一个程序 根据开盘前客户提交的订单来确定某特定股票的开盘价和开盘
  • alive workers 数量为0的解决方案

    因为hostname显示的主机名与 etc hosts中的主机名不相同 所以都会导致无法连接slave 将集群的主机均实现hostname与 etc hosts名称一样 就解决了问题 如下所示
  • 捕获原点

    一 什么是捕获 即当某一种信号触发时 GTS 运动控制器能准确记录触发时刻轴的位置信息 二 捕获的方式 GTS 控制卡提供四种捕获方式 Home 捕获 Index 捕获 探针 Probe 捕获和 HSIO 捕获 1 Home捕获模式 GTS
  • vue3中使用第三方插件mitt实现任意组件通讯

    vue3中使用第三方插件mitt实现任意组件通讯 组件通讯是vue3组合式开发的核心之一 现在我在写代码时 一个组件的代码超过了200行 基本都会拆分组件 组件拆分后 组件之间的通讯就很重要 总结了一下 目前有这么几种组件通讯类型 父子通讯
  • Arduino基于ESP8266模块的TCP透传功能使用TCP透传协议连接移动onenet

    一 硬件资源 1 Arduion UNO R3 2 ESP8266WIFI模块 二 需要提前明确的知识点 1 ESP8266模块具有TCP透传功能 通过AT指令可以使得WIFI模块连接至相应的服务器 2 onenet具有多协议接入方式 例如