机智云官网

1.1机智云与GoKit3简介

机智云为开发者提供物联网设备的自助开发工具、后台技术支持服务、设备远程操控管理、数据存储分析、第三方数据整合、硬件社交化等技术服务,也为智能硬件厂家提供一站式物联网开发和运维服务,将智能硬件产品开发周期最快缩短到半天,快速实现智能化。服务的客户主要来自消费类智能硬件厂家(智能家居、可穿戴产品),以及工业、商业应用、智慧城市建设等。

GoKit3是机智云(GizWits) 推出的物联网智能硬件开发套件(第三代),目的是帮助传统硬件快速接入互联网。 完成入网之后, 数据可以在产品与云端、 制造商与用户之间互联互通, 实现智能互联。

GoKit3采用分体式的设计方案, 即底板(SoC 方式应去掉)+功能板+模组。

标准版底板(STM32F103)如下图所示。

GoKit3 的扩展板的模组接口采用双排母的设计,模组的单排针根据用法不同选择MCU(MCU 模式接口)和 SoC(SoC 模式接口)两种接入方式,如下图所示扩展板接口图:

1.2机智云账号注册

开发者入口地址

打开机智云开发者网页,点击‘马上注册’。

根据自己实际情况填写以下信息:

然后点击‘立即注册’即可。

然后登录注册邮箱,激活账户即可。

激活成功后,即可登录。

1.3机智云产品创建

1.创建智能产品
登录进入开发者平台后即可创建产品。笔者这里使用的是新版,当然使用旧版也是一样的。

然后选择相应的产品。

笔者使用的‘移动网络’方案。

产品开发的第一步是定义产品的功能,一个数据点可以定义为产品的某个功能,如开关等。笔者选择‘去编辑’。

笔者下面定义了LED的数据点类型。

2.创建移动应用
进入首页,右上角创建,创建一个移动应用。应用包名需要唯一。

接着等待片刻即可。

根据自己喜好配置。

接着关联产品。

为产品添加控制页面。

然后构建应用即可。

等待构建完成即可下载。

构建完成之后扫描二维码即可下载安装到手机。
在没有实体之前,可以使用虚拟设备验证云平台。

登录APP后,扫描虚拟设备的二维码,即可添加设备。

然后就可以控制LED了。

1.4机智云设备开发

选择‘MCU开发’中的独立MCU开发方案。

笔者这里选择是的硬件是stm32f103c8x,同时添加项目的Product Secret,然后就可以生成代码并下载了。

1.4.1应用开发框架

自动生成的代码已经根据用户定义的产品数据点信息,并针对 STM32、 ESP8266 等平台, 生成了对应的机智云串口协议层代码, 用户只需要调用相应的 API 接口或添加相应的逻辑处理即可。 代码框架如下图所示:

需要开发的部分为:
A. 下行处理: 例如 LED 灯开关、 电机转速控制等。
B. 上行处理: 例如温湿度数据采集, 红外传感器状态获取等。
C. 配置处理: 配置入网及恢复出厂设置。

1.4.2应用开发实例

接下来就进行设备开发。在开发之前需要安装开发环境,主要是安装Keil和STM32CubeMX。
Keil的安装笔者就不赘述了,网上资料很多。

关于STM32CubeMX的安装和使用请参看笔者博文。

STM32CubeMX软件安装与使用

1. STM32CubeMX配置
接下来打开STM32F103C8x.ioc,配置好相应LED。首先查看相应的电路图。

RGB灯分别接到MCU的PA9、PB8、PB9,因此需要配置这三个GPIO,配置生输出模式即可。

然后生成代码。

2.驱动文件编写
将官方demo中hal文件夹下的delay.h、delay.c、hal_rgb_led.h、hal_rgb_led.c文件拷贝到工程目录下hal文件夹。

然后打开Keil工程,将delay.c和hal_rgb_led.c添加到工程中。

当然啦,如果是自己的设备,这里就需要自行编写驱动文件。

