HaaS600 Kit的JavaScript轻应用开发配置

简介: HaaS600 Kit 是一款基于 HaaS600系列模组评估的高性价比开发板。可应用于共享控制、金融支付、智能语音、泛工业等场景的智能硬件产品开发。

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

来源 | HaaS技术社区

1、前言

关于轻应用的文档请参考轻应用总览

image

HaaS600 Kit 是一款基于 HaaS600系列模组评估的高性价比开发板。可应用于共享控制、金融支付、智能语音、泛工业等场景的智能硬件产品开发。

HaaS600套件包含以下物料:

  • 开发板 x 1
  • micro-USB线缆 x 1
  • 5V/2A电源适配器 x 1
  • 4G天线 x 1
  • GPS天线 x 1

HaaS600 Kit在出厂时已经烧录了轻应用固件,开发者不需要编译烧录。

2、系统环境

2.1、设备连接

按照下图所示将开发电脑跟设备的调试/用户串口通过MicroUSB连接,连接后,将在PC设备管理器中出现两个串口,分别用于调试和用户串口输入输出。

image

安装USB转串口驱动

2.2、系统环境

Windows

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

image.png

macOS

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

image.png

Note:

1. 不同的电脑生成的串口号和名称不一样,以实际生成的为准。

2. 生成的两个串口,一个是debug串口(查看运行日志,只读),另一个是用户串口(JavaScript交互式解释器或其他用途)

2.3、开发工具

下载并了解轻应用开发工具

3、打开示例应用

3.1、下载示例应用代码包

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

通过附件链接下载应用代码包,代码路径 amp-examples/board/HaaS600Kit/basic/gpio

LED闪灯用例的代码目录如下所示:

  1. app
  2. ├── app.json # 应用与板级配置
  3. └── app.js # 用户代码
  • 查看设备连接状态

在命令行工具下使用该命令查看设备连接状态

  1. ./amp.exe seriallist
  2. COM194
  3. COM195

Note:如果返回值跟设备管理器中生成的一致,说明设备连接和命令行工具运行正常

命令行工具默认示例代码运行hello world程序,此处使用LED Blink来作为第一个轻应用示例来介绍。

使用下面的

app.js
app.json
文件替换命令行工具示例代码目录下的同名文件,如下:

LED Blink

app.json

参考硬件资源介绍,已经在app.json中配置好User LED灯对应的port口为33。

  1. {
  2. "version": "1.0.0",
  3. "io": {
  4. "D13": {
  5. "type": "GPIO",
  6. "port": 33,
  7. "dir": "output",
  8. "pull": "pulldown"
  9. }
  10. },
  11. "debugLevel": "DEBUG"
  12. }
在app.js中的用例逻辑如下:首先根据LED灯的配置创建一个GPIO实例,然后启动定时器,周期性的通过GPIO读写接口开关LED灯,并读取开关状态。
  1. var gpio = require( 'gpio');
  2. var led = gpio.open({
  3. id: 'D13'
  4. });
  5. var vol = 0;
  6. setInterval( function() {
  7. vol = 1 - vol;
  8. led.writeValue(vol);
  9. console.log( 'gpio: led set value ' + vol);
  10. vol = led.readValue();
  11. console.log( 'gpio: led get value ' + vol);
  12. }, 1000);

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

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

4.1、本地热更新

  • 切换到下载模式

下载/运行模式切换开关(MODE)拨到DL侧,并通过电源选择开关(POWER SWITCH)断电重启,稍等片刻待AMP_STU指示灯间歇性双闪,如下图,说明设备已经进入本地下载模式

image

  • 通过amp工具推送应用代码到设备
  1. ./amp.exe seriallist
  2. COM194
  3. COM195
  4. ./amp.exe serialput ./app COM194

Note:Windows环境下,热更新命令的串口号需要大写。

  • 切换到运行模式(RUN)并复位
  • 运行效果如图:

测试使用的LED灯对应的丝印为"USER",然后进入绿色闪烁状态(如下图所示)。

