收藏官网首页
查看: 538609|回复: 587

[资料分享] 史上最详细的Arduino uno R3接入机智云教程

 

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
跳转到指定楼层
楼主
发表于 2017-5-22 09:41:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
校园创客福利
本帖最后由 Genius 于 2017-5-23 17:44 编辑

本文出自机智云论坛,版权所有@bigfanofloT,转载请注明出处
http://club.gizwits.com/thread-6728-1-1.html
前言:本文使用arduino UNO板卡和esp8266无线WIFI模块实现了通过手机APP远程监测单片机系统采集的数据和控制一个LED的亮灭,读者将体验到使用机智云智能硬件自助开发平台的MCU代码自动生成工具生成工程,简化开发的强大功能。
一、硬件准备
  名称
  
  数量
  
  Arduino UNO R3板卡
  
  1块
  
  正点原子ESP8266 WiFi模块
  
  1个
  
  10K电位器  
  
  1个
  
  轻触按键
  
  2个
  
  电阻510欧姆
  
  1个
  
  发光二极管
  
  1个
  
  杜邦线
  
  若干
  

接线图如下:
A0读取模拟电压输入;
Key1接到D6;
Key2接到D7;
LED接到D4;



实物图如下:

视频演示:


二、Arduino和机智云简介  

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


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

Arduino开发环境搭建:
参考官方教程即可:https://www.arduino.cc/en/Guide/Windows?setlang=cn

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


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


上图是机智云智能硬件设备接入原理,为了实现和机智云服务器的交互,必须先给无线WIFI模块烧录机智云开发的GAgent固件,烧写教程查看此帖:
http://club.gizwits.com/thread-3551-1-1.html
四、Let’s Go!
       准备工作做好后,我们就可以开始奇妙的开发之旅啦~

Step1:在机智云开发者中心创建一个产品,给它起个名字,选择WiFi方案,然后点击保存按钮,这样你的产品就在机智云那里“登记”了。
Step2:接着我们创建数据点,数据点即设备产品的功能的抽象,用于描述产品功能及其参数,本次我们需要实现监测Arduino板卡读取的模拟电压和控制LED的亮灭2个功能,因此要建立2个数据点。点击新建按钮;
Step3:首先建立控制LED亮灭的数据点,要在手机APP上远程控制LED的亮灭,可抽象为手机APP通过网络推送一个二进制量(只有0和1两个值)给设备端。
然后修改下显示名称,这个显示名称是显示在手机APP上的;
点击确定按钮,然后点击应用使更改生效;
Step4同样的建立在手机APP上显示Arduino板卡采集的模拟电压值数据点。此功能可抽象为设备端通过网络推送一个数值量给手机APP。
点击确定保存更改;
点击应用使更改生效;
最后,我们得到如下2个数据点;
Step5:数据点建立好后,在MCU开发栏目,选择独立MCU方案,硬件平台为ArduinoUNOR3,点击生成代码包即可生成工程。
稍等几秒,很快就能生成完毕;
工程生成好后,我们下载它;
Step6解压下载的工程,找到Gizwits文件夹,把它复制/移动到ArduinoIDE安装目录下的libraries文件夹下。例如我的是D:\Arduino\libraries
Step7:接下来找到工程目录下的examples文件夹,里面有2个文件夹networkConfigsimpleTry,进去后有同名的Arduino文件,后缀名为.ino。
使用ArduinoIDE打开这2个文件:
simpleTry.ino是本次项目工程,里面有程序框架,以及告知了用户在哪里填充接入机智云的代码;networkConfig.ino是配置入网的例程,因为常见的智能硬件产品是没有键盘和显示屏的,因此需要一种技术来让它获取路由器的SSID和密码,首选是通过手机APP辅助。这里简单的介绍一下方法,通过一个按键来触发设备进入配网模式,然后手机APP把SSID和密码广播给设备,原理如下图:
这里需要说明的是,机智云开发的配网方案有2种,取名为AirLink和SoftAP,设备第一次联网是要进行配置的,以后它就记住了这个路由器的SSID和密码,无需配置,除非更改了SSID、密码等情况发生,就需要重新进行配网操作。
Step8我们把networkConfig.ino中的部分代码拷贝到本次项目的工程simpleTry.ino中,注意凡是串口打印调试的都要注释掉,因为我们的Arduino UNO R3只有一个串口,要用来和WiFi模块通信。需要根据注释填充2个数据点代码,1是手机端控制LED亮灭,2是板卡采集模拟电压推送到手机APP,具体的接口都给出了详细的注释,我们直接填充就可以啦~

