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是一款开源软件和开源硬件,低成本(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个微控制器上.
  • Android Things -Android Things将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 is a powerful, fast, lightweight, embeddable scripting language. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.
  • eLua -eLua代表Embedded Lua,该项目将Lua编程语言的完整实现扩展到嵌入式世界,并通过其特定功能扩展其功能,以进行高效且可移植的软件嵌入式开发.
  • ELFE -ELFE是一种非常简单的小型编程语言. 虽然它是一种通用的编程语言,但经过专门调整以方便对诸如传感器或执行器之类的小型设备进行配置和控制.
  • MicroPython -适用于微控制器和受限系统的精简高效的Python实现
  • PharoThings -基于IoT项目的实时编程平台 Pharo (纯净的面向对象编程语言和强大的环境,着重于简单性和即时反馈).
  • TinyGo -TinyGo是一个通过创建基于LLVM的新编译器将Go编程语言引入微控制器和现代Web浏览器的项目. 您可以在许多不同的微控制器板上编译并运行TinyGo程序,例如BBC micro:bit和Arduino Uno.

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 Ditto™ -Eclipse Ditto是用于构建所谓的“数字双胞胎”的框架. 它提供了基于云的表示形式和API,可与连接的物理设备进行交互. Ditto提供内置的授权,搜索和连接功能,以与MQTT代理,HTTP端点和Apache Kafka等外部系统集成.
  • Eclipse Smarthome -Eclipse SmartHome框架旨在在嵌入式设备(例如Raspberry Pi,BeagleBone Black或Intel Edison)上运行. 它需要Java 7兼容的JVM和OSGi(4.2+)框架,例如Eclipse Equinox.
  • Freedomotic - Freedomotic is an open source, flexible, secure Internet of Things (IoT) development framework, useful to build and manage modern smart spaces. It is targeted to private individuals (home automation) as well as business users (smart retail environments, ambient aware marketing, monitoring and analytics, etc). Written in Java, it can interact with well known standard building automation protocols as well as with "do it yourself" solutions.
  • 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监视和控制设备.
  • HStreamDB -为物联网数据存储和实时处理而构建的流数据库.

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是一个易于使用且功能强大的开发人员平台,旨在帮助您快速安全地构建复杂的连接解决方​​案. Losant使用诸如REST和MQTT之类的开放式通信标准来提供从一台设备到数百万台设备的连接. Losant提供强大的数据收集,汇总和可视化功能,以帮助理解和量化大量传感器数据. Losant的拖放式工作流编辑器使您无需编程即可触发动作,通知和机器对机器的通信.
  • 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是连接IoT,M2M,移动和Web应用程序的高性能,分布式MQTT代理. 它可以在商品硬件上水平和垂直扩展,以支持大量并发的发布者和使用者,同时保持较低的延迟和容错能力.
  • Kuzzle -具有高级功能的开源后端,例如实时发布/订阅或地理围栏,以及支持MQTT,LoRaWAN等的多协议接口. (Website)
  • DevicePilot -所连接设备(包括永久免费层)的运营分析.
  • EMQ X -适用于5G时代的IoT的可扩展且可靠的实时MQTT消息引擎.
  • Waterstream -MQTT经纪人利用Apache Kafka作为其自己的存储和分发引擎.
  • NanoMQ -适用于IoT Edge平台的轻巧,快速的MQTT代理.
  • Kuiper -由Golang实施的边缘轻量级IoT数据分析/流软件,可以在各种资源受限的边缘设备上运行.

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 -用于连接物联网的可视化工具.
  • MIMIC IoT Simulator -模拟大型物联网环境,以基于MQTT,CoAP,REST进行物联网应用的敏捷开发/测试/概念验证/培训
  • MQTT Explorer -在主题层次结构中可视化您的MQTT主题的工具,MQTT瑞士军刀.
  • ops -一个免费的开源工具,可将Linux应用程序作为unikernel构建,运行和部署.
  • SmartObject -智能对象类,可帮助您在JavaScript应用程序中创建IPSO智能对象. 另请参阅:IPSO联盟 Technical Archive.
  • United Manufacturing Hub -开源制造应用平台(结合了各种开源解决方案,并将它们打包在Helm图表中,例如nodered,VerneMQ和timescaleDB)

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频段中从2.4到2.485 GHz的短波UHF无线电波)交换数据,并建立个人局域网(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,被设计为用于物联网通信的高容量,远距离,低能耗和低复杂度的蜂窝系统.

> EC-GSM-IOT网络试验已经开始,计划于2017年首次商用.在所有主要移动设备,芯片组和模块制造商的支持下,EC-GSM-IoT网络将与2G,3G和4G移动网络. 它还将从所有安全和隐私移动网络功能中受益,例如对用户身份机密性,实体身份验证,机密性,数据完整性和移动设备标识的支持.

A LoRaWAN wide area network allows low bit rate communication from and to connected objects, thus participating to Internet of Things, machine-to-machine M2M, and smart city. - 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. 线程使用6LoWPAN,而ZigBee和其他系统也使用6LoWPAN,后者使用带有网状通信的IEEE 802.15.4无线协议. 但是,线程是IP可寻址的,具有云访问和AES加密. 它支持网络上的250多个设备.

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

The technology defined by the ZigBee specification is intended to be simpler and less expensive than other wireless personal area networks (WPANs), such as Bluetooth or Wi-Fi. Applications include wireless light switches, electrical meters with in-home-displays, traffic management systems, and other consumer and industrial equipment that requires short-range low-rate wireless data transfer.

- 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

>它可以在任何两个或多个网络实体之间进行近实时的结构化但可扩展的数据交换. 该协议被设计为可扩展的,也已用于发布-订阅系统,VoIP,视频,文件传输,游戏,智能电网等物联网(IoT)应用程序的信令以及社交网络服务.

Technologies

>本节重新整理了与物联网世界密切相关的超赞技术的精选列表.

近场通信(NFC)是一组协议,这些协议使电子设备可以通过将设备触摸在一起或使它们之间的距离通常不超过10cm或更短来建立彼此的无线电通信. -- 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)的设备开发标准和认证.
  • W3C WoT -W3C物联网工作组(WoT)寻求通过使用和扩展现有的标准化Web技术来应对IoT的分散化. 通过提供标准化的元数据和其他可重复使用的技术构建块,W3C WoT可以轻松地跨IoT平台和应用程序域进行集成.

