HaaS轻应用(JavaScript)快速开始 @ HaaS600 EC600S

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

> 来源 | HaaS技术社区

![image.png](https://ucc.alicdn.com/pic/developer-ecology/bc117460d2954a36b4cd5c417f5e2028.png)



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

HaaS600 Kit 套件包含以下物料:

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


1、系统环境

1.1、连接设备

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

![image.png](https://ucc.alicdn.com/pic/developer-ecology/8250a5e9a2d3423b90322a26327713f8.png)


1.2、安装USB转串口驱动


Windows XP/Vista
Windows7/8/8.1
Windows10
MacOS

安装完成之后,在设备管理器中可以看到以下虚拟串口:

Windows

![image.png](https://ucc.alicdn.com/pic/developer-ecology/5c5bff587c11421499b8ba6962c13fa1.png)


Enhanced COM Port 为日志串口
Standard COM Port 为用户串口


MacOS

![image.png](https://ucc.alicdn.com/pic/developer-ecology/885defb26e4d421fbd1d13df9ad89468.png)


Note:
1不同的电脑生成的串口号和名称不一样,以实际生成的为准。
2生成的两个串口,一个是debug串口(查看运行日志,只读),另一个是用户串口(JavaScript交互式解释器或其他用途)

1.3、开发工具

轻应用开发使用一套命令行工具来管理和推送应用脚本到设备。
下载命令行工具:

📎amp-clitool.zip


将命令行工具解压到工作目录,如图所示对应文件

  1. ├── amp             # 命令行工具

  2. ├── app             # 示例代码(hello world)

  3. │   ├── app.json

  4. │   └── app.js

  5. └── bindings.node   # 本地更新库


2、第一个轻应用示例


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

  1. ./amp.exe seriallist

  2. COM194

  3. COM195

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

命令行工具默认示例代码运行hello world程序,此处使用LED Blink来作为第一个轻应用示例来介绍。
使用下面的app.js 和 app.json文件替换命令行工具示例代码目录下的同名文件,如下:
LED Blink app.json

  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. }


LED Blink app.js:

  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);


本地更新


●打开命令行工具
●推送脚本到设备
○执行推送命令

  1. /* app是JavaScript应用脚本目录 */

  2. /* COMXX是用户串口号,此处填写Standard COM Port对应的端口号 */

  3. /* -b 115200 HaaS600串口波特率为115200 */

  4. ./amp.exe seriallist

  5. COM194

  6. COM195

  7. ./amp.exe serialput ./app COM194 -b 115200

一般情况下,应用下载串口是Silicon Labs Dual CP2105 USB to UART Bridge:Standard COM Port
○复位开发板
○等待脚本传输完成,打开日志串口观察脚本运行情况

●运行效果如图:


附录


硬件资源介绍

![image.png](https://ucc.alicdn.com/pic/developer-ecology/b0789b59e01440a3aadce8344702d996.png)


硬件资源映射表

功能/接口

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


app.json 参考示例

  1. {

  2. "io": {

  3. "I2C0": {

  4. "type": "I2C",

  5. "port": 0,

  6. "addrWidth": 7,

  7. "freq": 100000,

  8. "mode": "master",

  9. "devAddr": 118

  10.    },

  11. "ADC0": {

  12. "type": "ADC",

  13. "port": 0,

  14. "sampling": 12000000

  15.    },

  16. "ADC1": {

  17. "type": "ADC",

  18. "port": 1,

  19. "sampling": 12000000

  20.    },

  21. "UART1":{

  22. "type":"UART",

  23. "port":1,

  24. "dataWidth":8,

  25. "baudRate":115200,

  26. "stopBits":1,

  27. "flowControl":"disable",

  28. "parity":"none"

  29.    },

  30. "UART2":{

  31. "type":"UART",

  32. "port":2,

  33. "dataWidth":8,

  34. "baudRate":115200,

  35. "stopBits":1,

  36. "flowControl":"disable",

  37. "parity":"none"

  38.    },

  39. "SPI0":{

  40. "type":"SPI",

  41. "port":0,

  42. "mode":"master",

  43. "freq":3250000

  44.    },

  45. "D0": {

  46. "type": "GPIO",

  47. "port": 51,

  48. "dir": "output",

  49. "pull": "pulldown"

  50.    },

  51. "D1": {

  52. "type": "GPIO",

  53. "port": 52,

  54. "dir": "output",

  55. "pull": "pulldown"

  56.    },

  57. "D2": {

  58. "type": "GPIO",

  59. "port": 17,

  60. "dir": "output",

  61. "pull": "pulldown"

  62.    },

  63. "D3": {

  64. "type": "GPIO",

  65. "port": 16,

  66. "dir": "output",

  67. "pull": "pulldown"

  68.    },

  69. "D4": {

  70. "type": "GPIO",

  71. "port": 59,

  72. "dir": "output",

  73. "pull": "pulldown"

  74.    },

  75. "D5": {

  76. "type": "GPIO",

  77. "port": 121,

  78. "dir": "output",

  79. "pull": "pulldown"

  80.    },

  81. "D6": {

  82. "type": "GPIO",

  83. "port": 54,

  84. "dir": "output",

  85. "pull": "pulldown"

  86.    },

  87. "D7": {

  88. "type": "GPIO",

  89. "port": 53,

  90. "dir": "output",

  91. "pull": "pulldown"

  92.    },

  93. "D8": {

  94. "type": "GPIO",

  95. "port": 124,

  96. "dir": "output",

  97. "pull": "pulldown"

  98.    },

  99. "D9": {

  100. "type": "GPIO",

  101. "port": 122,

  102. "dir": "output",

  103. "pull": "pulldown"

  104.    },

  105. "D10": {

  106. "type": "GPIO",

  107. "port": 34,

  108. "dir": "output",

  109. "pull": "pulldown"

  110.    },

  111. "D11": {

  112. "type": "GPIO",

  113. "port": 36,

  114. "dir": "output",

  115. "pull": "pulldown"

  116.    },

  117. "D12": {

  118. "type": "GPIO",

  119. "port": 35,

  120. "dir": "output",

  121. "pull": "pulldown"

  122.    },

  123. "D13": {

  124. "type": "GPIO",

  125. "port": 33,

  126. "dir": "output",

  127. "pull": "pulldown"

  128.    },

  129. "D14": {

  130. "type": "GPIO",

  131. "port": 57,

  132. "dir": "output",

  133. "pull": "pulldown"

  134.    },

  135. "D15": {

  136. "type": "GPIO",

  137. "port": 0,

  138. "dir": "output",

  139. "pull": "pulldown"

  140.    },

  141. "D16": {

  142. "type": "GPIO",

  143. "port": 1,

  144. "dir": "output",

  145. "pull": "pulldown"

  146.    },

  147.  },

  148. "debugLevel": "DEBUG"

  149. }


更多示例代码

打包下载:https://gitee.com/alios-things/amp-examples/repository/archive/master.zip

开发者支持

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

![image.png](https://ucc.alicdn.com/pic/developer-ecology/bbb78fc066a3499bba143ff14847d4b0.png)

更多技术与解决方案介绍,请访问HaaS官方网站https://haas.iot.aliyun.com

相关文章
|
28天前
|
监控 安全 中间件
Next.js 实战 (十):中间件的魅力,打造更快更安全的应用
这篇文章介绍了什么是Next.js中的中间件以及其应用场景。中间件可以用于处理每个传入请求,比如实现日志记录、身份验证、重定向、CORS配置等功能。文章还提供了一个身份验证中间件的示例代码,以及如何使用限流中间件来限制同一IP地址的请求次数。中间件相当于一个构建模块,能够简化HTTP请求的预处理和后处理,提高代码的可维护性,有助于创建快速、安全和用户友好的Web体验。
|
30天前
|
缓存 NoSQL JavaScript
Vue.js应用结合Redis数据库:实践与优化
将Vue.js应用与Redis结合,可以实现高效的数据管理和快速响应的用户体验。通过合理的实践步骤和优化策略,可以充分发挥两者的优势,提高应用的性能和可靠性。希望本文能为您在实际开发中提供有价值的参考。
56 11
|
1月前
|
JavaScript 前端开发
【Vue.js】监听器功能(EventListener)的实际应用【合集】
而此次问题的核心就在于,Vue实例化的时机过早,在其所依赖的DOM结构尚未完整构建完成时就已启动挂载流程,从而导致无法找到对应的DOM元素,最终致使计算器功能出现异常,输出框错误地显示“{{current}}”,并且按钮的交互功能也完全丧失响应。为了让代码结构更为清晰,便于后续的维护与管理工作,我打算把HTML文件中标签内的JavaScript代码迁移到外部的JS文件里,随后在HTML文件中对其进行引用。
52 8
|
1月前
|
敏捷开发 人工智能 JavaScript
Figma-Low-Code:快速将Figma设计转换为Vue.js应用,支持低代码渲染、数据绑定
Figma-Low-Code 是一个开源项目,能够直接将 Figma 设计转换为 Vue.js 应用程序,减少设计师与开发者之间的交接时间,支持低代码渲染和数据绑定。
107 3
Figma-Low-Code:快速将Figma设计转换为Vue.js应用,支持低代码渲染、数据绑定
|
3月前
|
存储 缓存 监控
如何使用内存监控工具来优化 Node.js 应用的性能
需要注意的是,不同的内存监控工具可能具有不同的功能和特点,在使用时需要根据具体工具的要求和操作指南进行正确使用和分析。
91 31
|
3月前
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
76 3
|
3月前
|
JavaScript 前端开发 API
深入理解Node.js事件循环及其在后端开发中的应用
本文旨在揭示Node.js的核心特性之一——事件循环,并探讨其对后端开发实践的深远影响。通过剖析事件循环的工作原理和关键组件,我们不仅能够更好地理解Node.js的非阻塞I/O模型,还能学会如何优化我们的后端应用以提高性能和响应能力。文章将结合实例分析事件循环在处理大量并发请求时的优势,以及如何避免常见的编程陷阱,从而为读者提供从理论到实践的全面指导。
|
3月前
|
监控 JavaScript 算法
如何使用内存监控工具来定位和解决Node.js应用中的性能问题?
总之,利用内存监控工具结合代码分析和业务理解,能够逐步定位和解决 Node.js 应用中的性能问题,提高应用的运行效率和稳定性。需要耐心和细致地进行排查和优化,不断提升应用的性能表现。
224 77
|
3月前
|
前端开发 JavaScript 关系型数据库
基于 Vue2.0 + Nest.js 全栈开发的后台应用
Vue2 Admin 是一个基于 Vue2 和 Ant Design Pro 开发的前端项目,配合 Nest.js 构建的后端,提供了一个完整的全栈后台应用解决方案。该项目支持动态国际化、用户权限管理、操作日志记录等功能,适合全栈开发者学习参考。线上预览地址:https://vue2.baiwumm.com/,用户名:Admin,密码:abc123456。
|
3月前
|
JavaScript 前端开发 API
Vue.js 3:深入探索组合式API的实践与应用
Vue.js 3:深入探索组合式API的实践与应用