Giter Site home page Giter Site logo

hwinther / lanot Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 38 MB

Local Area Network of Things, localized IOT framework

License: Apache License 2.0

Python 70.77% C++ 15.36% C 7.40% Visual Basic 0.34% Makefile 0.07% C# 1.56% HTML 3.66% Batchfile 0.46% Shell 0.38%

lanot's Introduction

lanot

Local Area Network Of Things

Overview

lanot is a collection of applications and application framework/framework support.

Some things have changed since this was made and it will be updated soon, just adding some pictures of the finished rev 2 PCB and prototype chassis

alt text

alt text

prometheus

src/core/prometheus micropython device framework

Supports cpython testing via micropython-mockup

Currently fully supporting the esp8266 (12E) and esp32 platforms, more might be added later.

HTML5 client can be found under test/html5ui

Proxy clients for devices are under test/html5ui

Python client proxy generator

Requirements

micropython

cpython

  • add micropython-mockup to PYTHONPATH or sys.path
  • all IO has (limited) simulated input and output
  • might look into supporting raspberry pi in the future

Example devices can be found under src/devices

  • chain-test
    • test device that chains the client proxy C(B(A))) (no pun intended)
  • cpython-local-test
    • cpython compatible test device
  • esp32-greenhouse01/02
    • esp32 device that measures humidity via 6 hygrometers (soil water via adc0-5) and a dht11
    • displays values on a i2c ssd1306 oled screen (64x128)
  • esp-rover01
    • rover (robot) wrapper for arduino h-bridge device
  • esp32-test01-03
    • development test devices, changes over time
  • esp8266-nodetest
    • development test device, should implement everything supported on the rev02b pcb
    • onewire (dht11), ds18b20, neopixel, i2c (ssd1306, ccs822, ds1307, nano ir & gpio extender)
  • esp8266-sensor01/02
    • dht & ds18b20 temperature and humidity sensors

Current hardware support

Note: pin typically means an instance of Machine.Pin
prometheus.Prometheus.Led(pin, inverted=False, state=None) - light emitting diode
Generic node example:
self.integrated_led = prometheus.Led(machine.Pin(2, machine.Pin.OUT), inverted=True)
self.register(prefix='i', integrated_led=self.integrated_led)
prometheus.Prometheus.Digital(pin, inverted=False) - digital output, similar to Led
Generic node example:
self.digital_relay = prometheus.Digital(machine.Pin(2, machine.Pin.OUT))
self.register(prefix='r', integrated_led=self.digital_relay)
prometheus.Prometheus.Adc(pin) - Analog to digital converter, wrapper for the single ADC on esp8266, and the 6 that are typically exposed on esp32
esp8266 node example:
self.adc1 = prometheus.Adc(0)
self.register(prefix='a', adc1=self.adc1)
esp32 node example:
self.hygrometer01 = prometheus.Adc(machine.Pin(36, machine.Pin.IN))
self.register(prefix='h1', hygrometer01=self.hygrometer01)
self.hygrometer01.adc.width(machine.ADC.WIDTH_12BIT)
self.hygrometer01.adc.atten(machine.ADC.ATTN_11DB)
prometheus.dht11.Dht11(pin), prometheus.dht22.Dht22(pin) - DHT11/22 temperature and humidity sensor
Generic node example:
self.dht11 = prometheus.dht11.Dht11(machine.Pin(12, machine.Pin.OUT))
self.register(prefix='d', dht11=self.dht11)
prometheus.pds18x20.Ds18x20(pin=None, ow=None) - ds18x20 onewire temperature sensor
Generic node example:
self.dsb = prometheus.pds18x20.Ds18x20(ow=self.onewire)
self.register(prefix='s', dsb=self.dsb)

Devices that will be supported soon:

  • ssd1306 oled display of various sizes (64x128 is common)
  • ccs822 air quality sensor (co2 & ppm)
  • ds1307+ real time clock
  • max7219 (led matrix, e.g. 8x32)
  • neopixel (rgb led matrix, chain, or similar)
  • nanoi2c (subproject)
  • ads1115 (4 channel adc)

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.