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

相关文章
|
1月前
|
存储 监控 JavaScript
基于布隆过滤器的 Node.js 算法在局域网电脑桌面监控设备快速校验中的应用研究
本文探讨了布隆过滤器在局域网电脑桌面监控中的应用,分析其高效空间利用率、快速查询性能及动态扩容优势,并设计了基于MAC地址的校验模型,提供Node.js实现代码,适用于设备准入控制与重复数据过滤场景。
67 0
|
4月前
|
监控 负载均衡 JavaScript
有哪些有效的方法可以优化Node.js应用的性能?
有哪些有效的方法可以优化Node.js应用的性能?
288 69
|
4月前
|
JavaScript 前端开发
如何减少Node.js应用中的全局变量?
如何减少Node.js应用中的全局变量?
166 43
|
1月前
|
资源调度 负载均衡 JavaScript
使用PM2工具部署Vue.js应用于服务器
以上步骤完成之后,你就成功利⽤ PM⼆工具将 Vuejs 应⽰程序部署至服 务 器,并且配合反向代理实现了高效稳定访问及负载均衡功能。
77 0
|
5月前
|
前端开发 搜索推荐 JavaScript
如何通过DIY.JS快速构建出一个DIY手机壳、T恤的应用?
DIY.JS 是一款基于原生 Canvas 的业务级图形库,专注于商品定制的图形交互功能,帮助开发者轻松实现个性化设计。适用于 T 恤、手机壳等多种商品场景。它自带丰富功能,无需从零构建,快速集成到项目中。通过创建舞台、添加模型、定义 DIY 区域和添加素材四个步骤即可完成基础用法。支持在线演示体验,文档详细,易上手。
194 57
|
4月前
|
监控 算法 JavaScript
公司局域网管理视域下 Node.js 图算法的深度应用研究:拓扑结构建模与流量优化策略探析
本文探讨了图论算法在公司局域网管理中的应用,针对设备互联复杂、流量调度低效及安全监控困难等问题,提出基于图论的解决方案。通过节点与边建模局域网拓扑结构,利用DFS/BFS实现设备快速发现,Dijkstra算法优化流量路径,社区检测算法识别安全风险。结合WorkWin软件实例,展示了算法在设备管理、流量调度与安全监控中的价值,为智能化局域网管理提供了理论与实践指导。
118 3
|
5月前
|
存储 JavaScript 前端开发
|
6月前
|
JavaScript 前端开发 算法
JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
Array.sort() 是一个功能强大的方法,通过自定义的比较函数,可以处理各种复杂的排序逻辑。无论是简单的数字排序,还是多字段、嵌套对象、分组排序等高级应用,Array.sort() 都能胜任。同时,通过性能优化技巧(如映射排序)和结合其他数组方法(如 reduce),Array.sort() 可以用来实现高效的数据处理逻辑。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
6月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
10月前
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
324 62