simpleiot

package module
v0.0.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 11, 2020 License: Apache-2.0 Imports: 0 Imported by: 0

README

Go

Simple IoT is collection of building blocks and best practices for building IoT systems, learned from experience building real-world systems. This project provides a portal application (typically deployed in the cloud) as well as packages for implementing an edge application to run on embedded Linux systems.

The Simple IoT project also includes open source gateway firmware and hardware designs.

Detailed documentation

Example 1 (build from source)

This example shows how to run the server and and send data to it:

  • install Go v1.13 (newer versions may work) and node/npm
  • git clone https://github.com/simpleiot/simpleiot.git
  • cd simpleiot
  • . envsetup.sh
  • siot_setup
  • siot_build
  • in one terminal, start server: ./siot
  • open http://localhost:8080
    • login with user admin@admin.com and password admin
  • in another terminal, send some data: ./siot -sendSample "1823:t1:23.5:temp"
    • the format of the -sendSample argument is: devId:sensId:value:type

Configuration

Simple IoT can be configured to connect with a number of external programs/services such as Particle.io, Twilio, and Influxdb.

Additionally, command line option help can be viewed by running siot --help.

Dashboard and Graphing

Although Simple IoT provides a rudamentary dashboard and device listing, it does not provide graphs yet. If you need graphs, using InfluxDb + Grafana may be a good interim solution. Contact if you need help setting this up -- it is relatively simple.

Features

  • edit/save device config
  • device management
  • simple dashboard for each device showing collected parameters
  • REST api for devices
  • particle.io support
  • boltdb support
  • influxdb 1.x support
  • user authentication
  • user accounts
  • group support (assign users and devices to a group so users can only see devices they own).
  • Modbus RTU pkg (both client and server)
  • Command line Modbus utlity
  • rules engine (conditions/consequences)
  • sms notifications
  • modem/network management
  • NATS.io integration (WIP)
  • file transfer API (over NATs)
  • email notifications
  • COAP API for devices
  • influxdb 2.x support
  • store timeseries data in bolthold
  • esp32 client example
  • graph timeseries data
  • efficient protocols for cellular data connections (CoAP, protobuf, etc.)
  • WiFi management
  • Graphs

Support, Pull Requests, etc.

This is a community project. See development for more thoughts on architecture, tooling, etc. Issues are labelled with "help wanted" and "good first issue" if you would like to contribute to this project.

For support or to discuss this project, please visit the Simple IoT community forum

License

Apache Version 2.0

Documentation

Overview

Package simpleiot is a collection of Go code that is useful for implementing cloud and edge applications.

See http://simpleiot.org/ for more information.

Directories

Path Synopsis
cmd
fetch command
modbus command
modbus-client command
modbus-server command
particle command
send-sms command
siot command
tof10120 command
Package data specifies data structures that are used on the wire.
Package data specifies data structures that are used on the wire.
Package respreader provides a convenient way to frame response data from devices that use prompt/response protocols such as Modbus, other RS485 protocols, and modem AT commands.
Package respreader provides a convenient way to frame response data from devices that use prompt/response protocols such as Modbus, other RS485 protocols, and modem AT commands.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL