NodeJS+树莓派GPIO控制组件选型

    项目需要在NodeJS中代码控制GPIO,除了支持标准的GPIO读写之外,最好是能够支持中断,节省编写轮询代码花费的精力,性能上没有太高要求,比较看重稳定性。

    在NPM按照GPIO关键字能搜索如下结果https://npm.io/search/keyword:gpio,经过搜索引擎搜索和筛选保留如下几种函数库。NodeJS控制RPI GPIO整体上不算太小众,函数库百花齐放,个别优秀函数库逐渐凸显出来。

    rpi-gpio2:https://github.com/JamesBarwell/rpi-gpio.js

    可以支持低版本的Node,支持RPI全系列版本,支持中断。不过被对手抨击性能较为落后。纯JS实现,通过/sys操作GPIO。

    node-rpio:https://github.com/jperkin/node-rpio

    可以支持低版本的Node,支持全系RPI,支持部分全志方案,支持中断,支持硬件I2C、PWM、SPI。采用JS + C函数库的形式,通过/dev/gpiomem操作GPIO,新版本的RPI需要做额外设置(禁用中断,否则crash)。官方文档自己描述性能非常优秀。

    onoff:https://github.com/fivdi/onoff

    最低支持到node10,应该是支持全序列RPI,官方文档没有明确提及,支持中断。采用纯JS方案(从代码看),通过/sys操作GPIO。所有教程类文章引用最多的函数库,代码更新日期也比较新。

    pigpio:https://github.com/fivdi/pigpio

    把pigpio c函数库打包成为JS版本,最低支持node10,支持全系列RPI,支持GPIO、PWM。官方文档描述性能非常优秀。底层的piggio类库看起来比较强大,主打GPIO、PMW、电机驱动、可以软件模拟i2c,SPI等,支持异步调用,由于输入速度高,还可以做示波器,对外提供了队列和Socket作为接口,官方有python绑定。

由于本次选型,性能要求不高,稳定为准,因此选用onoff。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容