【小白入门】超详细Arduino uno接入onenet云平台教程(EDP实现远程控制)

我是真的妹想到这玩意居然还能搞出第二篇文章。
源码下载:EDP控制命令下发

第一篇指路(tcp透传数据上传教程)
【小白入门】超详细Arduino uno接入onenet云平台教程(TCP透传)

元器件,接线图和接入WiFi

这部分和第一篇是完完全全一模一样的。

这些属于硬件连接和wifi模块的配置工作,而本篇文章和上一篇的唯一不同只是换了协议,也就是改变了接入平台的方法,所以不管协议怎么变,这部分都是不会变的啦(~ ̄▽ ̄)~

元器件

arduino uno R3
esp8266 01s(或01)
杜邦线,电脑等

接线图

01s接线在这里插入图片描述
01接线
在这里插入图片描述
接线不会的去看上一篇的接线部分,那个真的是保姆级了。

接入WiFi

和上一篇是一样的,使用at指令接入网络,思路不再展开说了。
在这一次提供的代码里面,联网的部分被封装进了单独的.c文件和.h文件里面,如果使用我提供的这个源码改写的话只需要改net_device.h里面的ssid和密码就可以了。
在这里插入图片描述

云平台

之前很多朋友很头疼的脚本这次不用管啦,只有tcp透传才需要脚本。

各个协议对比

放一个各协议的对比图吧,便于大家对各个协议有些对比的概念,也方便大家以后自己选用协议
官方说明
来自onenet官方开发者文档
个人总结(modbus一行来自网络)

协议优点缺点
EDP有配套的控制控件,是唯一可以使用设备云APP及应用应用管理实现控制的协议数据需要最低限度的打包
MQTT能够实现命令下发和控制实现,除应用管理功能之外资源与edp相同数据需要最低限度的打包
HTTP无需建立HTTP连接,格式简单,上传数据无需设备上线无法实现控制,无法设备上线(如果使用http协议传数据,设备列表里面的设备在线不会变绿!始终都是离线状态,不影响传数据)
Modbus基于ModBus的数据经过简单封装即可传输,使用方便(对已使用ModBus协议的设备)使用困难(非Modbus协议设备)
Tcp透传传输数据灵活,可自定义格式,使用简单无需打包需要上传脚本(脚本编写使用lua语言)

关于tcp能不能下发指令,数据回传实现控制这一点,众说纷纭,我个人没有搞清楚,故特此说明,以免误导各位。

云平台

新建设备

在多协议接入中新建edp产品
在这里插入图片描述
新建设备
在这里插入图片描述
新建数据流模板
在这里插入图片描述
上传的数据如果没有已有的数据或者数据流模板会自动建立数据流,上传的数据可以不建立数据流模板。但触发器功能和控制控件只支持关联数据流模板,所以必须建立模板。
在程序里直接引用数据流模板就可以使用了。

  • 使用方法
  • 建立数据流模板;
  • 在应用界面关联相关控件;
  • 在发送或接受程序中直接引用数据流模板名control实现发送和接受;

接入云平台

和tcp透传协议一样,我们只是用地址+端口号就可以接入平台。
在edp协议中,服务器地址是183.230.40.39,端口号为876。(t协议不同,地址和端口号不同)

设备上线

edp协议中,使用api-key和设备id进行封包上传。
如果使用我提供的程序的话只要在onenet.h里面修改api-key和设备id就可以了。
在这里插入图片描述

上传数据

onenet.cpp中包含发送指令,发送数据需要封包,原理不讲了,只说一下怎么改程序吧。
在OneNet_SendData函数中,将蓝色字部分改为自己的数据流名称,灰色字改为自己的变量名就可以了。
在这里插入图片描述函数格式为
sprintf(send_buf,“数据流名,%d;……数据流名,%d;”,变量名……,变量名);
因为我的变量都是十进制的整形所以我的输出中全部是%d,大家只要按照自己的数据格式改变就好了。

下发指令

onenet.cpp中包含指令接受程序,程序会在指令中找到一样不细讲了,在OneNet_App函数中,把原本的控制信号数据流改成你的数据流名称,并且做相应处理就好了。程序会在接收到的数据包中找到和你的控制条件相同的数据流名称并且执行的你控制命令。
在这里插入图片描述

同样的,以上内容参考借鉴以及复制了很多来自网络的内容,我主要是做了一个整理和说明的工作,如果有侵权,或者其他的冒犯请联系我删除或者修改。

再次感谢素昧平生的大佬们为本文提供的帮助(虽然没有一一去征求各位的意见)

写在后面(纯废话)

!!!!!!!从这里往下就不用看了!!!!!!!!!
!!!!!!!以下是准废话,纯抱怨!!!!!!!!!
!!!!!!!如果你继续阅读将会浪费你生命的1分钟!!!!!!!

但我就是要抱怨,我写这篇就是为了抱怨o(╥﹏╥)o
(请别学我)
不知道各位有没有看过我之前的另一篇文章,和这篇非常的像,是使用tcp透传进行传输的接入教程。本来嘛,咱数据的监测实现了基本上功能的大头就完成了,但是如果不能实现远程控制的话,数据上云还有什么意义呢?

对很理所应当的我就去摸索平台的控制功能了。

