赞
踩
1. 显示端
2. 通信
3. 设备端
分类 | 项目 |
---|---|
嵌入式操作系统 | VxWorks、FreeRTOS、LiteOS、mbed |
极客硬件平台 | 树莓派、Arduino |
JavaScript IoT 开发平台 | Ruff、Tessel、JerryScript、Johnny-Five |
分类 | 项目 |
---|---|
在硬件上运行 JavaScript | JerryScript、Espruino 等 |
面向应用的硬件抽象 | Tessel、Johnny-Five、Cylon.js 等 |
提供生产支持 | Ruff |
espruino
示例:灯不断亮灭
- function toggle() {
- on = !on;
- digitalWrite(LED1, on);
- digitalWrite(LED2, !on);
- }
espruino本身不支持的硬件很难移植上去。
jerryscript(三星)
IoT.js
一段IoT.js示例
- var i2c = require('i2c');
- var wire = new i2c(0x23, {device: '/dev/i2c-1'});
-
- wire.scan(function(err, data) {
- ...
- });
名称 | 项目网站 | 开发板 | JS 引擎 | 使用领域 |
---|---|---|---|---|
Tessel | https://tessel.io/ | 自己的开发板 | Node.js | IoT、机器人 |
Jonny-Five | http://johnny-five.io/ | 适配多种开发板 | Node.js | IoT、机器人 |
Cylon.js | https://cylonjs.com/ | 适配多种开发板 | Node.js | IoT、机器人、物理计算 |
在PC上运行Nodejs引擎。
Tessel
示例:
- var tessel = require('tessel');
- var ambientlib = require('ambient-attx4');
- var WebSocket = require('ws');
-
- var ambient = ambientlib.use(tessel.port['A']);
-
- var ws = new WebSocket('ws://awesome-app.com/ambient');
- ws.on('open', function () {
- setInterval(function () {
- ambient.getSoundLevel(function(err, sdata) {
- if (err) throw err;
- sdata.pipe(ws);
- })
- }, 500);
- });
通过getSoundLevel屏蔽了底层接口。
Jonny-Five
- var five = require("johnny-five");
- var board = new five.Board();
-
- board.on("ready", function() {
- var led = new five.Led(13);
- led.blink(500);
- });
Cylon.js
- var Cylon = require("cylon");
-
- Cylon.robot({
- connections: {
- arduino: { adaptor: 'firmata', port: '/dev/ttyACM0' }
- },
-
- devices: {
- led: { driver: 'led', pin: 13 }
- },
-
- work: function(my) {
- every((1).second(), function() {
- my.led.toggle();
- });
- }
- }).start();

- 'use strict';
- $.ready(function(error){
- if(error){
- console.log(error);
- return;
- }
- $('#led-r').turnOn();
- });
- $.end(function(){
- $('#led-r').turnOff();
- });
Arduino示例
传统的:
MQTT Server、HTTP Server、CoAP Server,
基于Pub/Sub
Serverless:
应用程序明显或充分地依赖第三方应用或服务来管理服务器端逻辑和状态。
示例:
https://github.com/awslabs/lambda-refarch-iotbackend
应用框架:
Electron + WebView = 桌面应用
Cordova + WebView = 混合应用
微信小程序
PWA
React Native
硬件层
协调层
基于publish-subscribe模式。
demo代码下载
https://github.com/coolnameismy/javascript-mqtt-demo-wearingTip
先启动broker。
基于ARM的微型计算机,基于linux。
Ruff是一个JavaScript 运行时,专为硬件开发而设计。Ruff对硬件进行了抽象,使用了基于事件驱动、异步I/O的模型,使硬件开发变得轻量而高效。
Mongoose OS
具备二次开发能国的可编程设备
Linux+Python 物联网网关示例
MicroPython物联网网关
* Java OSGI+JyThon物联网网关*
都有云、端,有传感器数据采集,设备控制及通信传输等功能。
区别:
类别项 | 民用物联网 | 工业物联网 |
---|---|---|
数量 | 百万,千万级别 | 数百、数千级别 |
功能 | 单一、易用、免维护 | 设备多样,工艺逻辑复杂 |
价格 | 低廉 | 高昂 |
品质 | 民用级别 | 工业级别 |
工业物联网领域,全栈开发意味着要懂硬件开发,要懂各种传感器、要懂云开发、要懂Web开发技术、要懂手机APP开发、要懂各种通信技术和要懂数据存取,大数据时代还要求要懂数据挖掘和分析。
工控领域大都是集成项目为主,所以二次开发成为主流,技术门槛相对不高,开发平台基本以Windows平台为主。本文内容大部分都是基于微软.NET技术来实现的。
(1)创建用户驱动
根据设备的类型,对应的网关接口,新建综合采集器和输入输出智能终端对应的用户设备。
设备创建后,对应的设备变量也会自动创建。
(2)设备及变量监控
(3)创建用户策略
OnLoad在用户策略开始加载的时候执行,只执行一次。OnRun按设定的间隔,循环被YFIOs的驱动引擎调用。OnUnload是策略被卸载前执行一次。
(4)策略加载和调试
(4)QCPB云端通信策略
QCPB基于二进制格式的云端通信协议,其优点是通信数据量小,支持数据变化上传。除了支持数据通信外,还支持设备的远程诊断、远程参数下载和远程升级等功能。支持TCP/IP以太网和GPRS双链路自动切换通信模式。
登录平台就可以开始创建云端项目了。
YFCloud的构建思想是,先有项目模板,然后再
基于项目模板创建应用。这样的好处就是,基于一个项目模板可以创建若干应用。
先添加一个项目模板,然后比较重要的一步就是导入IO配置文件,从而构建云端IO实时数据库.
基于刚刚创建的“工业物联网演示”模板创建一个项目应用。
创建一个项目应用后,系统会自动生成一个项目ID号,把这个ID号填入云端通信策略中的IO配置面板中,填入后部署到物联网智能网关即可。
打开YFIOs云端中间件-客户端程序,可以看到在“工业物联网演示”项目模板下,“工业物联网Demo”应用的运行标志已经变为绿色,表示物联网智能网关设备已经和云端连接成功。右侧的显示面板上可以看到从物联网智能网关上传到云端的各种IO数据。在该界面上,也可以对继电器变量进行操作,写入0或1,可以看到物联网智能终端上对应的继电器闭合或开启。
组态画面比较简单,两个指示灯分别对应智能终端的I1、I2,一个切换开关对应Q2,四个文本框分别对应T1、T2、T3和H。IO变量导入后,相关的图元分别绑定上对应的变量
导出的bg.png、Monitor.html、PublishIO.xml和YFWebSocket.js四个文件需要上传到云端对应的项目模板目录下。导出的PublishIO.xml文件需要导入云端IO列表,以设定对应的发布IO。
在Web网页上我们打开动画监控页,可以看到这个内容是和我们在YFHMI中创建的组态画面是一致的,并且其显示的数据也和真实设备的值一样(和YFIOs云端中间件的IO实时数据保持一致)。这个时候如果我们用鼠标操作开关按钮,可以看到物联网智能终端的继电器吸合或释放。
和Web网页一样,我们可以看到对应的组态画面及显示的设备数据。单击开关按钮,也可以让物联网智能终端的继电器输出有对应的变化。
广西龙滩和恭城的污水监控和监测系统,分别在2014和2015年开始着手实施,最初龙滩项目没有远程监控画面,仅包含现场自动化系统,在恭城远程监控画面实现后,才又增添了远程监控功能。目前该项目已经在现场运行了两年以上。
广西龙滩垃圾处理系统在2015年开始研发实施,和污水监控系统不同的是,除了包含现场自动化控制、远程云端监控外,现场还有显示器进行现场监控。
物联网养殖监控系统是我们在2015年底和新希望六合还有微软共同合作研发的一套养殖监控系统。目前已经在山东济南、潍坊、河南新乡、武陟,河北香河等地进行了安装实施。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。