image

4.2、在线热更新

在已插SIM卡有网络连接的情况下,也可参考在线应用热更新推送轻应用代码到目标设备。

5、硬件资源

5.1、硬件资源介绍

image

5.2、硬件资源映射表

功能/接口 PIN/IO/资源映射 轻应用 port 配置
I2C0 SDA(IO50) SCL(IO49) 0
ADC0 A0

0

ADC1 A1

1

UART0 默认板级log打印 0
UART1

TXD(IO54)

RXD(IO53)

1
UART2

TXD(IO52)

RXD(IO51)

2
GPIO

IO51

IO52

IO17

IO16

IO59

IO121

IO54

IO53

IO124

IO122

IO34

IO36

IO35

IO33

IO57

IO0

IO1

D0

D1

D2

D3

D4

D5

D6

D7

D8

D9

D10

D11

D12

D13

D14

D15

D16

SPI0

MISO(IO35)

MOSI(IO36)

SCK(IO33)

0

6、功能

6.1、功能列表(部分)

  • 文件系统 FS
  • 系统信息 SYSTEM
  • 键值对存储 KV
  • 电源管理 PM
  • 硬件I/O
    • UART
    • GPIO
    • I2C
    • SPI
    • ADC
    • DAC
    • PWM
    • TIMER
    • RTC
    • WDG
  • 网络协议
    • UDP
    • TCP
    • MQTT
    • HTTP
  • 高阶功能
    • IoT 阿里云IoT平台连接组件
    • audioplayer 音频播放组件

6.2、app.json 参考示例

  1. {
  2. "version": "1.0.0",
  3. "io": {
  4. "I2C0": {
  5. "type": "I2C",
  6. "port": 0,
  7. "addrWidth": 7,
  8. "freq": 400000,
  9. "mode": "master",
  10. "devAddr": 72
  11. },
  12. "ADC0": {
  13. "type": "ADC",
  14. "port": 0,
  15. "sampling": 12000000
  16. },
  17. "ADC1": {
  18. "type": "ADC",
  19. "port": 1,
  20. "sampling": 12000000
  21. },
  22. "UART1": {
  23. "type": "UART",
  24. "port": 1,
  25. "dataWidth": 8,
  26. "baudRate": 9600,
  27. "stopBits": 1,
  28. "flowControl": "cts",
  29. "parity": "none"
  30. },
  31. "UART2": {
  32. "type": "UART",
  33. "port": 2,
  34. "dataWidth": 8,
  35. "baudRate": 115200,
  36. "stopBits": 1,
  37. "flowControl": "disable",
  38. "parity": "none"
  39. },
  40. "SPI1": {
  41. "type": "SPI",
  42. "port": 1,
  43. "mode": "master",
  44. "freq": 3250000
  45. },
  46. "PWM0": {
  47. "type": "PWM",
  48. "port": 31,
  49. "mode": "master",
  50. "freq": 3250000
  51. },
  52. "PWM1": {
  53. "type": "PWM",
  54. "port": 32,
  55. "mode": "master",
  56. "freq": 3250000
  57. },
  58. "D0": {
  59. "type": "GPIO",
  60. "port": 51,
  61. "dir": "output",
  62. "pull": "pulldown"
  63. },
  64. "D1": {
  65. "type": "GPIO",
  66. "port": 52,
  67. "dir": "output",
  68. "pull": "pulldown"
  69. },
  70. "D2": {
  71. "type": "GPIO",
  72. "port": 17,
  73. "dir": "irq",
  74. "pull": "pulldown",
  75. "intMode": "both"
  76. },
  77. "D3": {
  78. "type": "GPIO",
  79. "port": 16,
  80. "dir": "irq",
  81. "pull": "pullup",
  82. "intMode": "both"
  83. },
  84. "D4": {
  85. "type": "GPIO",
  86. "port": 59,
  87. "dir": "output",
  88. "pull": "pulldown"
  89. },
  90. "D5": {
  91. "type": "GPIO",
  92. "port": 121,
  93. "dir": "output",
  94. "pull": "pulldown"
  95. },
  96. "D6": {
  97. "type": "GPIO",
  98. "port": 54,
  99. "dir": "output",
  100. "pull": "pulldown"
  101. },
  102. "D7": {
  103. "type": "GPIO",
  104. "port": 53,
  105. "dir": "output",
  106. "pull": "pulldown"
  107. },
  108. "D8": {
  109. "type": "GPIO",
  110. "port": 124,
  111. "dir": "output",
  112. "pull": "pulldown"
  113. },
  114. "D9": {
  115. "type": "GPIO",
  116. "port": 122,
  117. "dir": "output",
  118. "pull": "pulldown"
  119. },
  120. "D10": {
  121. "type": "GPIO",
  122. "port": 34,
  123. "dir": "output",
  124. "pull": "pulldown"
  125. },
  126. "D11": {
  127. "type": "GPIO",
  128. "port": 36,
  129. "dir": "output",
  130. "pull": "pulldown"
  131. },
  132. "D12": {
  133. "type": "GPIO",
  134. "port": 35,
  135. "dir": "output",
  136. "pull": "pulldown"
  137. },
  138. "D13": {
  139. "type": "GPIO",
  140. "port": 33,
  141. "dir": "output",
  142. "pull": "pulldown"
  143. },
  144. "D14": {
  145. "type": "GPIO",
  146. "port": 57,
  147. "dir": "output",
  148. "pull": "pulldown"
  149. },
  150. "D15": {
  151. "type": "GPIO",
  152. "port": 32,
  153. "dir": "output",
  154. "pull": "pulldown"
  155. },
  156. "D16": {
  157. "type": "GPIO",
  158. "port": 31,
  159. "dir": "output",
  160. "pull": "pulldown"
  161. },
  162. "D17": {
  163. "type": "GPIO",
  164. "port": 76,
  165. "dir": "output",
  166. "pull": "pulldown"
  167. }
  168. },
  169. "debugLevel": "DEBUG",
  170. "repl": "disable"
  171. }