如下图(下载高清大图查看效果更好哦~),左边为我们下载的工程文件simpleTry.ino,右边为修改好后的,作为一个对比,蓝色方框为与配网有关的代码,是从networkConfig.ino拷贝来的,红色方框为与远程点灯有关的代码,橙色方框为与推送模拟电压到手机APP有关代码。
Step9:修改好后,编译并烧录代码到Arduino UNO板卡;
Step10:下载机智云调试APP,调试步骤参考视频或者官网文档中心;

工程源码:
游客,如果您要查看本帖隐藏内容请回复
本文PDF:
史上最详细的Arduino接入机智云教程,2个示例助你理解智能硬件开发流程.pdf.pdf (2.02 MB, 下载次数: 2511)









本帖被以下淘专辑推荐:

1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

4

主题

10

帖子

171

积分

注册会员

Rank: 2

积分
171
推荐
发表于 2018-5-12 00:17:43 | 只看该作者
bigfanofloT 发表于 2017-12-3 12:22
你要按照教程步骤在官网生成代码哦,数据点名字和教程一样哦

楼主,我把你的源码下载到我的电脑编译,也是显示同样的错误。

Arduino:1.8.5 (Windows 10), 开发板:"Arduino/Genuino Uno"

C:\Users\ASUS\Desktop\GizwitsMCUArduinoUNOR32017051912222925509f2983\GizwitsMCUArduinoUNOR32017051912222925509f2983\MCU_ArduinoUNOR3_source\examples\simpleTry\simpleTry.ino: In function 'void loop()':

simpleTry:198: error: 'VALUE_ADCVALUE' was not declared in this scope

   myGizwits.write(VALUE_ADCVALUE, varW_ADCValue);

                   ^

simpleTry:202: error: 'EVENT_LED_ONOFF' was not declared in this scope

   if(myGizwits.hasBeenSet(EVENT_LED_ONOFF))

                           ^

exit status 1
'VALUE_ADCVALUE' was not declared in this scope

在文件 -> 首选项开启
“编译过程中显示详细输出”选项
这份报告会包含更多信息。

点评

解决了吗?我也遇到这个问题了  详情 回复 发表于 2018-5-24 12:26

0

主题

7

帖子

116

积分

注册会员

Rank: 2

积分
116
推荐
发表于 2018-9-7 14:06:15 | 只看该作者
wifi模块不能联网啊,长安K1?还是长按K2?之后操作APP?

0

主题

12

帖子

153

积分

注册会员

Rank: 2

积分
153
推荐
发表于 2017-9-14 17:17:51 | 只看该作者
南戈 发表于 2017-9-14 14:21
楼主大大我修改完后编译错误  代码如下 这是怎么回事
Arduino:1.7.8 (Windows 8.1), 板:"Arduino Uno"

额,好像是没装,直接安装java可以吗?

点评

可以啊,你百度下java环境的安装方法  详情 回复 发表于 2017-9-14 18:59

0

主题

1

帖子

13

积分

新手上路

Rank: 1

积分
13
推荐
发表于 2017-7-23 12:26:45 | 只看该作者
教您5分钟接入机智云,实现傻瓜式开发
请问product secret 在哪里获取?

8

主题

144

帖子

3308

积分

论坛元老

Rank: 8Rank: 8

积分
3308
8#
发表于 2017-5-25 14:09:15 | 只看该作者
请问下,开启LED后,过几分钟就自已关闭了,是怎么回事呢?

点评

你指哪里  详情 回复 发表于 2017-5-25 14:50

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
9#
 楼主| 发表于 2017-5-25 14:50:10 | 只看该作者
peter58 发表于 2017-5-25 14:09
请问下,开启LED后,过几分钟就自已关闭了,是怎么回事呢?

你指哪里
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

8

主题

144

帖子

3308

积分

论坛元老

Rank: 8Rank: 8

积分
3308
10#
发表于 2017-5-25 15:09:12 | 只看该作者
教您5分钟接入机智云,实现傻瓜式开发

