目录

史上最详细的Arduino-uno-R3接入机智云教程

史上最详细的Arduino uno R3接入机智云教程

原文地址  http://club.gizwits.com/thread-6728-1-1.html

本文使用

UNO板卡和

无线WIFI模块实现了通过手机APP

远程

监测单片机系统采集的数据和控制一个LED的亮灭,读者将体验到使用机智云智能硬件自助开发平台的

MCU

代码自动生成工具

生成工程,简化开发的强大功能。

第一步  创建新产品

第二步  创建数据点

第三步  MCU开发—–独立MCU方案——选择arduino uno R3——-下载文件

第四步  将文件Gizwitss拷贝至arduino的libraries库文件里

第五步  打开两个例程————将两例程结合生成最终代码

第六步  给esp8266下载固件(先下载固件下载软件)

第七步  按图连接arduino与esp8266(4线)

第八步  打开机智云APP搜索设备

成功!

一、硬件准备

名称数量
Arduino UNO R3板卡1块
正点原子ESP8266 WiFi模块1个
10K电位器1个
轻触按键2个
电阻510欧姆1个
发光二极管1个
杜邦线若干

接线图如下:

A0读取模拟电压输入;

Key1接到D6;

Key2接到D7;

LED接到D4;

https://i-blog.csdnimg.cn/blog_migrate/0bff3c4053548a83dbe2ea0daf4da224.png

实物图如下:

https://i-blog.csdnimg.cn/blog_migrate/c42d89a27e4f1c8cdaa8d69c63a0bb8c.jpeg

视频演示:

二、Arduino和机智云简介

Arduino

是一个开发各类设备,让你比台式电脑更能充分感知和控制物理世界的生态系统。它是一个基于一系列单片机电路板的开源物理计算平台,一个编写用于Arduino和Genuino开发板的软件开发环境和一个拥有活跃开发者和用户社区。Arduino不仅仅是一个单片机、IDE(集成开发环境)或开源库。它本着让使用者快速上手的态度,将传统单片机开发中复杂的硬件设计、繁琐的寄存器配置和杂乱的硬件驱动全部简化,并使用C/C++作为编程语言,优雅地将C/C++的类、多态、继承和重载渗入到硬件开发中。本次使用的是型号为Arduino UNO R3的开发板。

https://i-blog.csdnimg.cn/blog_migrate/688ce8f6facd23317ef4af421a778f27.png

技术规格如下表:

微处理器
工作电压5V
输入电压(推荐)7-12V
输入电压(限值)6-20V
数字输入/输出引脚14 路(其中6路可用于PWM输出)
PWM 数字I/ O引脚6
模拟输入引脚6
每路输入/输出引脚的直流电流20 mA
3.3V 引脚的直流电流50 mA
闪存存储器32KB ,其中引导程序占用0.5KB
SRAM2 KB (ATmega328P)
EEPROM1 KB (ATmega328P)
时钟频率16 MHz
68.6 mm
53.4 mm
25 g

Arduino

开发环境搭建:

参考官方教程即可:

机智云

平台是致力于物联网、

的开放平台。机智云专注于提供智能云服务及物联网的软硬件解决方案,帮助传统硬件厂商产品升级,快速实现硬件智能化。要实现硬件的智能化,除了硬件本身外,还需要实现:智能云平台、手机APP、联网模块,每一个领域都需要专业的团队来支撑。机智云提供完整的解决方案,让厂商或开发者只需要专注于自身产品硬件。以最小的成本和风险实现硬件智能化,获得产品最大的增值。

https://i-blog.csdnimg.cn/blog_migrate/ff2adbec4d2e7460536a874039ec4e07.png

三、让设备具备联网能力

ESP8266无线WiFi模块是一个串口透传模块,我们把它连接到Arduino UNO R3板卡的串口即可,注意Tx、Rx要交叉连接。

https://i-blog.csdnimg.cn/blog_migrate/b24cd55e2bf9bdc53d3b72cec1943b67.png

上图是机智云智能硬件设备接入原理,为了实现和机智云服务器的交互,

必须先给无线WIFI模块烧录机智云开发的 固件

,烧写教程查看此帖:

四、Let’s Go!

准备工作做好后,我们就可以开始奇妙的开发之旅啦~

Step1: 在机智云开发者中心创建一个产品,给它起个名字,选择WiFi方案,然后点击保存按钮,这样你的产品就在机智云那里“登记”了。

https://i-blog.csdnimg.cn/blog_migrate/10b61bc55644d19c1d2f5465f1345066.png

Step2: 接着我们创建数据点,数据点即设备产品的功能的抽象,用于描述产品功能及其参数,本次我们需要实现监测Arduino板卡读取的模拟电压和控制LED的亮灭2个功能,因此要建立2个数据点。点击新建按钮;

https://i-blog.csdnimg.cn/blog_migrate/157bc755044331e1f606ad4a8d868dca.png

Step3: 首先建立控制LED亮灭的数据点,要在手机APP上远程控制LED的亮灭,可抽象为手机APP通过网络推送一个二进制量(只有0和1两个值)给设备端。

