Git Product home page Git Product logo

iotank's Introduction

ioTank

IoT (internet of things) environment monitor based on Esp8266 (NodeMCU), Arduino, Jquery, Django REST, Fritzing, the third industrial revolution, and the Hammond 1551k project box. Designed in Colorado by Object Syndicate.

Build instructions

  • Order PCB using 'Gerber' files provided.
  • Place components into the PCB as labeled and solder.
  • Flash 'update firmware' with the windows flasher via USB or Android flasher with an OTC cable.

ioTank Video

Useful for,

  • Horticulture
  • Aquaculture
  • Herpetoculture
  • Permaculture
  • Mycology / Fungiculture

What can it do for environmental monitoring?

ioTank captures real time (every 300ms) sensor readings for temperature, humidity, and light. It plots them on a graph which can be read on any HTML5/JavaScript compatible browser (so any smart phone and all modern PCs/macs). Since it is WiFi enabled it will connect to a router or a device using Internet sharing. You do need a PC/Mac/Android to set the device's WiFi SSID/password and flash firmware. Once the SSID/pass is set up it will operate autonomously and will connect to the access point and act like any other WiFi device. IoTank is designed to store it's info every 5 minutes send it to a central server for long term storage and data processing. We provide a SaaS for cloud storage, ObjectSyndicate.com. There is also an open source Django server published under the Apache 2.0 license Crop🌱Watch. You are also free to build your own using Django REST or other web languages. With Crop🌱Watch it becomes possible to interface with industrial PLC for automation.

What can it do for web developers/coders?

ioTank provides a complete user experience to bootstrap your Django IoT project (or other REST based framework). The code covers out of box registration, HTTP POST via REST token to a cloud service, and on board webserver with real-time and past plotted graphs (powered by jQuery flot). User flashed configuration using esptool and mkspiffs backends. Placing Wifi config in a serial flasher forces a bit more security as the device takes no HTTP POSTs as well as allows serial communication for a secure place to store the device UUID for registration. Flasher also allows for the enable/disable of the cloud POST option. Off the shelf parts reduces cost and allows for rapid prototyping and market exploration. Remaining in a small, USB form factor and outsourcing things like AC power control(WEMO) and network routing to other open source devices reduces regulation problems typical of bringing an appliance to market. The source code can of course be adapted to any industry or hobby, as you may add/remove and change sensors.

Monitors the following stats,

  • Internal temperature
  • Waterproof temperature probe
  • Humidity
  • Lux
  • UV Index

Can be configured with a variety of other sensors Soil Humidity, more Temp probes, RGB sensor, etc. Expanding the 1 ADC typically available to the ESP8266 to 9 with the addition of the MCP3008.

Materials required to build,

  • 1 NodeMCU v1.0 (CP2102)
  • 1 MCP3008
  • 1 GY-ML8511 (blue PCB)
  • 1 GY-49 (purple PCB)
  • 1 DHT11
  • 1 NTC 10k thermistor 3' lead.
  • 1 Hammond 1551k
  • 2 10k through-hole resistors.

Notes

The Flasher is built with SharpDevelop It uses esptool-ck, mkspiffs and putty.

The Fritzing NodeMCU PCB/SVG data is a fork, I added vias of a larger size as a quick hack since the holes are too small in production.

The PCB shape was built using Inkscape, following tutorials on the listed sites. As of this writing one should include 2.5mm holes in the route just to be safe, see the included Fritzing and Gerber files for a working production model.

The ESP8266 is a cheap chip and arduino open source. Although this gives increased availability and simplifies design the stack has limitations. Most notably the difficulty of implementing HTTPS as a server on chip. What it can do by itself is still a lot, but not enough for some users or for 100% security concerns. These can mostly be overcome with the addition of a decent router. We suggest anything which runs DD-WRT. This will allow for encrypted VPN connections and MAC address based static IP assignment of the DHCP server. I have addressed any security concern I could think of and have included or excluded many things based on what I felt was the best decision always placing security first and assuming the end user would be using a regular router, with anyone possibly on the LAN with 0 configuration beyond that. We are very open to exploit reports and any ideas from the security community on how to best improve the stack or questions on why a given decision was made(or can change). Part of our transparency process for security is to publish the firmware so it is in the public and can be scrutinized and improved upon.

Much of the code examples I used to write this are published on Github, Adafruit, Sparkfun, Fritzing and Arduino forums, but not all of it. Such as the way I decided to serve large files from the ESP8266, that came from a post on esp8266.com. It is highly encouraged to reference those sources.

Drivers

The driver for the USB to UART chip is provided by Sillabs as the NodeMCU uses the CP2102 USB to UART. The Flasher application provided here is used to configure WiFi username/password and to enable cloud service on devices flashed with the cloud enabled (prototypes we have demoed and handed out at trade shows don't have cloud enabled.)

iotank's People

Contributors

d3cline avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.