awesome-iot

🤖 A curated list of awesome Internet of Things projects and resources.

GitHub

3k stars
151 watching
439 forks
last commit: 10 months ago
Linked from 12 awesome lists

awesomeawesome-listembedded-systemshacktoberfesthardwareinternet-of-thingsiot

Awesome IoT / Table of Contents / Hardware

Arduino Arduino is an open-source electronics platform based on easy-to-use hardware and software. It's intended for anyone making interactive projects
BeagleBoard The BeagleBoard is a low-power open-source hardware single-board computer produced by Texas Instruments in association with Digi-Key and Newark element14
Dragonboard The DragonBoard 410c, a product of Arrow Electronics, is the development board based on the mid-tier Qualcomm® Snapdragon™ 410E processor. It features advanced processing power, Wi-Fi, Bluetooth connectivity, and GPS, all packed into a board the size of a credit card
ESP32 ESP32, the successor to the ESP8266. ESP32 is power packed with hardware features. The high speed dual core processors along with the numerous built in peripherals it is set to replace micro-controllers in connected products
HummingBoard HummingBoard is a family of three Linux- and Android-ready, open source SBCs based on 1GHz Freescale i.MX6 SoCs, with a Pi-like 26-pin I/O connector
Intel Galileo The Intel® Galileo Gen 2 board is the first in a family of Arduino*-certified development and prototyping boards based on Intel® architecture and specifically designed for makers, students, educators, and DIY electronics enthusiasts
Microduino Microduino and mCookie bring powerful, small, stackable electronic hardware to makers, designers, engineers, students and curious tinkerers of all ages. Build open-source projects or create innovative new ones
Node MCU (ESP 8266) NodeMCU is an open source IoT platform. It uses the Lua scripting language. It is based on the eLua project, and built on the ESP8266 SDK 0.9.5
OLinuXino OLinuXino is an Open Source Software and Open Source Hardware low cost (EUR 30) Linux Industrial grade single board computer with GPIOs capable of operating from -25°C to +85°C
Odroid The ODROID means Open + Droid. It is a development platform for the hardware as well as the software
Particle A suite of hardware and software tools to help you prototype, scale, and manage your Internet of Things products
Pinoccio Pinoccio is a solution to add mesh networking capability and WiFi-Internet access to all your IoT devices, and it is Arduino compatible
Raspberry Pi The Raspberry Pi is a low cost, credit-card sized computer that plugs into a computer monitor or TV, and uses a standard keyboard and mouse. It’s capable of doing everything you’d expect a desktop computer to do, from browsing the internet and playing high-definition video, to making spreadsheets, word-processing, and playing games
Tessel Tessel is a completely open source and community-driven IoT and robotics development platform. It encompasses development boards, hardware module add-ons, and the software that runs on them
UDOO UDOO is a single-board computer with an integrated Arduino 2 compatible microcontroller, designed for computer science education, the world of Makers and the Internet of Things
Raspberry Pi Pico Raspberry Pi Pico is a small, fast and versatile board that is equipped with the RP2040 microcontroller chip developed by the Raspberry Pi Foundation. It also comes with a 2.4GHz 802.11n wireless LAN variant, which makes it great for IoT
WisBlock WisBlock is a modular system that makes it easy to implement low power wide area network (LPWAN) into IoT solutions. WisBlock consists of a base board, core compute module and combination of several sensor modules

Awesome IoT / Table of Contents / Software

