来源 | HaaS技术社区
1、HaaS100介绍
HaaS100开发板阿里云IoT团队推出的物联网通用性云端一体开发板,不但硬件资源丰富,而且还支持HaaS轻应用开发,可以方便的使用JavaScript或Python进行物联网应用开发。
2、硬件与系统环境
2.1、硬件连接与启动
-
电源适配器供电
-
使用MicroUSB数据线连接开发板与PC
2.2、系统环境
Windows
安装USB转串口驱动,在设备管理器中可以看到以下串口:
不同PC的串口号不一致
macOS
安装USB转串口驱动,在dev目录下可以看到以下串口:
javascript
Editor
2.3、获取轻应用固件
-
使用官方标准固件
haas100固件
烧录说明:将固件包解压,进入aos_burn_tool目录,打开cmd或者powershell终端,执行以下命令
-
自己编译固件
-
git clone https: //github.com/alibaba/AliOS-Things
-
-
cd solutions /amp_demo/
-
-
aos make -b haas100
2.5、开发工具
参见 Visual Studio Code (AliOS Studio) 或者 命令行工具 章节
3、打开示例应用
下载示例应用代码包
这里通过一个简单的LED闪灯的用例来介绍。
下载应用代码包,LED闪灯用例的代码目录如下所示:
-
app
-
├── app.json # 应用与板级配置
-
└── app.js # 用户代码
参考硬件资源介绍,已经在app.json中配置好LED3对应的port口为36。
-
{
-
"version": "1.0.0",
-
"io": {
-
"led": {
-
"type": "GPIO",
-
"port": 36,
-
"dir": "output",
-
"pull": "pulldown"
-
}
-
},
-
"debugLevel": "DEBUG"
-
}
在app.js中的用例逻辑如下:首先根据LED灯的配置创建一个GPIO实例,然后启动定时器,周期性的通过GPIO读写接口开关LED灯。
-
import * as gpio from 'gpio'
-
-
var led = gpio.open({
-
id: 'led',
-
success: function () {
-
console.log( 'gpio: open led success')
-
},
-
fail: function () {
-
console.log( 'gpio: open led failed')
-
}
-
});
-
-
var vol = 0;
-
-
setInterval( function() {
-
vol = 1 - vol;
-
led.writeValue(vol);
-
console.log( 'gpio: led set value ' + vol);
-
}, 1000);
-
4、应用代码更新到目标硬件
将应用代码拷贝到amp工具的目录下,然后用户可以选择任意一种热更新方式(本地或在线)下载应用代码到开发板。
本地更新
-
打开命令行工具
-
推送脚本到设备
-
执行推送命令
-
/* app是JavaScript应用脚本目录 */
-
/* COMXX是日志串口号,此处填写自己的串口号 */
-
/* -b 1500000 HaaS100串口波特率为1.5M */
-
-
. /amp.exe serialput ./app COMXX -m quickjs -b 1500000
执行推送命令的时候需要关闭日志串口
-
复位开发板
-
等待脚本传输完成,打开日志串口观察脚本运行情况
附录
排针接口
板载LED灯序号示意图
硬件资源映射表
功能/接口 |
PIN/IO/资源映射 |
轻应用 Port 配置 |
I2C1 |
SDA2 SCL2 |
port=0 |
I2C2 |
SDA3 SCL3 |
port=1 |
ADC0 |
ADC0 |
port=0 |
ADC1 |
ADC1 |
port=1 |
ADC2 |
ADC2 |
port=2 |
PWM0 |
PWM0 |
port=0 |
PWM1 |
PWM1 |
port=1 |
PWM2 |
PWM2 |
port=2 |
PWM3 |
PWM3 |
port=3 |
UART0 |
默认板级log打印 |
port=0 |
UART2 |
UART2_TXD UART2_RXD |
port=2 |
GPIO |
GPIO41 GPIO40 GPIO47 GPIO46 |
port=33 port=32 port=39 port=38 |
SPI |
SPI0_MISO SPI0_MOSI SPI0_CLK SPI0_CS0 |
port=0 |
功能列表(部分)
-
文件系统 FS
-
系统信息 SYSTEM
-
键值对存储 KV
-
硬件I/O
-
UART
-
GPIO
-
I2C
-
SPI
-
ADC
-
PWM
-
网络协议
-
UDP
-
TCP
-
MQTT
-
HTTP
-
高阶功能
-
IoT 阿里云IoT平台连接组件
app.json 参考示例
-
{
-
"io":{
-
"D1":{
-
"type": "GPIO",
-
"port": 32,
-
"dir": "output",
-
"pull": "pulldown"
-
},
-
"D2":{
-
"type": "GPIO",
-
"port": 33,
-
"dir": "output",
-
"pull": "pulldown"
-
},
-
"D3":{
-
"type": "GPIO",
-
"port": 38,
-
"dir": "output",
-
"pull": "pulldown"
-
},
-
"D4":{
-
"type": "GPIO",
-
"port": 39,
-
"dir": "output",
-
"pull": "pulldown"
-
},
-
"I2C1":{
-
"type": "I2C",
-
"port": 0,
-
"addrWidth": 7,
-
"freq": 100000,
-
"mode": "master",
-
"devAddr": 118
-
},
-
"I2C2":{
-
"type": "I2C",
-
"port": 0,
-
"addrWidth": 7,
-
"freq": 100000,
-
"mode": "master",
-
"devAddr": 118
-
},
-
"ADC0":{
-
"type": "ADC",
-
"port": 0,
-
"sampling": 12000000
-
},
-
"ADC1":{
-
"type": "ADC",
-
"port": 1,
-
"sampling": 12000000
-
},
-
"ADC2":{
-
"type": "ADC",
-
"port": 2,
-
"sampling": 12000000
-
},
-
"PWM0":{
-
"type": "PWM",
-
"port": 0
-
},
-
"PWM1":{
-
"type": "PWM",
-
"port": 1
-
},
-
"PWM2":{
-
"type": "PWM",
-
"port": 2
-
},
-
"PWM3":{
-
"type": "PWM",
-
"port": 3
-
},
-
"UART2":{
-
"type": "UART",
-
"port": 2,
-
"dataWidth": 8,
-
"baudRate": 115200,
-
"stopBits": 1,
-
"flowControl": "disable",
-
"parity": "none"
-
},
-
"SPI0":{
-
"type": "SPI",
-
"port": 0,
-
"mode": "master",
-
"freq": 3250000
-
}
-
},
-
"debugLevel": "DEBUG"
-
}
开发者支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号。
更多技术与解决方案介绍,请访问HaaS官方网站https://haas.iot.aliyun.com。