硬件
Arduino -Arduino是一个基于易于使用的硬件和软件的开源电子平台。适用于进行交互式项目的任何人。
BeagleBoard -BeagleBoard是德州仪器与Digi-Key和Newark element14联合生产的一种低功耗开源硬件单板计算机。
Dragonboard -ArrowBoard 410c是Arrow Electronics的产品,是基于中层Qualcomm®Snapdrago硬件
ESP32 -ESP32,ESP8266的后继产品。ESP32具有强大的硬件功能。高速双核处理器以及众多内置外设将取代连接产品中的微控制器。
HummingBoard -HummingBoard是三个基于Linux和Android的开源SBC系列,它们基于1GHz Freescale i.MX6 SoC,具有类似Pi的26针I / O连接器。
英特尔Galileo-英特尔®Galileo第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。它是用于硬件和软件的开发平台。
粒子-一套硬件和软件工具,可帮助您原型设计,扩展和管理物联网产品。
Pinoccio -Pinoccio是为所有you IoT设备添加网状网络功能和WiFi互联网访问的解决方案,并且它与Arduino兼容。
Raspberry Pi -Raspberry Pi是一款低成本的信用卡大小的计算机,可插入计算机显示器或电视,并使用标准的键盘和鼠标。它具有处理台式计算机所需的一切功能,从浏览Internet和播放高清视频到制作电子表格,文字处理和玩游戏。
Tessel -Tessel是一个完全开源且由社区驱动的物联网和机器人技术开发平台。它包括开发板,硬件模块附加组件以及在其上运行的软件。
UDOO -UDOO是具有集成的Arduino 2兼容微控制器的单板计算机,专为计算机科学教育,创客世界和物联网而设计。
软件
操作系统
- 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是完全用Java编写的操作系统,由Linux内核之上的npm管理。
- Raspbian -Raspbian是基于Debian的免费操作系统,针对Raspberry Pi硬件进行了优化。
- RIOT-物联网的友好操作系统。
- 微小的OS - TinyOS是一个开源的,BSD许可操作系统设计用于低功率无线设备,诸如那些在传感器网络中,无处不在的计算,个人区域网络,智能建筑,和智能仪表使用。
- UBOS -UBOS是一个Linux发行版,致力于简化运行Web应用程序的家庭服务器和独立IoT设备的系统管理。它是Arch Linux的派生产品,可在PC,Raspberry Pi,ESPRESSObin和云上运行。
- Windows 10 IoT核心版-Windows 10 IoT是Windows 10版本的系列,适用于各种智能设备,从小型工业网关到大型更复杂的设备(如销售点终端和ATM)。
- Zephyr项目-Zephyr™项目是可扩展的实时操作系统(RTOS),支持多种硬件体系结构,针对资源受限的设备进行了优化,并且在设计时考虑了安全性。
编程语言
本节将重新组合与嵌入式开发相关的各种出色编程语言,无论是编译,解释还是DSL。
- C-一种通用的命令式计算机编程语言,支持结构化编程,词法变量范围和递归,而静态类型系统可防止许多意外操作。
- C ++ -通用编程语言。它具有命令性,面向对象和通用编程功能,同时还提供了用于低级内存操作的功能。
- Groovy -Groovy是一种功能强大的,可选的类型化和动态语言,具有静态键入和静态编译功能,该Java平台旨在通过简洁,熟悉且易于学习的语法来提高开发人员的生产力。SmartThings开发环境使用它来创建智能应用程序。
- Lua -Lua是一种功能强大,快速,轻巧,可嵌入的脚本语言。Lua是动态类型的,可通过解释基于寄存器的虚拟机的字节码来运行,并具有带有增量垃圾回收的自动内存管理功能,因此非常适合配置,脚本编写和快速原型制作。
- eLua -eLua代表嵌入式Lua,该项目为嵌入式世界提供了Lua编程语言的完整实现,并通过其特定功能进行了扩展,从而实现了高效且可移植的软件嵌入式开发。
- ELFE -ELFE是一种非常简单的小型编程语言。虽然它是一种通用的编程语言,但经过专门调整以方便对诸如传感器或执行器之类的小型设备进行配置和控制。
- MicroPython-适用于微控制器和受限系统的精简高效的Python实现
- PharoThings-基于Pharo(纯的面向对象编程语言和强大的环境,专注于简单性和即时反馈)的物联网项目实时编程平台。
- TinyGo -TinyGo是一个通过创建基于LLVM的新编译器将Go编程语言引入微控制器和现代Web浏览器的项目。您可以在许多不同的微控制器板上编译和运行TinyGo程序,例如BBC micro:bit和Arduino Uno。
构架
- 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是用于移动和IoT设备的通用分析平台,可以作为开源使用。
- 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的目标是能够在家中跟踪和控制所有设备,并提供用于自动化控制的平台。
- 轻量级MQTT机器网络-LWMQN是一个开源项目,遵循OMA LWM2M v1.0规范的一部分,并使用基于IP的智能对象模型来满足机器网络管理的最低要求。它提供了服务器端和机器端库,从而使JavaScript和Node.js的全栈IoT开发成为可能。另请参阅:IPSO联盟技术档案。
- Thingsboard IoT网关-开源IoT网关-使用OPC-UA和MQTT协议将连接到旧式和第三方系统的设备与Thingsboard IoT Platform集成在一起。
- Pimatic -Pimatic是运行在node.js上的家庭自动化框架。它为家庭控制和自动化任务提供了一个通用的可扩展平台。
- IOTA-物联网的开源分布式分类帐协议。使用有向无环图(DAG)代替区块链。
- MyController-开源控制器。MyController.org是适用于家庭,办公室或任何地方的物联网自动化控制器。
- Mozilla WebThings-一个用于通过Web监视和控制设备的开放平台。
中间件
- Corlysis -Corlysis是一个平台,可以帮助您存储和可视化时间序列数据。它基于SpaceX也使用的开源项目Grafana和InfluxDB。
- IFTTT -IFTTT是一项基于Web的服务,允许用户创建简单的条件语句链,称为“食谱”,这些条件语句是基于对其他Web服务(例如Gmail,Facebook,Instagram和Pinterest)的更改而触发的。IFTTT是“ If This Then That”的缩写(发音为“ gift”,没有“ g”)。
- OPC路由器-带有各种插件的IoT网关(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是一种高性能的分布式MQTT代理,可连接IoT,M2M,移动和Web应用程序。它可以在商品硬件上水平和垂直扩展,以支持大量并发的发布者和使用者,同时保持较低的延迟和容错能力。
- Kuzzle-具有高级功能的开源后端,例如实时发布/订阅或地理围栏,以及支持MQTT,LoRaWAN等的多协议接口。(网站)
- DevicePilot-连接设备(包括永久免费层)的运行分析。
- EMQ X -5G时代中用于IoT的可扩展且可靠的实时MQTT消息引擎。
- Waterstream -MQTT经纪人利用Apache Kafka作为其自己的存储和分发引擎。
库和工具
- Cylon.js -Cylon.js是一个JavaScript框架,用于机器人技术,物理计算和物联网。它使指挥机器人和设备变得异常容易。
- Luvit -Luvit实现与Node.js相同的API,但是在Lua中!虽然这个框架是没有直接参与物联网的发展,它仍然是一个伟大的方式来快速构建功能强大,高效存储,嵌入式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模拟大型IoT环境以进行IoT应用的敏捷开发/测试/概念验证/培训
- MQTT Explorer-用于在主题层次结构中可视化您的MQTT主题的工具,MQTT瑞士军刀。
- ops-一个免费的开源工具,用于将Linux应用程序作为unikernel构建,运行和部署。
- SmartObject-一种智能对象类,可帮助您在JavaScript应用程序中创建IPSO智能对象。另请参阅:IPSO联盟技术档案。
杂
- Amazon Dash -Amazon Dash Button是连接到Wi-Fi的设备,只需按一下按钮即可对您喜欢的物品进行重新排序。
- Freeboard-实时交互式仪表板和可视化创建器,实现了直观的拖放界面。
- 星云-泊坞窗配器设计用于管理物联网设备。
- Gladys -Gladys是一个在Raspberry Pi上运行并集成到整个家庭网络系统中的开源程序。