Apache Mynewt Apache Mynewt is a real-time, modular operating system for connected IoT devices that need to operate for long periods of time under power, memory, and storage constraints. The first connectivity stack offered is BLE 4.2
ARM mbed The ARM® mbed™ IoT Device Platform provides the operating system, cloud services, tools and developer ecosystem to make the creation and deployment of commercial, standards-based IoT solutions possible at scale
Contiki Contiki is an open source operating system for the Internet of Things. Contiki connects tiny low-cost, low-power microcontrollers to the Internet
FreeRTOS FreeRTOS is a popular real-time operating system kernel for embedded devices, that has been ported to 35 microcontrollers
Android Things Android Things extends the Android platform to all your connected devices, so they are easy to set up and work seamlessly with each other and your smartphone
OpenWrt OpenWrt is an operating system (in particular, an embedded operating system) based on the Linux kernel, primarily used on embedded devices to route network traffic. The main components are the Linux kernel, util-linux, uClibc or musl, and BusyBox. All components have been optimized for size, to be small enough for fitting into the limited storage and memory available in home routers
Snappy Ubuntu Snappy Ubuntu Core is a new rendition of Ubuntu with transactional updates. It provides a minimal server image with the same libraries as today’s Ubuntu, but applications are provided through a simpler mechanism
Mbed OS Open-source operating system for Internet of Things (IoT) Cortex-M boards: low-powered, constrained and connected. Mbed OS provides an abstraction layer for the microcontrollers it runs on, so that developers can write C/C++ applications that run on any Mbed-enabled board
NodeOS NodeOS is an operating system entirely written in Javascript, and managed by npm on top of the Linux kernel
Raspbian Raspbian is a free operating system based on Debian optimized for the Raspberry Pi hardware
RIOT The friendly Operating System for the Internet of Things
Tiny OS 1,402 about 1 year ago TinyOS is an open source, BSD-licensed operating system designed for low-power wireless devices, such as those used in sensor networks, ubiquitous computing, personal area networks, smart buildings, and smart meters
Toit The Toit platform combines the functionality of serving your devices in a robust, resilient way, and letting you have control over your devices and your data, as well as ready-to-use over-the-air firmware and application updates on your network-connected embedded devices
UBOS UBOS is a Linux distro that focuses on making systems administration of home servers and Indie IoT devices running web applications much simpler. A derivative of Arch Linux, it runs on PCs, Raspberry Pis, ESPRESSObin, and cloud
Windows 10 IoT Core Windows 10 IoT is a family of Windows 10 editions targeted toward a wide range of intelligent devices, from small industrial gateways to larger more complex devices like point of sales terminals and ATMs
Zephyr Project The Zephyr™ Project is a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with security in mind
C A general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations
C++ A general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation
Groovy Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at multiplying developers’ productivity thanks to a concise, familiar and easy to learn syntax. It is used by the SmartThings development environment to create smart applications
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 stands for Embedded Lua and the project offers the full implementation of the Lua Programming Language to the embedded world, extending it with specific features for efficient and portable software embedded development
ELFE ELFE is a very simple and small programming language. While it is a general-purpose programming language, it is specifically tuned to facilitate the configuration and control of swarms of small devices such as sensors or actuators
MicroPython a lean and efficient Python implementation for microcontrollers and constrained systems
PikaPython 1,472 20 days ago Python runs with only 4KB of RAM, zero dependencies, easy to bind with C
PharoThings 89 almost 4 years ago Live programming platform for IoT projects based on (a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback)
Rust Rust is a language focused on performance, reliability and productivity. It is known for its safety, it is memory safe, it uses a borrow checker, and concurrency is also safe
TinyGo TinyGo is a project to bring the Go programming language to microcontrollers and modern web browsers by creating a new compiler based on LLVM. You can compile and run TinyGo programs on many different microcontroller boards such as the BBC micro:bit and the Arduino Uno
Toitlang is a high-level language that’s made to have a syntax very close to Python. As it’s built from first principles for microcontrollers, it’s at least 20x faster than MicroPython. They’ve also built a slick IDE integration
AllJoyn AllJoyn is an open source software framework that makes it easy for devices and apps to discover and communicate with each other
Apple HomeKit HomeKit is a framework for communicating with and controlling connected accessories in a user’s home
AREG SDK 272 1 day ago AREG SDK is an interface-centric real-time asynchronous communication engine to enable distributed- and computing, where connected Things interact and provide services, as if they act like thin distributed servers
Astarte 240 8 days ago Astarte is an Open Source IoT platform written in Elixir. It is a turnkey solution which packs in everything you need for connecting a device fleet to a set of remote applications. It performs data modeling, automated data reduction, real-time events, and provides you with any feature you might expect in a modern IoT platform. Right now, Linux and ESP32 devices are supported out of the box using the provided SDKs
Blynk Blynk is a platform for creating iOS and Android apps for connected things. You can easily build graphic interfaces for all your projects by simply dragging and dropping widgets (right on the smartphone). Supports Ethernet, WiFi, Bluetooth, GSM/GPRS, USB/Serial connections with a wide range of prototyping platforms from Arduino, Raspberry, ARM mbed, Particle, RedBear, etc
Countly IoT Analytics Countly is a general purpose analytics platform for mobile and IoT devices, available as open source
Eclipse Ditto™ Eclipse Ditto is a framework for building so called "digital twins". It provides a cloud based representation and APIs to interact with connected physical devices. Ditto provides built-in authorization, search and connectivity capabilities to integrate with foreign systems like MQTT brokers, HTTP endpoints and Apache Kafka
Eclipse Smarthome The Eclipse SmartHome framework is designed to run on embedded devices, such as a Raspberry Pi, a BeagleBone Black or an Intel Edison. It requires a Java 7 compliant JVM and an OSGi (4.2+) framework, such as 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 is an open source software framework enabling seamless device-to-device connectivity to address the emerging needs of the Internet of Things
Kura Kura aims at offering a Java/OSGi-based container for M2M applications running in service gateways. Kura provides or, when available, aggregates open source implementations for the most common services needed by M2M applications
Lelylan Lelylan is an IoT cloud platform based on a lightweight microservices architecture. The Lelylan platform is both hardware-agnostic and platform-agnostic. This means that you can connect any hardware, from the ESP8266 to the most professional embedded hardware solution and everything in between - and it can run on any public cloud, your own private datacenter, or even in a hybrid environment, whether virtualized or bare metal
Macchina.io 514 4 months ago macchina.io EDGE is a rich software framework for quickly building IoT device applications running on Linux-based devices. macchina.io EDGE implements a web-enabled, secure, modular and extensible JavaScript and C++ runtime environment and provides ready-to-use and industry proven software building blocks. These enable devices to talk to various sensors, other devices and cloud services, and to process, analyze and filter sensor data locally, at the edge device or within the local network
Mihini The main goal of Mihini is to deliver an embedded runtime running on top of Linux, that exposes high-level API for building M2M applications. Mihini aims at enabling easy and portable development, by facilitating access to the I/Os of an M2M system, providing a communication layer, etc
OpenHAB The openHAB runtime is a set of OSGi bundles deployed on an OSGi framework (Equinox). It is therefore a pure Java solution and needs a JVM to run. Being based on OSGi, it provides a highly modular architecture, which even allows adding and removing functionality during runtime without stopping the service
Gobot Gobot is a framework for robotics, physical computing, and the Internet of Things, written in the Go programming language
Home Assistant 71,776 8 days ago Home Assistant is a home automation platform running on Python 3. The goal of Home Assistant is to be able to track and control all devices at home and offer a platform for automating control
Lightweight MQTT Machine Network LWMQN is an open source project that follows part of OMA LWM2M v1.0 specification and uses the IP-base Smart Object model to meet the minimum requirements of machine network management. It provides both server-side and machine-side libraries to make full-stack IoT development possible with JavaScript and Node.js. See also: IPSO Alliance
Thingsboard IoT Gateway 1,722 9 days ago Open-source IoT Gateway - integrates devices connected to legacy and third-party systems with Thingsboard IoT Platform using OPC-UA and MQTT protocols
Pimatic Pimatic is a home automation framework that runs on node.js. It provides a common extensible platform for home control and automation tasks
IOTA Open-source distributed ledger protocol for IoT. Uses a directed acyclic graph (DAG) instead of a blockchain
MyController 147 about 2 years ago The Open Source Controller. MyController.org is an IoT automation controller for home, office or any place
Mozilla WebThings An open platform for monitoring and controlling devices over the web
HStreamDB 706 8 days ago The streaming database built for IoT data storage and real-time processing
IoTSharp.Gateways 22 almost 2 years ago Open-source IoT Gateway - integrates devices connected to legacy and third-party systems with IoTSharp IoT Platform using ModBus, OPC-UA, BACNetand MQTT protocols
Corlysis Corlysis is a platform that helps you with storing and visualizing your time-series data. It is based on the open-source projects Grafana and InfluxDB that also SpaceX uses
IFTTT IFTTT is a web-based service that allows users to create chains of simple conditional statements, called "recipes", which are triggered based on changes to other web services such as Gmail, Facebook, Instagram, and Pinterest. IFTTT is an abbreviation of "If This Then That" (pronounced like "gift" without the "g")
OPC Router IoT Gateway with various plug-ins (OPC UA, Mqtt, SQL, REST, SAP, InfluxDB, Printer, ...)
Huginn 42,890 11 days ago Huginn is a system for building agents that perform automated tasks for you online
Kaa An open-source middleware platform for rapid creation of IoT solutions
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 is a device management platform for Azure, AWS and IBM IoT Hub, with integration to GitHub, ServiceNow, Cisco Jasper and more. It comes in a free (limited) version along with enterprise offerings
DreamFactory DreamFactory is a free open source REST API Platform for mobile, web and IoT Applications
HiveMQ Enterprise ready MQTT broker that can scale to connect millions of IoT devices
I1820 I1820 is a free open source platform that provides discovery, data collection and configuration services based on MQTT. I1820 implements a REST API for controlling the things and it stores all collected data in a Time-Series database named InfluxDB
IOStash IOStash is a high performance IoT platform that is free for DIY developers and non profit applications. It has multiple connectivity options and enables easy development of M2M or M2A applications. IOStash offers Nodejs and Android libraries for easy application creation
Thingsboard An open-source IoT platform. Device management, data collection, processing and visualization for your IoT solution
Thingspeak An open-source IoT analytics platform service that allows you to aggregate, visualize, and analyze live data streams in the cloud. You can send data to ThingSpeak from your devices, create instant visualization of live data, and send alerts
VerneMQ 3,221 12 days ago VerneMQ is a high-performance, distributed MQTT broker that connects IoT, M2M, Mobile, and web applications. It scales horizontally and vertically on commodity hardware to support a high number of concurrent publishers and consumers while maintaining low latency and fault tolerance
Kuzzle 1,430 22 days ago An open-source backend with advanced features like real-time pub/sub or geofencing and a multiprotocol interface that supports MQTT, LoRaWAN and more. ( )
DevicePilot Operational analytics for connected devices (includes free-forever tier)
EMQX An ultra-scalable open-source MQTT broker. Connect 100M+ IoT devices in one single cluster, move and process real-time IoT data with 1M msg/s throughput at 1ms latency
Waterstream MQTT broker leveraging Apache Kafka as its own storage and distribution engine
NanoMQ 1,565 8 days ago A lightweight and Blazing-fast MQTT Broker for IoT Edge platform
Kuiper 1,462 11 days ago An edge lightweight IoT data analytics/streaming software implemented by Golang, and it can be run on all kinds of resource-constrained edge devices
t6 34 14 days ago Data-first IoT platform to connect physical Objects with time-series DB and perform Data Analysis
IoTSharp 1,021 12 days ago IoTSharp is an open-source IoT platform for data collection, processing, visualization, and device management
Husarnet Husarnet is a global peer-to-peer network layer that can make the MCU-Server or MCU-MCU connection directly, without the need of a bridge, over the internet
Zilla 531 5 days ago A Multi-protocol event-native edge/service proxy that supports standard protocols such as HTTP, SSE, gRPC, MQTT and the native Kafka protocol
Cylon.js Cylon.js is a JavaScript framework for robotics, physical computing, and the Internet of Things. It makes it incredibly easy to command robots and devices
Luvit Luvit implements the same APIs as Node.js, but in Lua! While this framework is not directly involved with IoT development, it is still a way to rapidly build powerful, yet memory efficient, embedded web applications
Johnny-Five Johnny-Five is the original JavaScript Robotics programming framework. Released by Bocoup in 2012, Johnny-Five is maintained by a community of passionate software developers and hardware engineers
Pi4J Pi4j is intended to provide a friendly object-oriented I/O API and implementation libraries for Java Programmers to access the full I/O capabilities of the Raspberry Pi platform
WiringPi WiringPi is a GPIO access library written in C for the BCM2835 used in the Raspberry Pi
Node-RED A visual tool for wiring the Internet of Things
MIMIC IoT Simulator Simulate large IoT environments for agile development / testing / proof-of-concept / training of IoT Applications based on MQTT, CoAP, REST
MQTT Explorer Tool to visualize your MQTT topics in a topic hierarchy, a MQTT swiss-army knife
MQTT X MQTT X is a cross-platform MQTT 5.0 client tool open sourced by EMQ, which supports macOS, Linux, and Windows
ops A free open source tool to build, run, and deploy Linux applications as unikernels
SmartObject 20 almost 5 years ago A Smart Object Class that helps you with creating IPSO Smart Objects in your JavaScript applications. See also: IPSO Alliance
United Manufacturing Hub 271 10 days ago The Open-Source Manufacturing App Platform (combines various open source solutions and packages them in a Helm chart, for example, Nodered, VerneMQ and timescaleDB)
QuestDB 14,381 4 days ago an open source time series database used for real-time analytics and high-performance applications. Supports high-throughput ingestion over InfluxDB line protocol and SQL as a query language
Chaos Genius 728 23 days ago an open source ML powered analytics engine for outlier/anomaly detection and root cause analysis. Connect with sensor data, monitor and get alerted on abnormal behavior
Explore IoT Libraries Discover & find a curated list of popular & new libraries, top authors, trending project kits, discussions, tutorials & learning resources on kandi
ThingsOn MQTT Bench 16 about 2 months ago ThingsOn MQTT Bench is a simple Cross-platform .NET Core benchmark tool for MQTT brokers. It measures the maximum number of messages that can be sent to the broker in a specified amount of time
Amazon Dash Amazon Dash Button is a Wi-Fi connected device that reorders your favorite item with the press of a button
Freeboard A real-time interactive dashboard and visualization creator implementing an intuitive drag & drop interface
Nebula A docker orchestrator designed to manage IoT devices
Gladys Gladys is an open-source program that runs on the Raspberry Pi and integrates into the entire home network system
authBroker 7 over 2 years ago A Keycloak HTTP/MQTT/CoAP IoT Brokers Adapter like Aedes
MQTT File Uploader 4 over 1 year ago MQTT File Uploader is a simple Cross-platform .NET Core application that watches local directories for changes and uploads new or modified files to an MQTT broker

