氦氪空间 发表于 2015-10-19 13:17:31

Arduino+ESP8266低成本、高效率开发物联网设备

本帖最后由 氦氪空间 于 2015-10-23 15:39 编辑

针对开源硬件Arduino便捷灵活、方便上手、开放性强的特点和WIFI芯片ESP8266高度集成、前期开发时间短、性价比高的特点,经过几个月时间的开发,我们推出了以HEKR IOT-KIT为基础的一系列物联网开发套件。使用HEKR IOT-KIT配合Hekr云端平台以及HEKR APP,可以快速完成物联网设备原型的开发,您还可以发挥您的想象力,在Arduino+ESP8266的基础上开发出更多、更好玩的设备,轻松体验智能生活的便捷。

以下是我们以HEKR IOT-KIT为基础开发的一款用手机控制的无极调光灯使用视频:

http://v.youku.com/v_show/id_XMTM1ODU1ODE0OA==.html

开发者可以参照使用样例对HEKR IOT-KIT进行一些入门级的功能开发,比如使用APP与Arduino通信、使用APP点亮LED等等。

接下来,我来介绍一下样例的使用方法,同时了解HEKR IOT-KIT联网后的基本信息传输链:
移动端APP<--->云端<--->HEKR IOT-KIT

***************************************************************
硬件说明:
HEKR IOT-KIT+Micro USB数据线
http://image.geek-workshop.com/album/201510/19/113739vpprtpvccgg9ir9l.jpg

HEKR IOT-KIT可通过对拨码开关的设置进入不同模式。
http://image.geek-workshop.com/album/201510/19/113748js0jxvyvx4bsvsos.png

HEKR IOT-KIT V1.0串口芯片采用的是CP2102
串口芯片驱动程序、Arduino库文件、ESP8266烧录软件下载:

http://pan.baidu.com/s/1dDg7Q5j

本示例编译上传环境为Arduino IDE 1.6.3-Windows
步骤一:Arduino烧录
(1). 将拨码开关设置成Arduino烧录模式。

(2). 添加库文件:将HEKR IOT-KITV1.0样例及烧录工具\Arduino路径下的Hekr文件夹复制到Arduino安装目录下的Arduino\libraries路径下。

(3). 黏贴以下代码到arduino IDE中
#include <hekr_protocol.h>
u8 temp;
u8 RecvBuffer;

// HEKR USER API **************************************************************

//使用前要确定用户所需要的最大数组默认为100 大于100需要自行修改
//数组大小可以自行修改为最长长度
//如果有多条不等长命令取最长长度为用户数据长度非整帧长度
//#define USER_MAX_LEN 0x64u

//Hekr 协议初始化
//使用Hekr协议前需完成初始化
//初始化需要用户有串口发送一个byte的程序
//eg:void UART_SendChar(u8 ch); 传输参数必须只是一个8bit的数
//   该函数需要用户自行在程序中定义
//HekrInit函数:
//传入参数为用户串口发送一个byte函数的函数名
//void HekrInit(void (*fun)(unsigned char));
//eg:HekrInit(UART_SendChar);   

//传入串口接收的数据数组
//返回值见头文件 RecvDataHandleCode
//传入数组长度应大于用户数据长度加上HEKR_DATA_LEN
//数据保存在对应数组中 valid_data 和 ModuleStatus 指针
//unsigned char HekrRecvDataHandle(unsigned char* data);

//配置及查询hekr模块状态 传入码值见头文件 HekrModuleControlCode
//状态值保存在module_status数组中
//void HekrModuleControl(unsigned char data);


//上传用户有效数据
//数据存放在valid_data数组中 len 为用户数据长度非整帧长度
//void HekrValidDataUpload(unsigned char len);

//协议修改日期 2015.09.01
//协议网址http://docs.hekr.me/protocol/
//BUG 反馈[email protected]
//          [email protected]
//*****************************************************************************

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
HekrInit(SendChar);
HekrModuleControl(HekrConfig);
}

void loop() {
GetData();
DataHandle();
}


void SendChar(unsigned char ch)
{
Serial.write(ch);
delay(2);
}

void GetData(void)
{
u8 i = 0;
while(Serial.available())
{
    RecvBuffer = Serial.read();
    if(RecvBuffer != 0x48)
      i = 0;
    delay(2);
}
}
//*************************************************************************
//HekrRecvDataHandle函数返回值
//typedefenum
//{
//RecvDataSumCheckErr = 0x01,
//LastFrameSendErr = 0x02,
//MCU_UploadACK = 0x03,
//ValidDataUpdate = 0x04,
//RecvDataUseless = 0x05,
//HekrModuleStateUpdate = 0x06,
//MCU_ControlModuleACK = 0x07
//}RecvDataHandleCode;
//*************************************************************************
void DataHandle(void)
{
//以下部分为MCU端Hekr透传协议解析代码
if(RecvBuffer == HEKR_FRAME_HEADER)
{
    temp = HekrRecvDataHandle(RecvBuffer);
    RecvBuffer = 0x00;
    if(ValidDataUpdate == temp)
    {
      //接收的数据保存在 valid_data 数组里
      //User Code
      SendChar(valid_data);
    }
    if(HekrModuleStateUpdate == temp)
    {
      //接收的数据保存在 ModuleStatus 指针里
      //User Code.
      SendChar(ModuleStatus->CMD);
    }
}
}