Alliances

  • AIOTI -物联网创新(AIOTI)旨在加强不同物联网参与者(行业,中小企业,初创企业)和行业之间的联系并建立新的关系.
  • Bluetooth Special Interest Group -蓝牙特别利益组织(SIG)是负责监督蓝牙标准的制定以及蓝牙技术和商标向制造商的许可的机构.
  • IPSO Alliance -IPSO联盟通过提高意识,提供教育,促进行业,开展研究并更好地理解IP及其在物联网中的作用,为行业发展奠定了基础.
  • LoRa Alliance - The LoRa Alliance is an open, non-profit association of members that believes the internet of things era is now. It was initiated by industry leaders with a mission to standardize Low Power Wide Area Networks (LPWAN) being deployed around the world to enable Internet of Things (IoT), machine-to-machine (M2M), and smart city, and industrial applications.
  • OPC Foundation -OPC基金会的使命是管理一个全球性组织,在该组织中,用户,供应商和联合体将协作以创建数据传输标准,以实现工业自动化中的多供应商,多平台,安全和可靠的互操作性. 为了支持这一使命,OPC基金会 创建和维护规范,通过认证测试确保符合OPC规范,并与行业领先的标准组织合作.
  • 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)

Using the Web to Build the IoT is a free book built as a collection of six hand-picked chapters that introduce the key technologies and concepts for building the application layer of the IoT. Dom Guinard and Vlad Trifa, selected these specific topics to give you an overview of the Web of Things architecture, along with techniques for data ingestion, searching, security, and visualization.

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 放弃了此作品的所有版权以及相关或邻近的权利.