3.修改代码
首先是初始化外设,在 Gizwits 目录下的 gizwits_product.c 文件中userInit()函数中。
修改前:
v

oid userInit(void)
{memset((uint8_t*)&currentDataPoint, 0, sizeof(dataPoint_t));/** Warning !!! DataPoint Variables Init , Must Within The Data Range **/
currentDataPoint.valueLED_OnOff = ;
*/
}

修改后:

void userInit(void)
{memset((uint8_t*)&currentDataPoint, 0, sizeof(dataPoint_t));delay_init(72); // 延时 初始化rgbLedInit(); // RGB LED 初始化/** Warning !!! DataPoint Variables Init , Must Within The Data Range **/ currentDataPoint.valueLED_OnOff = 0;
}

在 Gizwits 目录下的 gizwits_product.c 文件中的gizwitsEventProcess()函数中处理相应事件即可(如下例中的 ledRgbControl(),功能是控制 RGB 灯的颜色) 。

下面以控制 RGB LED 为例, 代码示例如下:

修改前:

if(0x01 == currentDataPoint.valueLED_ONOFF)
{//user handle
}
else
{//user handle
}
break;

修改后:

if(0x01 == currentDataPoint.valueLED_ONOFF)
{//user handle
ledRgbControl(0,254,0);
}
else
{//user handle
ledRgbControl(0,0,0);
}
break;

如果有其他的传感器设备,首先要完成的是传感器驱动开发,然后在 user 目录下gizwits_product.c文件中的 userHandle()函数中实现传感器数据采集,用户只需并将采集到的数值赋值给对应用户区的设备状态结构体数据位即可。
修改前:

void userHandle(void)
{/*
*/
}

修改后:

void userHandle(void)
{uint8_t ret = 0;static uint32_t thLastTimer = 0;///< 新添加代码: 温湿度传感器数据获取if((gizGetTimerCount()- thLastTimer) > 2000) //上报间隔2S{//ret = dht11Read((uint8_t *)&currentDataPoint.valueTemperature,(uint8_t*)&currentDataPoint.valueHumidity);//if(ret != 0)//{//   GIZWITS_LOG("Failedto read DHT11 [%d] \n", ret);//}thLastTimer = gizGetTimerCount();}
}

值得注意的是,关于驱动的头文件需要包含到gizwits_product.c中,请根据实际情况添加。

最后在main.h中添加相应的GPIO定义。

#define RGB_LED_EN_Pin GPIO_PIN_0
#define RGB_LED_EN_GPIO_Port GPIOA
#define RGBLED_CLK_Pin GPIO_PIN_8
#define RGBLED_CLK_GPIO_Port GPIOB
#define RGBLED_DIN_Pin GPIO_PIN_9
#define RGBLED_DIN_GPIO_Port GPIOB

当然啦,为了方便联网,需要在main.c 文件的 key2ShortPress( ) 函数与 key2LongPress( ) 函数中添加点亮LED代码。

void key2ShortPress(void)
{GIZWITS_LOG("KEY2 PRESS ,Soft AP mode\n");#if !MODULE_TYPEgizwitsSetMode(WIFI_SOFTAP_MODE);#endifledRgbControl(250,0, 0);
}void key2LongPress(void)
{//AirLink modeGIZWITS_LOG("KEY2 PRESS LONG ,AirLink mode\n");#if !MODULE_TYPEgizwitsSetMode(WIFI_AIRLINK_MODE);#endifledRgbControl(0, 250, 0);
}

最后编译下载固件即可,笔者使用的是ST-link下载。

当然也可使用串口下载,在下载前,需要准备好固件。

在Keil中,需要勾选输出HEX文件,然后编译即可。

接下来就是使用串口下载固件,方法如下。
将底板的开关拔到system。

打开串口烧录软件mcuisp.exe。点击‘开始编程’。

等待下载完成即可。

