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。
本文转自网络,原文链接:https://developer.aliyun.com/article/787524