Awesome IoT / Standards and Alliances / Standards

ETSI M2M The ETSI Technical Committee is developing standards for Machine to Machine Communications
OneM2M The purpose and goal of oneM2M is to develop technical specifications which address the need for a common M2M Service Layer that can be readily embedded within various hardware and software, and relied upon to connect the myriad of devices in the field with M2M application servers worldwide
OPCUA OPC Unified Architecture (OPC UA) is an industrial M2M communication protocol for interoperability developed by the OPC Foundation
OCF OCF, The Open Connectivity Foundation, develop standards and certification for devices involved in the Internet of Things (IoT) based around Constrained Application Protocol (CoAP)
W3C WoT The W3C Working Group for the Web of Things (WoT) seeks to counter the fragmentation of the IoT by using and extending existing, standardized Web technologies. By providing standardized metadata and other re-usable technological building blocks, W3C WoT enables easy integration across IoT platforms and application domains

Awesome IoT / Standards and Alliances / Alliances

AIOTI The Internet of Things Innovation (AIOTI) aims to strengthen links and build new relationships between the different IoT players (industries, SMEs, startups) and sectors
Bluetooth Special Interest Group The Bluetooth Special Interest Group (SIG) is the body that oversees the development of Bluetooth standards and the licensing of the Bluetooth technologies and trademarks to manufacturers
IPSO Alliance The IPSO Alliance provides a foundation for industry growth by fostering awareness, providing education, promoting the industry, generating research, and creating a better understanding of IP and its role in the Internet of Things
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), smart city, and industrial applications
OPC Foundation The mission of the OPC Foundation is to manage a global organization in which users, vendors and consortia collaborate to create data transfer standards for multi-vendor, multi-platform, secure and reliable interoperability in industrial automation. To support this mission, the OPC Foundation creates and maintains specifications, ensures compliance with OPC specifications via certification testing and collaborates with industry-leading standards organizations
Thread Group The Thread Group, composed of members from Nest, Samsung, ARM, Freescale, Silicon Labs, Big Ass Fans and Yale, drives the development of the Thread network protocol
Wi-Fi Alliance Wi-Fi Alliance® is a worldwide network of companies composed of several companies forming a global non-profit association with the goal of driving the best user experience with a new wireless networking technology – regardless of brand
Zigbee Alliance The ZigBee Alliance is an open, non-profit association of approximately 450 members driving development of innovative, reliable and easy-to-use ZigBee standards
Z-Wave Alliance Established in 2005, the Z-Wave Alliance is comprised of industry leaders throughout the globe that are dedicated to the development and extension of Z-Wave as the key enabling technology for 'smart' home and business applications