(4). 选择板卡类型:工具->板->Arduino Uno。

(5). 选择串口:工具->端口->COM3。COM3是本地电脑识别到的usb串口端口号。

(6).编译代码:选择项目->验证/编译。

(7).上传代码到Arduino:选择文件->上传。

步骤二:ESP8266烧录
(1). 将拨码开关设置成ESP8266烧录模式。

(2). 打开HEKR IOT-KITV1.0样例及烧录工具\ESP8266\FLASH_DOWNLOAD_TOOLS路径下的frame_test.exe文件。

(3). 设置好对应的COM口和串口波特率。

(4). 导入.bin文件并且设置好对应的烧录地址。如下图所示:



文件说明:
“product-base”里的4个bin文件,每个产品都要烧录,OFFSE(烧录地址)如上。
“product-func”烧录对应型号的XXX-XXX-1.bin文件,这里烧录的是HEKR标准透传固件:HK_KFB_IOT_DB01_Firmware_v3.0.26.1build_10230935-1.bin(注意:后缀为-1.bin。手动烧录不需要用到-2.bin),OFFSE(烧录地址)0x01000。

设置说明:
FLASH SIZE 改为 16Mbit,BAUDRATE(波特率)随意,越大速度越快,其它默认即可。

(5). 点击“START"按钮,等待上电同步。显示如下:


(6). 等待上电同步时,用镊子或者其他方式短接烧录口A和B(具体位置见硬件说明图),同时按下复位按键,开始下载。界面显示如下:



(7). 烧录完毕,完成界面显示如下:


步骤三:APP配置和使用
(1).APP安装:
支持Android4.0及以上版本
支持iOS7.0及以上版本

扫一扫下载HEKR APP:
http://image.geek-workshop.com/album/201510/19/113913qhobddd8l66g6bdt.png

(2).进入APP登录界面:
http://image.geek-workshop.com/album/201510/19/113926vz45l7665277rjg4.png

(3).“本地登录”中绑定的设备仅在本机有效。其他登录方式中设备绑定在相应的账号下。本例中采用“QQ”登录方式。

(4).在QQ登录界面输入账号和密码,进入设备列表界面:

http://image.geek-workshop.com/album/201510/19/113958ao4zerrqbcr9cbse.png

(5). 点击右上角“+”图标进入配置界面:

http://image.geek-workshop.com/album/201510/19/114015mr6h51iwnb1juwwh.png

(6).输入当前连接下的WIFI密码(若当前没有连上WIFI,需先连上WIFI)

(7).长按物理设备上的ESP配置按键5秒后点击界面上的http://image.geek-workshop.com/album/201510/19/114026wjgze0tes00itxeg.png开始配置。

(8).等待几秒后显示如下:

http://image.geek-workshop.com/album/201510/19/114044x5wg4t3hyxs57k77.png
即配置成功!

(9). 下拉刷新设备列表,新绑定的设备即可出现在设备列表中。如下所示:

http://image.geek-workshop.com/album/201510/19/114112brz6dzcx8l98g484.png

(10).点击界面上的设备图标即可进入相应的控制页面:

http://image.geek-workshop.com/album/201510/19/114135cu9egs09srw1khgw.png

(11).在“发送”栏中输入示例帧48 0E 02 0102 01 00 00 00 00 00 00 005C(Hekr协议帧可在HEKR模块透传协议在线文档HEKR模块透传协议中查询)

并且点击图标发送示例帧。

6.APP成功发送命令后在接受栏中可收到应答信息,界面如下图所示:

http://image.geek-workshop.com/album/201510/19/114143gf6dhphnjp22g2h1.png
样例演示完成。

**********************************************

样例展示了在APP与硬件之间进行信息上传和下发的简单功能。

参照样例中的Arduino代码配合Hekr模块透传协议,可以用HEKR IOT-KIT进行一些简单的功能实现,比如使用APP点亮LED或者是驱动电机和蜂鸣器等等。

如果您希望进一步地DIY更多功能,我们在github上https://github.com/HEKR-Cloud/提供了开放的SDK,开源了我们的硬件和APP。并且开发了多款适配HEKR IOT-KIT的功能扩展板,比如:RGB调光灯功能板、温湿度采集功能板、PM2.5功能板,我们会陆续开放出功能板的例程和文档,和开发者们一起感受DIY的乐趣。

小林 发表于 2015-10-20 11:39:28

:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol

hesg 发表于 2015-11-19 13:32:33

在哪里可以买到这些材料,真想马上试试。

人无再少年。 发表于 2015-11-19 19:21:17

hesg 发表于 2015-11-19 13:32 static/image/common/back.gif
在哪里可以买到这些材料,真想马上试试。

https://item.taobao.com/item.htm?spm=a230r.1.14.1.6iVQXX&id=523196928204&ns=1&abbucket=14#detail
极客工坊的店里就有呀:lol:lol:lol

智乱天下 发表于 2016-4-29 18:04:45

其他的wifi模块加上uno也可以吧??
页: [1]
查看完整版本: Arduino+ESP8266低成本、高效率开发物联网设备