谢谢回复,问题已找到,是我把arduino供电插在电脑USB上了,电脑休眠就没电压了。

8

主题

144

帖子

3308

积分

论坛元老

Rank: 8Rank: 8

积分
3308
11#
发表于 2017-5-25 17:22:45 | 只看该作者
在请教一个问题。我新建的设备从定义了做了数据点,然后修改程序后下载到arduino里,怎么配置网络还是以前的数据点,K1,K2的作用是什么,按了K2后模块没有清除原来的配置,我该怎么来配置WIFI呢?谢谢!!

点评

你仔细看看哦,按k2不能清除原来配置的  详情 回复 发表于 2017-5-25 17:37

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
12#
 楼主| 发表于 2017-5-25 17:37:14 | 只看该作者
peter58 发表于 2017-5-25 17:22
在请教一个问题。我新建的设备从定义了做了数据点,然后修改程序后下载到arduino里,怎么配置网络还是以前 ...

你仔细看看哦,按k2不能清除原来配置的
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

8

主题

144

帖子

3308

积分

论坛元老

Rank: 8Rank: 8

积分
3308
13#
发表于 2017-5-25 18:20:50 | 只看该作者
bigfanofloT 发表于 2017-5-25 17:37
你仔细看看哦,按k2不能清除原来配置的

请问怎么清除原来的WIFI配置呢?谢谢

1

主题

6

帖子

82

积分

注册会员

Rank: 2

积分
82
14#
发表于 2017-5-25 19:13:12 | 只看该作者
你仔细看看哦,按k2不能清除原来配置的

0

主题

1

帖子

24

积分

新手上路

Rank: 1

积分
24
15#
发表于 2017-5-25 21:45:27 | 只看该作者
汉枫LPB120模块
感谢分享。很棒。

11

主题

57

帖子

1661

积分

金牌会员

Rank: 6Rank: 6

积分
1661
QQ
18#
发表于 2017-5-26 23:29:39 | 只看该作者
从昨天下午一直弄到现在终于好了。
总结一下:
1.按照楼主的硬件连接方式,不好搜到设备设置wifi,可以选择官方的串口调试模拟连接,wifi连上云端在吧模块连接到板子上。
2.主要是烧写问题,烧写完成不知道到底有没有成功,一直想办法测试,最后参考《串口工具与机智云APP配合使用指南》这个确认烧写成功。
3.最新的固件我没成功,最后烧的旧固件。

点评

你好,,我试啦你这种方式,手机可以连上啦,但是这个WiFi不可能一直插在电脑上吧,,,大佬你那有解决的方法吗  详情 回复 发表于 2020-4-2 12:49

0

主题

1

帖子

9

积分

新手上路

Rank: 1

积分
9
19#
发表于 2017-5-27 20:44:02 | 只看该作者
我就看看看

0

主题

2

帖子

132

积分

注册会员

Rank: 2

积分
132
20#
发表于 2017-5-30 19:10:30 | 只看该作者
校园创客福利
编译出错啊,真的很醉啊

点评

编译时,你把ESP8266模块和板卡断开。编译应该就能通过了  详情 回复 发表于 2017-6-11 22:36
什么错误?截图看下,你把下载的文件里面的Gizwits文件夹拷贝到Arduino IDE安装路径了吗  详情 回复 发表于 2017-5-30 19:35

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
21#
 楼主| 发表于 2017-5-30 19:35:46 | 只看该作者
kayman 发表于 2017-5-30 19:10
编译出错啊,真的很醉啊

什么错误?截图看下,你把下载的文件里面的Gizwits文件夹拷贝到Arduino IDE安装路径了吗
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

3

主题

253

帖子

432

积分

中级会员

Rank: 3Rank: 3

积分
432
22#
发表于 2017-5-31 12:12:23 | 只看该作者
果断收藏先,有时间再看~~

6

主题

38

帖子

801

积分

高级会员

Rank: 4

积分
801
23#
发表于 2017-5-31 14:52:12 | 只看该作者
good,好好学习

1

主题

220

帖子

1198

积分

金牌会员

Rank: 6Rank: 6

积分
1198
24#
发表于 2017-6-1 12:14:04 | 只看该作者
非常非常的详细,楼主整理的辛苦了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表