Awesome IoT / Resources / Articles

A Simple Explanation Of 'The Internet Of Things' (Forbes) This article attempts to give an answer to what exactly is the “Internet of things” and what impact it is going to have on us
IoT security. Is there an app for that ? The Internet of Things World conference investigates IoT application development, security, and business models
The IoT Testing Atlas A testing methodology for managing the permutations of parameters while testing an IoT based product
How to begin with the Amazon Timestream A step-by-step guide to AWS Timestream - a time series database to collect IoT data over-time

Awesome IoT / Resources / Papers

A Reference Architecture for the Internet of Things This white paper introduces a Reference Architecture for the Internet of Things (IoT): this includes the devices as well as the server-side and cloud architecture required to interact with and manage the devices
Developing solutions for the Internet of Things Intel's vision in enabling secure and seamless solutions for the Internet of Things (IoT)
Evaluation of indoor positioning based on Bluetooth Smart technology Master of Science Thesis in the Programme Computer Systems and Networks
IoT: A Vision, Architectural Elements, and Future Directions This paper presents a cloud centric vision for worldwide implementation of Internet of Things. The key enabling technologies and application domains that are likely to drive IoT research in the near future are discussed
Realizing the Potential of the Internet of Things A white paper from the Telecommunications Industry Association (TIA) written in the form of a set of recommendations to policy maker on leveraging and realizing the potential of the Internet of Things market
The Internet of Things: Evolution or Revolution ? This white paper compares the current Internet of Things market rise to other industrial revolutions, the challenges it introduces, as well as its consequences on our daily lives

Backlinks from these awesome lists: