【小白入门】超详细Arduino uno接入onenet云平台教程(TCP透传)

其实这种教程超级多,但是一个教程就能确确实实搞定这件事的我似乎没有找到。这两天正好在搞这个,就把我的步骤整理一下发出来,希望各位和我一样懵逼plus的小白们可以少走弯路。

元器件

  • arduino uno R3
  • esp8266 01s
  • 杜邦线,电脑等

接线图

(有好多教程直接贴代码连接线都不说一下查资料的时候真的好崩溃啊)

arduinoesp8266
3.3v3.3v&EN
GNDGND
RXDTXD
TXDRXD

其实就是一个简单的交叉接法,TXD和RXD交叉连接就好了,一般使用软串口的较多,使用软串口也一样,把你定义的TX,RX和开发板上的交叉连接就好了。
需要注意的地方有两个:

  • 如果不使用软串口,烧写程序的时候要把arduino开发板上的0 1(RXD TXD)两个口悬空,否则会上传失败。程序烧好之后再插上就行
  • wifi模块的电源和使能都需要连在板子的3.3v上(这款arduino只有一个3.3v的口,但有两个5v,就让人很生气)
  • 如果像我一样缺一个3.3v接口或者接口不够用的话可以引出3.3v到面包板,然后从面包板再去接wifi的管教,或者直接焊也可以
    在这里插入图片描

对于esp这个芯片再详细说两句。esp 01和esp 01s基本没啥区别,但01s最大的好处是板子上写明了引脚,可以不用去翻原理图。关于他俩的区别我直接复制两款芯片区别

ESP8266系列Wi-Fi模块一共有01~14十多款模块
ESP8266-01简称ESP-01,ESP8266-01S简称ESP-01S
至于他们的区别请看下图: 左边的是ESP8266-01S,右边的是ESP8266-01
在这里插入图片描述 在这里插入图片描述外观区别1:ESP8266-01S天线区域右下角只有一个指示灯,ESP8266-01天线区域右下角有两个指示灯。
外观区别2:ESP8266-01S背面有引脚说明,ESP8266-01背面有没有引脚说明。
内部区别:ESP8266-01S内部电路相对应ESP8266-01做了优化。

01s就按照上面表上写的连线就可以了,01的原理图上写的引脚名称不一样,如图。在这里插入图片描述
01接线

arduinoesp8266
3.3vVCC&CH_PD
GNDGND
RXDTXD
TXDRXD

连入自己的手机热点

(哇终于到这了,废话真的好多,可能这就是传说中的话多且密吧)

AT指令手动联网

程序(不知道为什么死活贴不上代码,我就放截图了,源代码我留一个下载链接在文末)在这里插入图片描述
打开串口监视器(右上角放大镜图标)
等待显示“ok
ready”
输入AT 返回ok
输入AT+RST 返回 ok 一长段乱码 ready
输入AT+CWMODE=1 返回ok
输入AT+CWJAP=”SSID“,”password“ 返回ok
查看手机热点中出现名为esp……的设备
连接成果
每个指令输完后要回车
不能连入热点就反复AT+RST(重启esp)重试

这一部分的注意事项有

  • 应该没有人会尝试使用中文的SSID吧……
  • 串口监视器的波特率,程序里面设置的波特率和硬件的波特率应一致,我贴的程序里面波特率是115200
  • 每一句AT指令都要记得加回车,因为回车是终止符,没有检测到回车这个指令就会被判定为没有发完
  • 要把串口监视器的结束符设置为NL&CR
  • 第一次连入一个新的网络需要先按这个步骤配置一次,后面就不用了。
  • 串口通信,烧写程序这些应该不用再废话了吧,如果有小萌新不会的话指路百度经验,百度经验有些回答真的是保姆级交叉,我还挺喜欢的(突然又开始废话)串口通信实验

云平台部分

我们使用的是onenet,其他云平台也差不多,百度搜索名字然后点进去注册/登陆就可以了。
登陆之后进入开发者中心进行我们的产品的构建。

  • 创建产品,协议选择TCP透传在这里插入图片描述
  • 添加设备在这里插入图片描述
  • 上传脚本TCP透传是需要自己上传脚本的,onenet官网提供了脚本模板,只需要下载模板,然后修改成自己的数据流名称和数量就可以了。这部分onenet官网提供了非常好的接入教程,我就不复制过来了,指路开发文档。TCP接入说明
  • 特别提醒,数据流部分在程序的最后,前面的程序看不懂只要直接拉到最后改就好了。改完上传脚本这部分就ok

自动联网及接入设备

我们需要把AT指令写进程序让程序自动帮我们发送,并且链接到云平台,还要再实现设备和脚本的关联。
就没啥好说的了,贴程序吧。
在这里插入图片描述
在这里插入图片描述

我打了码的地方就是需要改的地方。
部分语句说明如下:

  • Serial.print("AT+CWJAP=\"SSID\",\"Password\"\r\n");
    打码的第一句就是输入SSID和密码,其实和前面的AT指令对照就会发现这就是让程序输入AT+CWJAP指令。其他上文已经提及的AT指令下面就不再单独拉出来讲了

  • Serial.print("AT+CIPSTART=\"TCP\",\"183.230.40.40\",1811\r\n");
    这一句是链接到云平台,三个参数分别是接入协议,服务器地址和端口号,这句不需要改

  • Serial.print("*产品ID#设备鉴权信息#脚本名*");
    这一句是在关联脚本,每个设备可以关联一个脚本,设备的数据流名称,数量和格式都在脚本里面包含了

  • Serial.println(String(int(temp1)));
    此句是在发送数据
    发送多个数据的格式为Serial.println(String(int(temp1))+String(int(temp2))+String(int(temp3))+String(int(temp4)));

以上步骤都完成后,打开onenet设备列表可以看到绿色的设备在线就是成功了。

云平台应用界面和数据查看

在云平台应用管理界面进行编辑和设计
还可以下载“设备云”实现手机端的查看
emmmm这部分是傻瓜式的应该也不用多说。

一些问题和解决方法

我在调试的过程中遇到的问题,我把他们列出来希望能给大家提供一点帮助。我也不知道为什么会出这样的原因也没啥好的办法,毕竟我只是一只菜狗。

  • 烧写完程序后,第一次上电应该可以自动联网,如果不能再手机热点中找到设备,请先手动配网一次再回来烧写程序
  • 如果有设备但串口监视器中始终(重复5次以上)出现AT+CWJAP
    而不出现"AT+CIPSTART=“TCP”,“183.230.40.33”,80\r\n") 给主控断电后重新上电后(不必重新烧写)再打开串口监视器。
  • 第一次加入一个网络必须先手动联网成功后方可进行其他步骤。

我发现了我的解决方案就是重启,疯狂重启,各种重启……
我太菜了。

以上内容参考借鉴以及复制了很多来自网络的内容,我主要是做了一个整理和说明的工作,如果有侵权,或者其他的冒犯请联系我删除或者修改。
感谢素昧平生的大佬们为本文提供的帮助(虽然没有一一去征求各位的意见)

最后打个广告,各类机电创意作品定做请戳QQ:3356396782
也欢迎各位朋友前来探讨交流,单纯来聊天也欢迎。

### 回答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的设备进行监控和控制,实现智能化的应用场景。
评论 65
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值