值得注意的是,不同的开发板,串口下载操作不同,请根据实际情况操作,笔者这里使用的是GoKit3。
烧录完成之后将开关拔回flash,复位模组,就可以正常运行程序。

1.4.3设备连接(WiFi版)

机智云Wi-Fi/移动通信产品调试APP

GoKit3提供两种配置入网方式:AirLink、SoftAP。笔者这里使用SoftAP 配置入网。

1) 打开 GoKit 的 SoftAP 配置模式
短按 Key2 键, 待扩展板上常亮红灯后, 说明 WiFi 模块进入 SoftAP 配置状态(如下图) 。

2) 打开机智云APP,为ESP32配网
在弹出的界面中选择‘热点配置’。

然后输入可用的 WiFi 并输入对应的密码。还需要设置ESP32的WiFi热点及密码,形如“XPG-GAgent-XXXX” 的 WiFi 热点密码:123456789。

注意: XXXX 是 WiFi 模组的 MAC 后四位。

等待连接完成即可。连接成功后,打开相应的设备即可进行控制。

当然啦,还可使用前面开发的移动应用管理设备,自行生成的APP是通过扫描设备二维码添加设备的,因此这里需要生成一个设备二维码。生成设备二维码需要在机智云APP中查看,如下图所示。

然后打开‘机智云串口调试助手.exe’。

填写相应的Product Key以及MAC即可。

机智云串口调试助手

然后使用自己生成的APP添加设备即可,接下来的操作和添加虚拟设备的操作都是一样的。

1.4.4设备连接(4G版)

这里还是用GoKit3硬件平台,但是需要取下WiFi模组,连接4G设备,笔者这里使用的官网的转接板。

如果没有转接板,则需要按照下图方式连接。

注意:4G模块启动的电流较大,需要外接电源,同时接上4G天线。

然后打开‘机智云串口调试助手.exe’。

填写相应的Product Key以及IMEI即可。

机智云串口调试助手

打开云端,即可看到设备已经在线。

然后打开移动应用,进行设备连接。

接下来就可以控制LED了。

接下来就可以尽情的玩耍了。



欢迎访问我的网站

BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书
BruceOu的知乎


欢迎订阅我的微信公众号

关注公众号[嵌入式实验楼]获取更多资讯

