WRTnode 创始人 罗未
一、物联网技术现状
1. 碎片化
- 操作系统不少于50种
- 芯片、开发框架众多
2. 结果
- 碎片化造成的人员体系封闭、行业进展慢。
二、技术观念的转变
- 软件定义物联网,形成技术产业链划分,行业进一步细分。
- 快速交付
- 行业角色划分
- 统一的知识体系
- 能够使用前人完成的成果或体系
1. 大厂商
操作系统
- Zephyr
- LiteOS (华为)
- mbedOS (ARM)
脚本语言引擎
- JerryScript(三星)
开发者服务
- ARM
- mbedTM
- IoT设备平台
2. 创业公司
- 面向场景和交付的物联网ISV
- 硬件模块,如庆科、汉枫等基于通信的模块
- 开发者服务
三、 开发者要关注哪些事
物联网技术架构
1. 大前端
- JavaScript
2. 新后端
- MQTT
- OTA
3. 设备端
- 物联网芯片
MT7697,MT7688,ESP32
四、WRTnode实践
以JerryScript为基础的开发框架,移植到各个硬件平台。
有LED、紫外探测、马达等硬件。
代码写在服务端:
var gpio = require('gpio'); //gpio库,用于GPIO的相关操作
var extint = require('extint');//外部中断库 传感器输入的数字状态需要使用这个库
var pinmux = require('pinmux');//引脚复用库
var rgbled = require('rgbled');//板载 RGB灯库
var mqtt = require('mqtt')//MQTT库,实现内部MQTT的数据传输
rgbled.set(0,0,255); //上电初始化RGB灯为蓝色
var sensorpin = 6;//传感器的数字引脚
var motorpin = 30;//马达的引脚
var pin = gpio.open(sensorpin);
pin.direction('in');
var motor = gpio.open(motorpin);
motor.direction('out');
pinmux.set(sensorpin, 3);
pinmux.set(motorpin, 8);
var eintno = extint.pin2eint(sensorpin);
print('eintno: ' + eintno);
extint.init(eintno, 'both_edge', 10)
handler = extint.register(eintno, function(){
if (pin.read())
{
print('pin: ' + sensorpin + ' rising');
rgbled.set(100,0,0);
motor.write(false);
mqtt.push('status',1);
}
else
{
print('pin: ' + sensorpin + ' falling');
rgbled.set(0,100,0);
motor.write(true);
mqtt.push('status',0);
}
});
五、供应链工程
与传统软件工程的区别,是要交付硬件。