6.3、更多示例代码

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号

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

相关文章
|
3天前
|
移动开发 前端开发 JavaScript
前端高效开发JavaScript库!
前端高效开发JavaScript库!
|
4天前
|
前端开发 测试技术
测Nuxt.js入坑,配置dev、test、pro三种环境的变量env
先下载一个cross-env模块,比较好控制环境
20 5
|
1天前
|
监控 安全 NoSQL
采用java+springboot+vue.js+uniapp开发的一整套云MES系统源码 MES制造管理系统源码
MES系统是一套具备实时管理能力,建立一个全面的、集成的、稳定的制造物流质量控制体系;对生产线、工艺、人员、品质、效率等多方位的监控、分析、改进,满足精细化、透明化、自动化、实时化、数据化、一体化管理,实现企业柔性化制造管理。
17 3
|
2天前
|
缓存 前端开发 JavaScript
React和Next.js开发常见的HTTP请求方法
React和Next.js开发常见的HTTP请求方法
6 0
|
2天前
|
移动开发 前端开发 JavaScript
Vue2 系列:vue.config.js 参数配置
Vue2 系列:vue.config.js 参数配置
11 2
|
2天前
|
JavaScript
js中如何使用工厂方式和构造函数创建对象,web开发项目实例
js中如何使用工厂方式和构造函数创建对象,web开发项目实例
|
3天前
|
设计模式 存储 前端开发
JS的几种设计模式,Web前端基础三剑客学习知识分享,前端零基础开发
JS的几种设计模式,Web前端基础三剑客学习知识分享,前端零基础开发
|
4天前
|
JSON JavaScript API
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
12 1
|
4天前
|
JSON JavaScript 中间件
使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求
9 2
|
4天前
|
存储 JSON JavaScript
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
13 0
http://www.vxiaotou.com