对onenet平台稍微有点了解的大家应该都会知道应用界面是有控制控件的,所以我想当然的觉得嗯那很简单嘛,直接用控件嘛。

于是我就在疯狂碰壁中逐渐开始怀疑人生。
然后我看到了。在这里插入图片描述
你说啥??
在这里插入图片描述

那咋整啊在这里插入图片描述
嗯,行吧,好吧,i’m fine thank you and you.
在这里插入图片描述
特别的,并不是指其他协议不能实现控制功能,而是说在应用编辑器中控制控件只支持edp协议。其他的协议当然还是有他们自己的下发指令方式,只是目前我害没有摸索出来。
比如论坛上同样有大佬给出tcp透传实现控制的方法在这里插入图片描述

但是我太菜了我不行啊Ծ‸Ծ

所以有大佬愿意出一个稍微详细一点的教程嘛(╹▽╹),或者有谁找到稍微具体一点的教程麻烦评论留言告诉我一声

ball ball大佬们教教我

  • 14
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
### 回答1: 要将Arduino Uno接入阿里,需要进行以下步骤: 1. 准备工作:需要一个Arduino Uno板和与之兼容的无线模块(例如ESP8266)。 2. 配置Arduino Uno:将无线模块连接到Arduino Uno的串行通信口(例如使用软串口或硬串口方式连接)。 3. 安装Arduino IDE:在电脑上下载和安装Arduino IDE软件,以便进行编程和上传固件。 4. 设置阿里账号:在阿里官网上注册一个账号,并创建一个物联网平台实例。 5. 下载Arduino SDK:从阿里物联网平台竞品首页下载Arduino SDK,并解压缩到Arduino IDE的库文件夹。 6. 编写代码:在Arduino IDE中打开示例代码,将其中的阿里设备信息(如产品Key、设备名、设备密钥等)替换为创建的物联网平台实例中的对应信息。 7. 编译和上传:将代码编译并上传到Arduino Uno板,确保无线模块可以正常连接到阿里物联网平台。 8. 监测数据:在阿里物联网平台控制台上查看设备状态和监测数据,确保设备和阿里的连接正常。 通过以上步骤,我们就可以成功将Arduino Uno接入阿里,并实现云平台的数据交互和远程控制。这样,我们可以通过阿里的平台来实现Arduino Uno的远程监控和操作。 ### 回答2: 接入Arduino Uno到阿里分为以下几个步骤: 1. 连接硬件:首先,将Arduino Uno通过USB线连接到计算机上。确保使用正版Arduino Uno板,并且正确安装了Arduino开发环境。 2. 设置Arduino开发环境:下载并安装Arduino IDE,并通过适当的驱动程序安装Arduino Uno板的USB串行驱动程序。然后在IDE中选择正确的Arduino Uno板和串口。 3. 配置阿里:在阿里控制台上创建一个物联网平台实例。在实例中创建一个设备,获取对应的设备证书。然后,在阿里控制台上创建一个Topic,并配置相应的发布和订阅权限。 4. 编写代码:使用Arduino IDE编写一个Arduino程序,该程序将连接到阿里物联网平台,并利用阿里物联网平台SDK发送和接收消息。在代码中,使用设备证书设置设备的认证信息,并连接到阿里物联网平台MQTT服务器。然后,通过阿里物联网平台SDK提供的API发送和接收消息。 5. 编译和上传:编译代码并将其上传到Arduino Uno板。确保板子与计算机保持连接,并且选择正确的串口和板子。 6. 测试:验证Arduino Uno是否已成功连接到阿里。在阿里控制台上订阅设备所在Topic,并通过阿里控制台向设备发送消息。如果一切正常,设备应该能够接收并处理这些消息。 通过以上步骤,您可以将Arduino Uno接入阿里,并实现与阿里物联网平台的通信。 ### 回答3: Arduino Uno是一款开源的微控制器开发板,可以用于实现各种电子项目。要将Arduino Uno接入阿里,需要进行以下步骤: 1. 准备硬件设备:除了Arduino Uno主板外,还需要一个ESP8266或者ESP32无线模块,用于连接到Wi-Fi网络。 2. 配置软件环境:首先,需要在Arduino IDE中安装与Arduino Uno兼容的ESP8266或ESP32开发板支持库。然后,在阿里物联网平台注册账号,创建一个设备,获取到设备的三元组信息(即设备的物联网平台的ProductKey、DeviceName和DeviceSecret)。 3. 编写程序:使用Arduino IDE,编写程序将Arduino Uno与ESP8266或ESP32进行通信,并将设备连接到阿里物联网平台。在代码中,需要引入ESP8266WiFi或者WiFiNINA库,以及阿里物联网平台的PubSubClient库,用于实现Wi-Fi连接和MQTT通信。 4. 配置程序:在程序中,需要填入Wi-Fi网络的名称和密码,以及设备的三元组信息。然后,将程序上传到Arduino Uno主板上。 5. 测试连接:重新启动Arduino Uno主板,等待设备连接到Wi-Fi网络和阿里物联网平台。然后,通过物联网平台的控制台进行设备的监控和控制。 通过以上步骤,就可以将Arduino Uno成功接入阿里接入后,可以实现与阿里物联网平台的双向通信,实现数据的上传、读取和控制。这样,就可以通过阿里提供的平台功能,对接入Arduino Uno的设备进行监控和控制,实现智能化的应用场景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值