All Projects → ItayRosen → OpenIoT

ItayRosen / OpenIoT

Licence: GPL-3.0 license
Open source IoT platform for makers

Programming Languages

javascript
184084 projects - #8 most used programming language
PHP
23972 projects - #3 most used programming language
C++
36643 projects - #6 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to OpenIoT

nuber
Virtualization management software
Stars: ✭ 33 (+6.45%)
Mutual labels:  platform
appng
appNG is an open source, horizontally scalable application platform for developing and operating applications efficiently. It can be used to build an Application Platform as a Service (aPaaS).
Stars: ✭ 32 (+3.23%)
Mutual labels:  platform
Server
The whir.io chat server.
Stars: ✭ 15 (-51.61%)
Mutual labels:  platform
dice bag
DiceBag is a library of rake tasks for configuring web apps in the style of The Twelve-Factor App.
Stars: ✭ 19 (-38.71%)
Mutual labels:  platform
Blankly
🚀 💸 Easily build, backtest and deploy your algo in just a few lines of code. Trade stocks, cryptos, and forex across exchanges w/ one package.
Stars: ✭ 1,456 (+4596.77%)
Mutual labels:  platform
platframe
Structured, scalable and modular frontend development platform.
Stars: ✭ 38 (+22.58%)
Mutual labels:  platform
Modbus.net
A high extensible hardware communication platform using C#
Stars: ✭ 244 (+687.1%)
Mutual labels:  platform
hoffnung3000
Platform for decentralized, anonymized, self-curated festivals
Stars: ✭ 27 (-12.9%)
Mutual labels:  platform
dashcore-node
Full node with extended capabilities using Dashcore and Dash Core (dashd)
Stars: ✭ 30 (-3.23%)
Mutual labels:  platform
uclapi
An API for University College London, created for and by students!
Stars: ✭ 41 (+32.26%)
Mutual labels:  platform
climateconnect
The global climate action web platform. 🌏
Stars: ✭ 45 (+45.16%)
Mutual labels:  platform
BAINSocial
BAIN Social is a Fully Decentralized Server/client system that utilizes Concepts pioneered by I2P, ToR, and PGP to create a system which bypasses singular hosts for data while keeping that data secure.
Stars: ✭ 14 (-54.84%)
Mutual labels:  platform
kratix
Kratix is a framework for building Platform-as-a-Product
Stars: ✭ 175 (+464.52%)
Mutual labels:  platform
o2o
No description or website provided.
Stars: ✭ 21 (-32.26%)
Mutual labels:  platform
linkin
Linkin is a customizable self hosted link tree platform.
Stars: ✭ 62 (+100%)
Mutual labels:  platform
Foundation lib
Cross-platform public domain foundation library in C providing basic support data types and functions to write applications and games in a platform-independent fashion.
Stars: ✭ 249 (+703.23%)
Mutual labels:  platform
matters-web
Website of Matters.News, built with Next.js.
Stars: ✭ 70 (+125.81%)
Mutual labels:  platform
skeleton
Project template for starting your new project based on the Sulu content management system
Stars: ✭ 180 (+480.65%)
Mutual labels:  platform
hurtrade
An Open Source Forex Trading Platform
Stars: ✭ 22 (-29.03%)
Mutual labels:  platform
dashd-rpc
Dash Client Library to connect to Dash Core (dashd) via RPC
Stars: ✭ 17 (-45.16%)
Mutual labels:  platform

OpenIoT

Lightweight open source IoT platform for makers

Control your IoT devices from the cloud with OpenIoT. The platform allows you to update code over the air, set up custom notifications and access its components in real time. OpenIoT currently supports ESP8266 boards with programming using Arduino environment.

Installation

  1. You need an Arduino environment IDE with ESP8266 support. Arduino IDE and PlatformIO are recommended.
  2. Add the OpenIoT Library to Arduino IDE or PlatformIO.
  3. Register on the platform, add a new thing and follow the steps for a quick start.

Usage

OpenIoT works by attaching components (GPIO, Variables and Functions) to the platform, using the library.

Learn how to use the library in the docs. Examples can be found in the examples directory.

OTA Updates

Over the air firmware updates

Future development of the platform will include an IDE (like Arduino Create). Current OTA only allows uploading of a compiled binary file. Future development will also optimize the process and allow a ~70% flash size usage, but current process limits you to 50% flash size. It means that if your board has flash size (PROGRAM) of 4MB, then your sketch can only use 50% of it (2MB). That is because the new firmware has to be stored alongside current firmware for update. You can extract your compiled binary file quite easily with Arduino IDE and PlatformIO.

Self Hosting

You can host the platform and all communication handling on your own server. You are going to need a linux machine and a firebase account. Check out the step by step tutorial

API

OpenIoT provides support for a REST API to enable you to programmatically communicate with your Thing (reboot, read/write operations, data history, logs and more). Learn more in the API docs.

Supported Boards

As of now, only ESP8266 is supported. I do wish to add support for as many boards as possible. Any help with this task is appreciated.

  • NodeMCU - Before starting to use, make sure you're familiar with its pinout.

To Do

  • Bridge pub/sub to Firebase and control MQTT (input + output) from there for better performance.
  • Create OTA temp file to allow better usage of flash size.
  • Try the library with other ESP8266 boards (Wemos D1, Generic ESP8266 etc)
  • Github sign in

Features Roadmap

Suggestions and "voting" for certain urgancy of different features are welcome.

  • Web IDE - for OTA firmware updates
  • Mobile App
  • Github OTA - push OTA updates from Github
  • API - http api for 3rd party applications
  • Data Charts - log components data on platform and plot charts with it.
  • Wifi Manager - add support for Wifi Manager (insert wifi credentials via web server instead of hard-coding)
  • Coding Hub - create applications that can control multiple Things in one code

Contribute

All contributions and contributors are welcome. If you've ran into issues, please look if there's a similar one opened already. If not, open a new one. Contribution can also be done with future development in the form of:

  • Testing the platform environment on different OS and devices.
  • Testing the library on different devices (as long they are supported of course).
  • Adjusting the library in order to support other devices and environments.
  • Help with developing new features.
  • Report coding architacture and security issues.

Library Release History

  • 0.1.3

    • Added support for WiFiManager and external wifi management in general.
  • 0.1.2

    • Added support for self hosting
  • 0.1.1

    • Fixed digital read/write operations
  • 0.1.0

    • First release

What's New

  • 13/05 - API Support
  • 08/05 - Data charts and logs for GPIO & Variable components
  • 05/05 - WiFi Manager support added to library
  • 02/05 - Self hosting capability added
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].