IOT

Awesome IoT

Awesome Build Status

>精选的超棒物联网项目和资源清单.

受到启发 awesome 列出的东西.

Hardware

  • Arduino -Arduino是一个基于易于使用的硬件和软件的开源电子平台. 适用于进行交互式项目的任何人.
  • BeagleBoard -BeagleBoard是德州仪器与Digi-Key和Newark element14联合生产的低功耗开源硬件单板计算机.
  • Dragonboard -ArrowBoard 410c是Arrow Electronics的产品,是基于中层Qualcomm®Snapdragon™410E处理器的开发板. 它具有先进的处理能力,Wi-Fi,蓝牙连接性和GPS,所有这些功能都装在一张信用卡大小的板上.
  • ESP32 -ESP32,是ESP8266的后继产品. ESP32具有强大的硬件功能. 高速双核处理器以及众多内置外设将取代连接产品中的微控制器.
  • HummingBoard -HummingBoard是三个基于Linux和Android的开源SBC系列,它们基于1GHz Freescale i.MX6 SoC,具有类似Pi的26针I / O连接器.
  • Intel Galileo -英特尔®Galileo Gen 2开发板是基于英特尔®架构的Arduino *认证的开发和原型开发板系列中的第一个,专门为制造商,学生,教育工作者和DIY电子发烧友而设计.
  • Microduino -Microduino和mCookie为各个年龄段的制造商,设计师,工程师,学生和好奇的修补匠带来了功能强大的小型可堆叠电子硬件. 建立开源项目或创建创新的新项目.
  • Node MCU (ESP 8266) -NodeMCU是一个开源物联网平台. 它使用Lua脚本语言. 它基于eLua项目,并基于ESP8266 SDK 0.9.5构建.
  • OLinuXino -OLinuXino是一款开源软件和开源硬件低成本(EUR 30)Linux工业级单板计算机,具有GPIO,能够在-25°C至+ 85°C的温度范围内运行.
  • Odroid -ODROID表示Open + Droid. 它是用于硬件和软件的开发平台.
  • Particle -一套硬件和软件工具,可帮助您原型设计,扩展和管理物联网产品.
  • Pinoccio -Pinoccio是一种为所有yout IoT设备添加网状网络功能和WiFi-Internet访问的解决方案,并且它与Arduino兼容.
  • Raspberry Pi -Raspberry Pi是一款低成本的信用卡大小的计算机,可插入计算机显示器或电视,并使用标准的键盘和鼠标. 它具有处理台式机所需的一切功能,从浏览Internet和播放高清视频到制作电子表格,文字处理和玩游戏.
  • Tessel -Tessel是一个完全开源的,社区驱动的物联网和机器人技术开发平台. 它包括开发板,硬件模块附加组件以及在其上运行的软件.
  • UDOO -UDOO是具有集成的Arduino 2兼容微控制器的单板计算机,专为计算机科学教育,创客世界和物联网而设计.

Software

Operating systems

  • Apache Mynewt -Apache Mynewt是一个实时的模块化操作系统,适用于需要在电源,内存和存储约束下长时间运行的已连接IoT设备. 提供的第一个连接堆栈是BLE 4.2.
  • ARM mbed -ARM®mbed™物联网设备平台提供了操作系统,云服务,工具和开发人员生态系统,可大规模创建和部署基于标准的商业物联网解决方案.
  • Contiki -Contiki是用于物联网的开源操作系统. Contiki将纤巧的低成本,低功耗微控制器连接到Internet.
  • FreeRTOS -FreeRTOS是流行的嵌入式设备实时操作系统内核,已移植到35个微控制器.
  • Google Brillo -Brillo将Android平台扩展到了所有已连接的设备,因此易于安装,并且彼此之间以及与智能手机可以无缝地协同工作.
  • OpenWrt -OpenWrt是基于Linux内核的操作系统(特别是嵌入式操作系统),主要用于嵌入式设备上以路由网络流量. 主要组件是Linux内核,util-linux,uClibc或musl和BusyBox. 所有组件都经过了大小优化,以使其足够小以适合家用路由器中有限的存储和内存.
  • Snappy Ubuntu -Snappy Ubuntu Core是具有事务更新的Ubuntu的新版本. 它提供的最小服务器映像具有与当今的Ubuntu相同的库,但是通过更简单的机制提供了应用程序.
  • NodeOS -NodeOS是完全用Javascript编写的操作系统,由Linux内核之上的npm管理.
  • Raspbian -Raspbian是基于Debian的免费操作系统,针对Raspberry Pi硬件进行了优化.
  • RIOT -物联网的友好操作系统.
  • Tiny OS -TinyOS是BSD许可的开源操作系统,专为低功耗无线设备设计,例如用于传感器网络,普适计算,个人局域网,智能建筑和智能电表的设备.
  • UBOS -UBOS是Linux发行版,专注于简化运行Web应用程序的家庭服务器和独立IoT设备的系统管理. 它是Arch Linux的衍生产品,可在PC,Raspberry Pi,ESPRESSObin和云上运行.
  • Windows 10 IoT Core -Windows 10 IoT是Windows 10版本的系列产品,适用于各种智能设备,从小型工业网关到大型更复杂的设备(如销售点终端和ATM).
  • Zephyr Project -Zephyr™项目是可扩展的实时操作系统(RTOS),支持多种硬件体系结构,针对资源受限的设备进行了优化,并且在设计时考虑了安全性.