《物联网 - 机智云开发笔记》第1章 机智云平台快速入门相关推荐

  1. 微信小程序云开发笔记

    微信小程序云开发笔记 1. 微信小程序基本知识 1.1 小程序框架 1.2 开发工具 1.3 WXML基本语法 2. 导航栏操作 2.1 改变导航栏背景颜色 2.2 改变导航栏标题 2.3 改变导航栏 ...

  2. 微信小程序应用开发赛全国三等奖总结,以及关键点汇总,开发基本功系列(含云开发笔记、wxcharts数据可视化)

    在华南赛区近千支队伍里以第四名脱颖而出,成为唯一一支入围国赛的专科队伍. 当时是专科大二,省赛作品提交剩下两个月左右我们才报名,然后开始学小程序,边学边开发,没想到第一次参加比赛就拿到国奖,兴奋了好久 ...

  3. access 根据id删除数据_小程序云开发之数据库自动备份丨云开发101

    钻石有价,数据无价.我们通常会把重要的业务数据存放在数据库中,并需要对数据库做定时的自动备份工作,防止数据异常丢失,造成无法挽回的损失. 小程序云开发提供了方便的云数据库供我们直接使用,云开发使用了腾 ...

  4. 微信小程序云开发 · 从0搭建商业级校园跑腿平台(已开源)

    微信小程序云开发  ·  从零搭建商业级校园跑腿平台 小秃僧 新生代农民工,一枚准毕业的大四学生,热爱前端开发,做个有态度.有思想.有价值的公众号. 好久不更新了,再更新已是打工人! 我将分享用云开发 ...

  5. 微信小程序云开发——常用功能2:操作云数据库一键批量导入数据(导入json文件)

    微信小程序云开发--常用功能2:操作云数据库一键批量导入数据(导入json文件) 今天我们要添加100条数据.下面的过程是先创建一条记录,然后导出这条数据看json文件中是如何编辑字段的,然后仿照这个 ...

  6. 借助云开发,利用订阅消息,云函数路由实现小程序好友一对一聊天,添加好友等仿微信功能

    微信小程序借助云开发,利用订阅消息,云函数路由实现小程序好友一对一聊天,添加好友等仿微信功能 这篇文章已经进行了更新,请点此进行查看 仿微信好友聊天 主要功能有 后续可能补充功能 详细介绍 注意 保存 ...

  7. ATECC508A芯片开发笔记(十一):NXP 平台移植ATECCx08 CryptoAuthLib库(I2C)

    目录 ATECC508A芯片开发笔记(十一):NXP 平台移植x08库(I2C) 一.CryptoAuthLib 二.Nxp RT10xx平台上移植CryptoAuthLib 2.1.在官网下载最新的 ...

  8. uniapp实现微信小程序云开发数据库访问,并解决云开发数据库获取不到数据问题

    uniapp实现微信小程序云开发数据库访问,并解决云开发数据库获取不到数据问题 使用工具是HBuilder X 1.配置好AppID(小程序ID) 在HBuilder X工具的manifest.js文 ...

  9. 【原创】微信小程序云开发通过input输入框动态修改云数据库的数据

    [原创]微信小程序云开发通过input输入框动态修改云数据库的数据 效果: 可以在小程序的显示界面中,渲染出数据库的相关内容,并且可以在显示界面中,直接修改数据库中的数据. 初始状态图: 点击获取数据 ...

  10. Gradle用户指南(章9:Groovy快速入门)

    Gradle用户指南(章9:Groovy快速入门) 你可以使用groovy插件来构建groovy项目.这个插件继承了java插件的功能,且扩展了groovy编译.你的项目可以包含groovy代码.ja ...

最新文章

  1. 关于C++14:你需要知道的新特性
  2. 试图将驱动程序添加到存储区_SQL 已死,但 SQL 将永存!
  3. html 文件上传框 input标签
  4. 浅谈PopupWindow弹出菜单
  5. almost a hero 差不多英雄 攻略
  6. (转)战斗bug技巧全攻略
  7. 不要以为写写代码就是计算机科学
  8. web入门--ssti
  9. Firefly III 搭建个人财务记账平台
  10. 浅谈FPGA的乒乓操作
  11. ept技术_速懂X86虚拟化关键概念 - Intel EPT
  12. 安装丰巢价格是多少_马桶后方1㎡好几万你不在意,丰巢涨价5毛钱你却斤斤计较...
  13. 四川E900s-Hi3798MV100-黑盒8G版-黄标签高安版-5800-2AHPM6B-当贝桌面强刷卡刷包
  14. R星安装不完全无法载入social club(错误码:1)解决办法
  15. 我的世界java边境之地_我的世界边境之地是什么 我的世界边境之地介绍
  16. Echarts 柱状图上方显示值
  17. SLAM发展现状研究
  18. Python:实现非极大值抑制
  19. Win7 任务栏上程序名称修改问题
  20. android root权限破解分析

热门文章

  1. 用 Python 制作可视化 GUI 界面,一键实现自动分类管理文件!
  2. 用Verilog实现Conway‘s Game of Life 16x16(HDLbits的Conwaylife题)
  3. kali kda安装 linux_linux安装usb打印机(HP LaserJet 1020)驱动
  4. ubuntu20.04爬虫开发环境搭建以及常用软件安装
  5. IT企业面试常见逻辑推理题智力题及详解答案(一)
  6. 【DFS经典例题】2n皇后问题
  7. 选股方法简单介绍及选股方法大力推荐
  8. 剑走偏锋--使用WMI获取远程计算机进程程序集中查毒病毒打造内网安全环境
  9. 360杀毒是真正的64位杀毒软件吗?
  10. 广西省柳州市谷歌卫星地图下载