简介
硬件
下面是HaaS100的简单介绍, 详细功能和参数可以参考HaaS100的产品说明书。
软件
HaaS100搭载AliOS Things物联网操作系统, 点击查看AliOS Things简介 。
环境
AliOS Things提供两套开发环境:
1、针对初学者,建议参考开发环境一键安装文档,搭建环境、下载代码、编译和烧录等。(使用本方式的开发者可以跳过本文档)
2、针对有经验的嵌入式开发者,AliOS Things的开发环境准备, 点击查看相应的开发环境搭建文档:Linux环境安装;Windows环境安装;macOS环境安装。
快速开始
下载代码
git clone https://github.com/alibaba/AliOS-Things.git -b dev_3.1.0_haas
对于国内用户,为避免从github下载速度较慢,可以从gitee上下载。
git clone https://gitee.com/alios-things/AliOS-Things.git -b dev_3.1.0_haas
编译
进入代码的顶层目录如AliOS-Things进行编译。可以直接编译application/example/目录下的demo app,或者自己开发的app。下面以编译helloworld_demo为例。
aos make helloworld_demo@haas100 -c config
aos make
烧录
准备
给HaaS100插上电源(电源正常的情况下板子右上角LED灯会亮),在Micro USB口插上usb线并连接到烧录主机。等待烧录主机发现新插入的usb设备并识别成串口。
如果您的烧录主机没有自动识别usb并安装驱动, 您可以点击这里 USB转UART驱动 手动下载对应的版本并安装。
识别成功后,可以在计算机管理->设备管理器中发现串口设备。
使用命令行方式烧录
打开命令行工具,进入到代码顶层目录,然后输入命令aos upload
,选择相应的串口即可开始烧录。
烧录成功后,显示“Firmware upload succeed“字样。
烧录成功后,也自动将串口信息保存在当前目录下的.aos_config_burn文件中。如果后续烧录时,串口号有变化,可以删除该文件,再使用aos upload
命令烧录。
如果在烧录期间,提示“Please reboot the board manually“,请按复位键复位开发板。
若复位无效,还是一直打印“Please reboot the board manually“,则需要将板子完全断电,再上电,然后重新使用aos upload
命令烧录。
使用GUI工具烧录
第一次编译后从代码顶层目录拷贝platform/mcu/haas1000/release/write_flash_gui目录下的所有文件到windows环境。 后续再编译可以只替换write_flash_gui/ota_bin/ota_rtos.bin即可。
在windows环境下进入write_flash_gui目录,双击运行haas1000_write_flash_main,出现烧录软件的主界面。
点击Port Config
按钮,出现串口配置界面。
点击List按钮,选择HaaS100连接的串口。
选择后,点击Ok按钮确认关闭串口配置界面,此时主界面如下,烧录状态是Closed。
点击Start All
按钮,进入烧录状态,此时烧录状态是Idle,等待设备重启。
短按板子上的重启键或者插拔电源对板子上下电,开始烧录,此时烧录状态是Burning,可以看到烧录的进度。
等待烧录成功,此时烧录的状态的Success,进度是100%。
点击Exit
退出即可。
串口打印
使用串口工具如Putty/SecureCRT,设置串口波特率1500000。
Putty设置
设置串口波特率1500000,并关闭Parity 和 Flow control,并设置字符编码为UTF-8,否则打印会乱码。
SecureCRT设置
设置串口波特率1500000,并关闭Parity 和 Flow control, 并设置字符编码为UTF-8,否则打印会乱码。
启动log
设置好串口后, 重启设备就可以看到AliOS Things的启动log,和最后hello world的打印了。
1569/main | app_status_indication_set 1
1569/main | platform_init_step1 done, user_init=3, ret=0
1569/main | platform_init_step1 enter temprature cali on signal
1569/main | board_init platform_init_step1 done
1573/main_task | sys_init go
1573/main_task | sys freq calc : 320000000, wifi init 1
1573/main_task | sys_init soc_peripheral_init done
Welcome to AliOS Things
1574/main_task | sys_init aos_components_init done
1574/main_task | mesh has been opened
[Jan 01 00:00:01.482]<I>ULOG-test sys_init aos_components_init done
nano entry here!
hello world! count 0
hello world! count 1
hello world! count 2
hello world! count 3
如何点亮一个LED灯
上面看过了简单的打印后, 我们做一个简单的点灯实践来练练手。
如下简单修改application/example/helloworld_demo/appdemo.c,增加点灯的代码。
说明:灯的编号,右边从上到下分别是0, 1 , 2;左边从上到下分别是3, 4, 5。 编号0是电源指示灯,不可修改。
--- a/application/example/helloworld_demo/appdemo.c
+++ b/application/example/helloworld_demo/appdemo.c
@@ -8,6 +8,7 @@
#include "aos/init.h"
#include "board.h"
#include <k_api.h>
+#include "led.h"
int application_start(int argc, char *argv[])
{
@@ -18,6 +19,13 @@ int application_start(int argc, char *argv[])
//fd = board_lcd_create("name");
//board_lcd_write(fd,buffer,len);
+ printf("Light all the led switch of the left.\r\n");
+ /* Sleep 1 second to avoid that led switch on/off while the boad boot up. */
+ aos_msleep(1000);
+ led_switch(3,LED_ON);
+ led_switch(4,LED_ON);
+ led_switch(5,LED_ON);
+
while(1) {
printf("hello world! count %d \r\n", count++);
代码改完后,参考上面的步骤编译烧录,最后启动板子就能看到左边的灯都已经被点亮。
怎么样? 用HaaS进行开发是不是很简单, 远远不止这些哦,HaaS已经做了很多简化开发的工作, 快来动手探索一下吧。