Programming languages

>本节将重新组合与嵌入式开发相关的每种出色的编程语言,无论是编译,解释还是DSL.

  • [C](https://en.wikipedia.org/wiki/C_(programming_language))-一种通用的命令式计算机编程语言,支持结构化编程,词法变量范围和递归,而静态类型系统可防止许多意外操作.
  • C++ -通用编程语言. 它具有命令性,面向对象和通用编程功能,同时还提供了用于低级内存操作的功能.
  • Groovy -Groovy是一种功能强大的,可选的类型化和动态语言,具有静态键入和静态编译功能,该Java平台旨在通过简洁,熟悉和易于学习的语法来提高开发人员的生产力. SmartThings开发环境使用它来创建智能应用程序.
  • Lua -Lua是一种功能强大,快速,轻巧,可嵌入的脚本语言. Lua是动态类型的,可通过解释基于寄存器的虚拟机的字节码来运行,并具有带有增量垃圾回收的自动内存管理功能,因此非常适合配置,脚本编写和快速原型制作.
  • eLua -eLua代表嵌入式Lua,该项目将Lua编程语言的完整实现扩展到嵌入式世界,并通过其特定功能扩展其功能,以进行高效且可移植的软件嵌入式开发.
  • ELFE -ELFE是一种非常简单的小型编程语言. 虽然它是一种通用的编程语言,但经过专门调整以方便配置和控制诸如传感器或执行器之类的小型设备.

Frameworks

  • AllJoyn -AllJoyn是一个开源软件框架,可让设备和应用轻松发现并相互通信.
  • Apple HomeKit -HomeKit是用于与用户家中的连接附件进行通信和控制的框架.
  • Astarte -Astarte是用Elixir编写的开源物联网平台. 它是一个交钥匙解决方案,囊括了将设备群连接到一组远程应用程序所需的一切. 它执行数据建模,自动数据缩减,实时事件,并为您提供现代物联网平台中可能期望的任何功能. 目前,使用提供的SDK即可立即支持Linux和ESP32设备.
  • Blynk -Blynk是一个用于为连接的事物创建iOS和Android应用程序的平台. 您只需拖放小部件(就在智能手机上),即可轻松为所有项目构建图形界面. 支持以太网,WiFi,蓝牙,GSM / GPRS,USB /串行连接以及来自Arduino,Raspberry,ARM mbed,Particle,RedBear等的各种原型平台.
  • Countly IoT Analytics - Countly is a general purpose analytics platform for mobile and IoT devices, available as open source.
  • Eclipse Smarthome -Eclipse SmartHome框架旨在在嵌入式设备上运行,例如Raspberry Pi,BeagleBone Black或Intel Edison. 它需要Java 7兼容的JVM和OSGi(4.2+)框架,例如Eclipse Equinox.
  • Freedomotic -Freedomotic是一个开源,灵活,安全的物联网(IoT)开发框架,可用于构建和管理现代智能空间. 它针对个人(家庭自动化)和商业用户(智能零售环境,环境感知营销,监控和分析等). 它使用Java编写,可以与众所周知的标准建筑自动化协议以及“自己动手”解决方案进行交互.
  • Iotivity -IoTivity是一个开源软件框架,可实现无缝的设备到设备连接,从而满足物联网的新兴需求.
  • Kura -Kura旨在为运行在服务网关中的M2M应用程序提供基于Java / OSGi的容器. Kura为M2M应用程序所需的最常见服务提供或汇总开源实现.
  • Lelylan -Lelylan是基于轻量级微服务架构的物联网云平台. Lelylan平台与硬件无关,也与平台无关. 这意味着您可以连接从ESP8266到最专业的嵌入式硬件解决方案的任何硬件,以及介于两者之间的所有内容-它可以在任何公共云,您自己的私有数据中心甚至混合环境中运行,无论是虚拟环境还是裸机环境.
  • Mihini -Mihini的主要目标是提供在Linux之上运行的嵌入式运行时,该运行时公开了用于构建M2M应用程序的高级API. Mihini的目的是通过促进对M2M系统的I / O的访问,提供通信层等,来实现简单且可移植的开发.
  • OpenHAB -openHAB运行时是在OSGi框架(Equinox)上部署的一组OSGi捆绑包. 因此,它是一个纯Java解决方案,并且需要运行JVM. 它基于OSGi,提供了高度模块化的体系结构,甚至允许在运行时添加和删除功能而无需停止服务.
  • Gobot -Gobot是用Go编程语言编写的用于机器人技术,物理计算和物联网的框架.
  • Home Assistant -Home Assistant是运行在Python 3上的家庭自动化平台.HomeAssistant的目标是能够在家中跟踪和控制所有设备,并提供用于自动化控制的平台.
  • Lightweight MQTT Machine Network -LWMQN是一个开源项目,遵循OMA LWM2M v1.0规范的一部分,并使用基于IP的智能对象模型来满足机器网络管理的最低要求. 它提供了服务器端和机器端库,从而使JavaScript和Node.js的全栈IoT开发成为可能. 另请参阅:IPSO联盟 Technical Archive.
  • Thingsboard IoT Gateway -开源物联网网关-使用OPC-UA和MQTT协议,将连接到旧式和第三方系统的设备与Thingsboard物联网平台集成在一起.
  • Pimatic -Pimatic是运行在node.js上的家庭自动化框架. 它为家庭控制和自动化任务提供了一个通用的可扩展平台.
  • IOTA -物联网的开源分布式分类帐协议. 使用有向无环图(DAG)代替区块链.
  • MyController -开源控制器. MyController.org是适用于家庭,办公室或任何地方的物联网自动化控制器.
  • Mozilla WebThings -一个开放的平台,用于通过Web监视和控制设备.

Middlewares

  • Corlysis -Corlysis是一个平台,可帮助您存储和可视化时间序列数据. 它基于SpaceX也使用的开源项目Grafana和InfluxDB.
  • IFTTT -IFTTT是一项基于网络的服务,允许用户创建简单的条件语句链,称为“食谱”,这些条件语句是基于对其他网络服务(例如Gmail,Facebook,Instagram和Pinterest)的更改而触发的. IFTTT是“ If This Then That”的缩写(发音为“ gift”,没有“ g”).
  • OPC Router -带有各种插件的物联网网关(OPC UA,Mqtt,SQL,REST,SAP,InfluxDB,打印机等)
  • Huginn -Huginn是一个用于构建代理的系统,该代理可以在线为您执行自动化任务.
  • Kaa -用于快速创建IoT解决方案的开源中间件平台.
  • Losant - Losant is an easy-to-use and powerful developer platform designed to help you quickly and securely build complex connected solutions. Losant uses open communication standards like REST and MQTT to provide connectivity from one to millions of devices. Losant provides powerful data collection, aggregation, and visualization features to help understand and quantify vast amounts of sensor data. Losant's drag-and-drop workflow editor allows you to trigger actions, notifications, and machine-to-machine communication without programming.
  • MicroServiceBus.com -MicroServiceBus.com是适用于Azure,AWS和IBM IoT中心的设备管理平台,已集成到GitHub,ServiceNow,Cisco Jasper等. 它带有免费(有限)版本以及企业产品.
  • DreamFactory -DreamFactory是针对移动,Web和IoT应用程序的免费开源REST API平台.
  • HiveMQ -企业级MQTT代理,可以扩展以连接数百万个IoT设备.
  • I1820 -I1820是一个免费的开源平台,提供基于MQTT的发现,数据收集和配置服务. I1820实现了用于控制事物的REST API,并将所有收集的数据存储在名为InfluxDB的时间序列数据库中.
  • IOStash -IOStash是一个高性能的物联网平台,对于DIY开发人员和非盈利应用程序免费. 它具有多种连接选项,可以轻松开发M2M或M2A应用程序. IOStash提供了Nodejs和Android库,可轻松创建应用程序.
  • Thingsboard -开源物联网平台. 物联网解决方案的设备管理,数据收集,处理和可视化.
  • VerneMQ -VerneMQ是一种高性能的分布式MQTT代理,可连接IoT,M2M,移动和Web应用程序. 它在商品硬件上水平和垂直扩展,以支持大量并发发布者和使用者,同时保持较低的延迟和容错能力.
  • Kuzzle -具有先进功能的开源后端,例如实时发布/订阅或地理围栏,以及支持MQTT,LoRaWAN等的多协议接口. (Website)
  • DevicePilot -已连接设备(包括永久免费层)的运营分析.
  • EMQ X -用于5G时代的IoT的可扩展且可靠的实时MQTT消息引擎.

Libraries and Tools

  • Cylon.js -Cylon.js是一个JavaScript框架,用于机器人技术,物理计算和物联网. 它使指挥机器人和设备变得异常容易.
  • Luvit -Luvit实现与Node.js相同的API,但是在Lua中! 尽管此框架不直接与IoT开发相关,但它仍然是快速构建功能强大但内存高效的嵌入式Web应用程序的“绝妙”方式.
  • Johnny-Five -Johnny-Five是原始的JavaScript Robotics编程框架. Johnny-Five由Bocoup于2012年发布,由一群热情的软件开发人员和硬件工程师共同维护.
  • Pi4J -Pi4j旨在为Java程序员提供友好的面向对象的I / O API和实现库,以访问Raspberry Pi平台的完整I / O功能.
  • WiringPi -WiringPi是用R语言编写的GPIO访问库,用于Raspberry Pi中使用的BCM2835.
  • Node-RED -用于连接物联网的可视化工具.
  • MQTT Explorer -在主题层次结构中可视化您的MQTT主题的工具,MQTT瑞士军刀.
  • ops -一个免费的开源工具,可以将Linux应用程序作为unikernels构建,运行和部署.
  • SmartObject -一个智能对象类,可帮助您在JavaScript应用程序中创建IPSO智能对象. 另请参阅:IPSO联盟 Technical Archive.

Miscellaneous

  • Amazon Dash -Amazon Dash Button是连接到Wi-Fi的设备,只需按一下按钮即可对您喜欢的商品重新排序.
  • Freeboard -实时交互式仪表板和可视化创建器,实现直观的拖放界面.
  • Nebula -专为管理IoT设备而设计的docker Orchestrator.
  • Gladys -Gladys是一个在Raspberry Pi上运行并集成到整个家庭网络系统中的开源程序.

Protocols and Networks

Physical layer

- 802.15.4 (IEEE)

IEEE 802.15.4是一个标准,为低速率无线个人区域网(LR-WPAN)指定了物理层和媒体访问控制. 它由IEEE 802.15工作组维护,该工作组在2003年对其进行了定义.它是ZigBee,ISA100.11a,WirelessHART和MiWi规范的基础,它们各自通过开发不属于上层的上层来进一步扩展了标准.在IEEE 802.15.4中定义. 或者,它可以与6LoWPAN和标准Internet协议一起使用以构建无线嵌入式Internet. -- Wikipedia

> IEEE标准802.15.4旨在提供一种无线个人局域网(WPAN)的基本底层网络层,该网络侧重于设备之间的低成本,低速无处不在的通信. 可以将它与其他方法(例如Wi-Fi)形成对比,后者可提供更多带宽并需要更多功率. 重点是在几乎没有底层基础设施的情况下,以非常低成本的方式与附近设备进行通信,目的是要利用它来进一步降低功耗.

- Bluetooth (Bluetooth Special Interest Group)

蓝牙是一种无线技术标准,用于与固定设备和移动设备进行短距离(使用ISM波段中的短波UHF无线电波,频率从2.4到2.485 GHz)进行交换,并建立个人区域网(PAN). 它是由电信供应商爱立信于1994年发明的,最初被认为是RS-232数据电缆的无线替代产品. 它可以连接多个设备,克服同步问题. -- Wikipedia

>蓝牙由蓝牙特殊利益组织(SIG)管理,该组织在电信,计算,网络和消费电子领域拥有25,000多家会员公司.

- Bluetooth Low Energy (Bluetooth Special Interest Group)

低功耗蓝牙(Bluetooth low energy,蓝牙LE,BLE,市场上称为Bluetooth Smart)是由蓝牙特殊利益集团(Bluetooth Special Interest Group)设计和销售的无线个人区域网络技术,旨在医疗,健身,信标,安全和家庭娱乐行业中的新颖应用. -- Wikipedia

>与经典蓝牙相比,蓝牙智能旨在在保持相似的通信范围的同时显着降低功耗和成本. Bluetooth SIG预测,到2018年,超过90%的支持Bluetooth的智能手机将支持Bluetooth Smart.

EC-GSM-IoT (EC-GSM-IoT Group)

扩展覆盖范围GSM IoT(EC-GSM-IoT)是基于标准的低功耗广域技术. 它基于eGPRS,设计为用于物联网通信的高容量,远距离,低能耗和低复杂度的蜂窝系统.

The EC-GSM-IOT network trials have begun, with the first commercial launches planned for 2017. Supported by all major mobile equipment, chip set and module manufacturers, EC-GSM-IoT networks will co-exist with 2G, 3G, and 4G mobile networks. It will also benefit from all the security and privacy mobile network features, such as support for user identity confidentiality, entity authentication, confidentiality, data integrity, and mobile equipment identification.

LoRaWAN广域网允许与连接对象之间的低比特率通信,从而参与了物联网,机器对机器M2M和智能城市. -- Wikipedia

>该技术已由LoRa联盟标准化. 它最初由Cycleo开发,并于2012年被Semtech收购.LoRaWAN是Long Range Wide Area Area Network的缩写.

NB-IoT (3GPP)

窄带物联网(NB-IoT)是一种低功耗广域网(LPWAN)无线电技术标准,其开发目的是使各种设备和服务可以使用蜂窝电信频段进行连接. -- Wikipedia

> NB-IoT是为物联网(IoT)设计的窄带无线电技术,并且是第三代合作伙伴计划(3GPP)标准化的一系列移动IoT(MIoT)技术之一.

Sigfox是一家法国公司,致力于建立无线网络以连接电表,智能手表和洗衣机等低能耗物品,这些物品需要持续不断地发射少量数据. 其基础设施旨在为所谓的物联网(IoT)做出贡献. -- Wikipedia

> SIGFOX将自己描述为“第一家也是唯一一家为物联网提供全球蜂窝连接的公司”. 它的基础结构“完全独立于现有网络,例如电信网络”. SIGFOX力求为“数十亿个对象和数千个新用途的部署”提供手段,其长期目标是“拥有日常对象产生的PB级数据”.

- Wi-Fi (Wi-Fi Alliance)

Wi-Fi(或WiFi)是一种局域网无线计算机联网技术,它允许电子设备联网,主要使用2.4 GHz(12 cm)UHF和5 GHz(6 cm)SHF ISM无线电频带. -- Wikipedia

> Wi-Fi联盟将Wi-Fi定义为基于电气和电子工程师协会(IEEE)802.11标准的“无线局域网”(WLAN)产品.[1] 但是,由于大多数现代WLAN都是基于这些标准,因此术语“ Wi-Fi”在通用英语中用作“ WLAN”的同义词. “ Wi-Fi”是Wi-Fi联盟的商标. “ Wi-Fi认证”商标只能用于成功完成Wi-Fi Alliance互操作性认证测试的Wi-Fi产品.

Network / Transport layer

6LoWPAN是低功耗无线个人局域网上IPv6的首字母缩写. 6LoWPAN是IETF互联网区域中一个已结束工作组的名称. -- Wikipedia

> 6LoWPAN概念起源于“即使在最小的设备上也可以并且应该应用Internet协议”的思想,并且处理能力有限的低功率设备应该能够参与物联网. 6LoWPAN组已定义了封装和报头压缩机制,这些机制允许IPv6数据包在基于IEEE 802.15.4的网络上发送和接收. IPv4和IPv6是用于局域网,城域网和诸如Internet之类的广域网进行数据传递的动力. 同样,IEEE 802.15.4设备在无线域中提供传感通信能力. 但是,这两个网络的固有性质是不同的.

- Thread (Thread Group)

线程是基于IPv6的协议,用于“智能”家用设备在网络上进行通信.

> 2014年7月,Google Inc.的Nest Labs宣布与三星,ARM Holdings,Freescale,Silicon Labs,Big Ass Fans和锁公司Yale等公司成立工作组,以期通过提供产品的Thread认证使Thread成为行业标准. 当前使用的其他协议包括ZigBee和Bluetooth Smart. Thread使用6LoWPAN,而ZigBee和其他系统也使用6LoWPAN,后者使用具有网状通信的IEEE 802.15.4无线协议. 但是,线程是IP可寻址的,具有云访问和AES加密. 它支持网络上的250多个设备.

ZigBee是基于IEEE 802.15.4的规范,用于一套高级通信协议,该协议用于使用小型低功耗数字无线电创建个人区域网络. -- Wikipedia

> ZigBee规范定义的技术旨在比其他无线个人区域网(WPAN)(例如蓝牙或Wi-Fi)更简单,更便宜. 应用包括无线电灯开关,带有室内显示器的电表,交通管理系统以及其他需要短距离低速率无线数据传输的消费和工业设备.

- Z-Wave (Z-Wave Alliance)

Z-Wave是一种无线通信规范,旨在允许家庭中的设备(例如照明,访问控制,娱乐系统和家用电器)彼此通信,以实现家庭自动化. -- Wikipedia

> Z-Wave技术将功耗降至最低,因此适用于电池供电的设备. Z-Wave旨在以高达100kbit / s的数据速率提供可靠,低延迟的小数据包传输,这与主要为高数据速率设计的Wi-Fi和其他基于IEEE 802.11的无线LAN系统不同. Z-Wave在900兆赫兹以下的千兆赫兹频率范围内工作.

Application layer

CoAP (IETF)

约束应用协议(CoAP)是一种软件协议,旨在用于非常简单的电子设备中,从而使它们可以通过Internet进行交互通信. -- Wikipedia

> CoAP特别适用于需要通过标准Internet网络进行远程控制或监督的小型低功耗传感器,开关,阀门和类似组件. CoAP是一种应用层协议,旨在用于资源受限的Internet设备(例如WSN节点)中.

DTLS (IETF)

数据报传输层安全性(DTLS)通信协议为数据报协议提供通信安全性. -- Wikipedia

> DTLS允许基于数据报的应用程序以一种[由谁?]设计的方式进行通信,以防止窃听,篡改或伪造消息. DTLS协议基于面向流的传输层安全性(TLS)协议,旨在提供类似的安全性保证.

Eddystone是Google在2015年7月发布的信标技术配置文件.开源的跨平台软件通过蓝牙低能耗信标格式为用户提供位置和邻近数据. -- Wikipedia

>尽管与Apple 2013年发布的iBeacon相似,但Eddystone可以在Android和iOS上运行,而iBeacon仅限iOS平台. 两种软件的实际应用是企业所有者可以根据其智能手机的位置实时定位潜在客户.

- HTTP (IETF)

超文本传输​​协议(HTTP)是用于分布式,协作式超媒体信息系统的应用程序协议. HTTP是万维网数据通信的基础. -- Wikipedia

> HTTP的标准开发由Internet工程任务组(IETF)和万维网联盟(W3C)协调,最终发布了一系列“征求意见书(RFC)”. HTTP / 1.1的第一个定义是常用的HTTP版本,出现在1997年的RFC 2068中,尽管在1999年的RFC 2616中已经废弃了.

- iBeacon (Apple)

iBeacon是Apple标准化的协议,已在2013年的Apple全球开发者大会上推出.- Wikipedia

> iBeacon使用蓝牙低能耗接近感测来传输由兼容的应用程序或操作系统获取的普遍唯一的标识符. 标识符可用于确定设备的实际位置,跟踪客户或触发设备上基于位置的操作,例如在社交媒体上签到或推送通知.

MQTT(以前的MQ遥测传输)是基于发布-订阅的“轻量级”消息传递协议,用于TCP / IP协议之上. 它设计用于需要“小代码占用”或网络带宽受限的远程位置的连接. -- Wikipedia

>发布-订阅消息传递模式需要消息代理. 代理负责根据消息的主题将消息分发给感兴趣的客户. Cirrus Link Solutions的Andy Stanford-Clark和Arlen Nipper于1999年编写了该协议的第一版.

PJON®(填充式抖动操作网络)是Arduino兼容的多主机,多媒体网络协议. 它提出了一个标准,将其设计为框架并实现了一个完全软件仿真的网络协议栈,可以轻松地在许多体系结构上进行交叉编译,例如ATtiny,ATmega,ESP8266,ESP32,STM32,Teensy,Raspberry Pi,Linux,Windows x86和苹果机器. 它是快速而全面地构建设备网络的有效工具. 访问Wiki和文档以了解有关PJON标准的更多信息.

> PJON被用于以下数千种设备中,其社区已遍布全球,这归因于以下六个关键因素:新技术,多媒体支持,增强的安全性,增强的可靠性,高灵活性和低成本.

- STOMP

简单(或流)文本定向消息协议(STOMP),以前称为TTMP,是一种基于文本的简单协议,旨在与面向消息的中间件(MOM)一起使用. -- Wikipedia

> STOMP提供了一种可互操作的有线格式,允许STOMP客户端与支持该协议的任何消息代理进行对话. 因此,它与语言无关,这意味着为一种编程语言或平台开发的代理可以从以另一种语言开发的客户端软件接收通信.

- Websocket

WebSocket是一种协议,可通过单个TCP连接提供全双工通信通道. -- Wikipedia

> WebSocket旨在在Web浏览器和Web服务器中实现,但可以被任何客户端或服务器应用程序使用. WebSocket协议是一个独立的基于TCP的协议. WebSocket协议使浏览器与网站之间的更多交互成为可能,从而简化了直播内容并创建了实时游戏. 通过为服务器提供一种不经客户端请求就将内容发送到浏览器的标准化方法,并允许在保持连接打开的情况下来回传递消息,来实现这一点.

- XMPP (IETF)

可扩展消息和状态协议(XMPP)是基于XML(可扩展标记语言)的面向消息的中间件的通信协议. -- Wikipedia

It enables the near-real-time exchange of structured yet extensible data between any two or more network entities. Designed to be extensible, the protocol has also been used for publish-subscribe systems, signalling for VoIP, video, file transfer, gaming, Internet of Things (IoT) applications such as the smart grid, and social networking services.

Technologies

>本节重新整理了与物联网世界密切相关的精湛技术的精选清单.

近场通信(NFC)是一组协议,这些协议使电子设备可以通过将设备触摸在一起或使它们接近通常10厘米或更短的距离来建立彼此的无线电通信. -- Wikipedia

OPC-UA不仅是用于工业自动化的协议,还是一种允许对工业环境进行语义描述和对象建模的技术. Wikipedia

Standards and Alliances

Standards

  • ETSI M2M -ETSI技术委员会正在制定机器对机器通信的标准.
  • OneM2M -oneM2M的目的和目标是制定技术规范,以解决对通用M2M服务层的需求,该层可轻松嵌入各种硬件和软件中,并依赖于将现场的众多设备与全球M2M应用服务器连接.
  • OPCUA -OPC统一体系结构(OPC UA)是由OPC基金会开发的用于互操作性的工业M2M通信协议.
  • OCF -开放连接基金会OCF,基于约束应用协议(CoAP),为涉及物联网(IoT)的设备开发标准和认证.

Alliances

  • AIOTI -物联网创新(AIOTI)旨在加强不同物联网参与者(行业,中小企业,初创企业)和行业之间的联系并建立新的关系.
  • Bluetooth Special Interest Group -蓝牙特殊利益组织(SIG)是负责监督蓝牙标准制定以及向制造商授予蓝牙技术和商标的机构.
  • IPSO Alliance -IPSO联盟通过提高意识,提供教育,促进行业,开展研究并更好地理解IP及其在物联网中的作用,为行业发展奠定了基础.
  • LoRa Alliance -LoRa联盟是一个开放的,非盈利性的成员协会,其成员相信物联网时代已经到来. 它是由行业领导者发起的,其使命是标准化在全球范围内部署的低功耗广域网(LPWAN),以支持物联网(IoT),机对机(M2M),智能城市和工业应用.
  • OPC Foundation -OPC基金会的使命是管理一个全球性组织,在该组织中,用户,供应商和联合体将合作创建数据传输标准,以实现工业自动化中的多供应商,多平台,安全可靠的互操作性. 为了支持这一使命,OPC基金会 creates and maintains specifications, ensures compliance with OPC specifications via certification testing and collaborates with industry-leading standards organizations.
  • Thread Group -线程组由Nest,三星,ARM,飞思卡尔,Silicon Labs,Big Ass Fans和Yale的成员组成,推动了线程网络协议的发展.
  • Wi-Fi Alliance -Wi-FiAlliance®是一个由多个公司组成的全球公司网络,这些公司组成了一个全球性非营利协会,其目标是通过一种新的无线网络技术(无论品牌如何)来带来最佳的用户体验.
  • Zigbee Alliance -ZigBee联盟是一个开放的非营利性协会,大约有450个成员,推动着创新,可靠和易于使用的ZigBee标准的发展.
  • Z-Wave Alliance -Z-Wave联盟成立于2005年,由全球领先的行业领导者组成,致力于Z-Wave的开发和扩展,Z-Wave是“智能”家庭和商业应用的关键支持技术.

Resources

Books

Building the Web of Things: with examples in Node.js and Raspberry Pi (2016) by Dominique Guinard and Vlad Trifa [5.0]

>一个动手指南,将教您如何使用Web技术设计和实施可扩展,灵活和开放的IoT解决方案. 本书着重于在理论,代码示例和实际示例之间提供适当的平衡,使您能够成功地将各种设备连接到Web并通过REST API公开其服务和数据. 本书涵盖了用于IoT工具箱的多种Web技术:GPIO,Raspberry Pi,嵌入式系统,REST和HTTP,WS,MQTT,CoAP,JSON-LD,社交网络,Node-RED,IFTTT等.

Abusing the Internet of Things: Blackouts, Freakouts, and Stakeouts (2015) by Nitesh Dhanjani [5.0]

>数十亿个相连的“事物”的未来包括巨大的安全隐患. 这本实用的书探讨了恶意攻击者如何滥用流行的基于IoT的设备,包括无线LED灯泡,电子门锁,婴儿监视器,智能电视和联网汽车.

Using the Web to Build the IoT (2016) *by Dominique Guinard

和弗拉德·特里法(Vlad Trifa) >使用Web来构建IoT是一本免费书籍,该书籍由六个精选章节组成,介绍了构建IoT应用层的关键技术和概念. Dom Guinard和Vlad Trifa选择了这些特定主题,以概述Web of Things体系结构以及数据摄取,搜索,安全性和可视化技术.

Building Wireless Sensor Networks: with ZigBee, XBee, Arduino, and Processing (2011) by Robert Faludi [4.5]

>准备使用ZigBee无线网络协议和Series 2 XBee无线电创建分布式传感器系统和智能交互式设备. 到快完成这份快节奏的动手指南时,您将建立一系列有用的项目,包括一个完整的ZigBee无线网络,该网络可提供遥感数据.

Designing the Internet of Things (2013) by Adrian McEwen and Hakim Cassimally [4.0]

>无论是物理计算,普适计算还是物联网,它都是技术领域的热门话题:如何引导内部的史蒂夫·乔布斯,并成功地将硬件,嵌入式软件,Web服务,电子产品和出色的设计相结合,从而创造出切合实际的-有趣,互动且实用的边缘设备. 如果您想创建下一个必备产品,那么这本独特的书将是一个理想的起点.

Getting Started with Bluetooth Low Energy: Tools and Techniques for Low-Power Networking (2014) by Kevin Townsend, Carles Cufí, Akiba and Robert Davidson [4.5]

>本书对设备如何使用Ble相互通信提供了扎实的高级概述. 您将学习用于开发和测试支持Ble的移动应用程序和嵌入式固件的有用的低成本工具,并获得使用各种开发平台(包括面向应用程序开发人员的iO和Android和面向产品设计人员和硬件工程师的嵌入式平台)的示例.

Smart Things: Ubiquitous Computing User Experience Design (2010) by Mike Kuniavsky [4.5]

> Smart Things提供了一种解决问题的方法来满足设计人员的需求,并专注于过程而不是技术细节,以防止快速过时. 它密切关注所讨论介质的功能和局限性,并讨论了在商业环境中设计的权衡和挑战.

JavaScript on Things: Hardware for Web Developers (2018 - est.) by Lyza Danger Gardner [early access book]

>物联网JavaScript是您进入令人兴奋且完全有趣的小型电子设备编程世界的第一步. 如果您知道足够的JavaScript可以一起入侵某个网站,那么您将使事情变得更加混乱,闪烁和旋转快于您所说的“ nodebot”. 这本完全图解的动手书向您展示了如何使用Arduino,Tessel和Raspberry Pi等平台.

Articles

Papers

License

CC0

在法律允许的范围内, Halim Qarroum 放弃了此作品的所有版权以及相关或邻近的权利.