HaaS100轻应用开发实战

HaaS 100效果图

HaaS100快速开始

HaaS100硬件规格

 

系统环境

硬件连接与启动

  - 电源适配器供电

  - 使用MicroUSB数据线连接开发板与PC

系统环境

Windows

安装USB串口驱动,在设备管理器中可以看到以下串口:

Windows串口驱动

macOS

安装USB串口驱动,在dev目录下可以看到以下串口:

crw-rw-rw-  1 root  wheel   18,   4  9 21 16:23 /dev/tty.SLAB_USBtoUART

固件准备

  - 获取代码

git clone https://github.com/alibaba/AliOS-Things.git -b dev_3.1.0_haas

  - 固件编译

aos make amp_app@haas100 -c config
aos make

  - 固件烧录

HaaS100快速开始

开发工具

下载命令行工具

打开示例应用

下载示例应用代码包

这里通过一个简单的LED闪灯的用例来介绍。

下载应用代码包,LED闪灯用例的代码目录如下所示:

app
├── app.json    # 应用与板级配置
└── app.js       # 用户代码

参考LED灯链接接口信息,本示例中LED3对应GPIO端口为36,所以在app.json中配置好LED3对应的port口为36。

{
    "version": "1.0.0",
    "io": {
        "LED3": {
            "type": "GPIO",
            "port": 36,
            "dir": "output",
            "pull": "pulldown"
        }
    },
    "debugLevel": "DEBUG"
}

在app.js中的用例逻辑如下:首先根据LED灯的配置创建一个GPIO实例,然后启动定时器,周期性的通过GPIO读写接口开关LED灯。

var gpio = require('gpio');

var led3 = gpio.open({
  id: 'LED3',
  success: function() {
      console.log('gpio: open led success')
  },
  fail: function() {
      console.log('gpio: open led failed')
  }
});

var vol = 0;

setInterval(function() {
  vol = 1 - vol;
  led3.writeValue(vol);
  console.log('led set value ' + vol);
}, 1000);

 

应用代码热更新到目标硬件

将应用代码拷贝到amp工具的目录下,然后用户可以选择任意一种热更新方式(本地或在线)下载应用代码到开发板。

本地热更新

  - 设置单板到下载模式

将GPIO47电平拉高(跟3v3短接)并复位,设备进入本地下载模式,此时LED1指示灯间歇性双闪。本地更新通过串口将应用下载到设备中,因此需要一个USB转TTL模块,如图所示跟设备UART2连接。

本地下载

  - 通过amp工具完成本地热更新

./amp.exe seriallist
COM77

./amp.exe serialput ./app COM77

Note:此处的串口号是USB转TTL模块的串口,注意不是debug的串口号。

  - 运行应用示例

在线热更新

  - 更新完成后自动执行应用

应用示例运行后,可以观察到LED3灯按照每秒钟一次的频率闪烁。

在线热更新不涉及单板模式的切换,可直接参考应用热更新完成,更新完成后自动运行应用示例,可以观察到LED3灯按照每秒钟一次的频率闪烁。

amp

 

附录

硬件资源介绍

排针接口

排针接口

板载LED灯序号图

板载LED灯序号图

硬件资源映射表

功能/接口

PIN/IO/资源映射

轻应用 port 配置

I2C1

SDA2 SCL2

0

I2C2

SDA3 SCL3

1

ADC0

ADC0

0

ADC1

ADC1

1

ADC2

ADC2

2

PWM0

PWM0

0

PWM1

PWM1

1

PWM2

PWM2

2

PWM3

PWM3

3

UART0

默认板级log打印

0

UART2

UART2_TXD UART2_RXD

2

GPIO

GPIO41 GPIO40 GPIO47 GPIO46

33 32 39 38

LED

LED1 LED2 LED3 LED4 LED5

40 41 36 35 34

SPI

SPI0_MISO SPI0_MOSI SPI0_CLK SPI0_CS0

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"
        },
        "LED1":{
            "type":"GPIO",
            "port":40,
            "dir":"output",
            "pull":"pulldown"
        },
        "LED2":{
            "type":"GPIO",
            "port":41,
            "dir":"output",
            "pull":"pulldown"
        },
        "LED3":{
            "type":"GPIO",
            "port":36,
            "dir":"output",
            "pull":"pulldown"
        },
        "LED4":{
            "type":"GPIO",
            "port":35,
            "dir":"output",
            "pull":"pulldown"
        },
        "LED5":{
            "type":"GPIO",
            "port":34,
            "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"
}

如需更多技术支持,可加入钉钉开发者群

更多轻应用的详细使用文档请参考:https://help.aliyun.com/document_detail/174810.html

更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/

猜你喜欢

转载自blog.csdn.net/HaaSTech/article/details/110217467