HaaS轻应用(JavaScript)快速开始 @HaaS100
Posted HaaS技术社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HaaS轻应用(JavaScript)快速开始 @HaaS100相关的知识,希望对你有一定的参考价值。
1、HaaS100介绍
HaaS100开发板阿里云IoT团队推出的物联网通用性云端一体开发板,不但硬件资源丰富,而且还支持HaaS轻应用开发,可以方便的使用javascript或Python进行物联网应用开发。
2、硬件与系统环境
2.1、硬件连接与启动
-
电源适配器供电
-
使用MicroUSB数据线连接开发板与PC
2.2、系统环境
Windows
安装USB转串口驱动,在设备管理器中可以看到以下串口:
不同PC的串口号不一致
macOS
安装USB转串口驱动,在dev目录下可以看到以下串口:
javascript
Editor
crw-rw-rw- 1 root wheel 18, 4 9 21 16:23 /dev/tty.SLAB_USBtoUART
2.3、获取轻应用固件
-
使用官方标准固件
haas100固件
烧录说明:将固件包解压,进入aos_burn_tool目录,打开cmd或者powershell终端,执行以下命令
python flash_program.py --bin=ota_rtos.bin
-
自己编译固件
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。
以上是关于HaaS轻应用(JavaScript)快速开始 @HaaS100的主要内容,如果未能解决你的问题,请参考以下文章
HaaS轻应用(JavaScript)快速开始 @ HaaS610
HaaS轻应用(JavaScript)快速开始 @HaaS EDU K1
HaaS轻应用(JavaScript)快速开始 @ HaaS600 EC600S