https://i-blog.csdnimg.cn/blog_migrate/04c0d44f5d8bff760bb1baa482fd9f1a.png

然后修改下显示名称,这个显示名称是显示在手机APP上的;

https://i-blog.csdnimg.cn/blog_migrate/185b791dd8d885fe69a03d65803a07ae.png

点击确定按钮,然后点击应用使更改生效;

https://i-blog.csdnimg.cn/blog_migrate/594cdbb5a75cf5e56fbb0c15c478d858.png

Step4

: 同样的建立在手机APP上显示Arduino板卡采集的模拟电压值数据点。此功能可抽象为设备端通过网络推送一个数值量给手机APP。

https://i-blog.csdnimg.cn/blog_migrate/f167dafefa5d144c649ff7dacec74c39.png

点击确定保存更改;

https://i-blog.csdnimg.cn/blog_migrate/f1ffa0127fad17496be808c11c114b0e.png

点击应用使更改生效;

https://i-blog.csdnimg.cn/blog_migrate/8096a2419c88506ba9ac82ad7f5bf64e.png

最后,我们得到如下2个数据点;

https://i-blog.csdnimg.cn/blog_migrate/4c1296724c9f693c55979925c55b2933.png

Step5: 数据点建立好后,在MCU开发栏目,选择独立MCU方案,硬件平台为ArduinoUNOR3,点击生成代码包即可生成工程。

https://i-blog.csdnimg.cn/blog_migrate/bc98cd8b193063340366707b30436a19.png

稍等几秒,很快就能生成完毕;

https://i-blog.csdnimg.cn/blog_migrate/d476adfac9366c3d5778a87bdfce17e0.png

工程生成好后,我们下载它;

https://i-blog.csdnimg.cn/blog_migrate/7c4db6ffa21eb7e55867d66e3a6b2025.png

Step6

: 解压下载的工程,找到Gizwits文件夹,把它复制/移动到ArduinoIDE安装目录下的libraries文件夹下。例如我的是D:\Arduino\libraries

https://i-blog.csdnimg.cn/blog_migrate/d2e78353f90579616f8d442725701d81.png

Step7: 接下来找到工程目录下的examples文件夹,里面有2个文件夹 networkConfig 和 simpleTry ,进去后有同名的Arduino文件,后缀名为.ino。

https://i-blog.csdnimg.cn/blog_migrate/ee1bfb026021306b95346bc45146c64a.png

使用ArduinoIDE打开这2个文件:

https://i-blog.csdnimg.cn/blog_migrate/b3ff4abd1c77575f59d8b050704562b1.png

simpleTry.ino 是本次项目工程,里面有程序框架,以及告知了用户在哪里填充接入机智云的代码; networkConfig.ino 是配置入网的例程,因为常见的智能硬件产品是没有键盘和显示屏的,因此需要一种技术来让它获取路由器的SSID和密码,首选是通过手机APP辅助。这里简单的介绍一下方法,通过一个按键来触发设备进入配网模式,然后手机APP把SSID和密码广播给设备,原理如下图:

https://i-blog.csdnimg.cn/blog_migrate/60be1e1160bf0e350304caca9ff8028a.png

这里需要说明的是,机智云开发的配网方案有2种,取名为AirLink和SoftAP,设备第一次联网是要进行配置的,以后它就记住了这个路由器的SSID和密码,无需配置,除非更改了SSID、密码等情况发生,就需要重新进行配网操作。

Step8

: 我们把 networkConfig.ino 中的部分代码拷贝到本次项目的工程 simpleTry.ino 中,注意凡是串口打印调试的都要注释掉,因为我们的Arduino UNO R3只有一个串口,要用来和WiFi模块通信。需要根据注释填充2个数据点代码,1是手机端控制LED亮灭,2是板卡采集模拟电压推送到手机APP,

具体的接口都给出了详细的注释,我们直接填充就可以啦~

如下图(下载高清大图查看效果更好哦~),左边为我们下载的工程文件 simpleTry.ino ,右边为修改好后的,作为一个对比,蓝色方框为与配网有关的代码,是从 networkConfig.ino 拷贝来的,红色方框为与远程点灯有关的代码,橙色方框为与推送模拟电压到手机APP有关代码。

https://i-blog.csdnimg.cn/blog_migrate/2973684b488967c5fcad07a228176c93.jpeg

举例:控制LED开关(bool型)

bool varR_LED_OnOff = 0; if(myGizwits.hasBeenSet(EVENT_LED_ONOFF)) { myGizwits.read(EVENT_LED_ONOFF,&varR_LED_OnOff);//Address for storing data //判断动作是开/关,做灯相应处理 }

Step9: 修改好后,编译并烧录代码到Arduino UNO板卡;

https://i-blog.csdnimg.cn/blog_migrate/b6e6110b363568ffc59f2799b3591a37.png

若程序编译不过去,则使用低版本IDE或换台电脑。

Step10: 下载机智云调试APP,调试步骤参考视频或者官网文档中心;

https://i-blog.csdnimg.cn/blog_migrate/517ac814488e2cb1690046c12855a053.png