Giter Site home page Giter Site logo

smarkant's Introduction

Smarkant - Convert your IKEA Bekant table into an IoT device

This work extends the IKEA-Hackant project from Robin Reiter, who reverse engineered the controller board of an IKEA Bekant motorized adjustable table. He added an Arduino board and four buttons to the controller, so that you can store two table positions and easily recall them.

You can find Robin's work in his GitHub repository. This Video shows his project development and the operation of the modified table.

In the Smarkant project i added an ESP-12E to the ATmega328P and communication between the ESP8266 and the ATmega328P is done through I2C (I first tried to compile the Arduino code targeting the ESP8266 platform, but since the LIN bus code directly accesses the ATmega hardware, i've canceled this approach). The ESP8266 gives us WiFi and quite some processing power to implement a REST API to control our table remotely. This REST interface could be used to implement a smartphone app or a desktop widget for controlling the table. We could also implement a web app directly on the ESP8266.

In this project the ESP8266 establishes an MQTT connection to the Amazon IoT backend and listens for changes to the Smarkant device shadow object.

This project also contains an Alexa skill and an AWS Lamda function that sends a REST message to the AWS IoT device which in turn sends a message to the table. This allows us to control the table with voice commands (one can certainly argue about whether this is more convenient than pressing a button).

The following image shows an overview of this system architecture:

alt tag

smarkant-arduino

This directory contains the firmware code for the ATmega328P microcontroller. The firmware uses the Arduino framework and was developed with the PlatformIO development environment. It uses the libraries Bounce2 and LinProcessor, which are contained in the lib sub-directory.

smarkant-esp

This directory contains the firmware code for the ESP8266 (ESP-12E) microcontroller. The firmware uses the Arduino framework and was developed with the PlatformIO development environment. It uses the libraries ArduinoJson, AWSSDK, AWSWebSockets, and Paho MQTTClient, which are contained in the lib sub-directory.

smarkant-alexa

This directory contains an Alexa skill definition (intent schema and sample utterances) and a Lambda function, written in JavaScript. The Lambda function controls the AWS IoT shadow object of the Smarkant thing.

smarkant-kicad

This directory contains KiCad schematic files for the Smarkant controller.

smarkant-case

This directory contains 123D Design and STL files of a case for the Smarkant controller.

smarkant's People

Contributors

bbbenji avatar grappendorf avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

smarkant's Issues

Use the same HW setup but fail to detect LINBUS data ...

Hi, I love your hacking and try to build an exactly same set.
I'm using ESP12F and Arduino Nano which are pretty the same HW spec as yours as I know...
Everything works fine, except LINBUS.
By using the smarkant-arduino firmware, lin_processor::readNextFrame() just keeps returning false with error code=STOP_BIT.
I'm sure digitalRead(2) continuous reporting 0/1 but lin_processor just failed to decode them.
Is there any key points I'm missing to set/check ?
Anyway to debug the LINBUS issue ?

Thanks

KiCad files

I am able to open the smarkant.pro file in Kicad on OSX; but when I try to edit the smarkant.sch file I get a pop up box that says the following libraries were not found: raspberry_pi, OSHW, grapelabs, and ESP8266. Did you install any additional libraries?

is the project dead?

The last activities are from Oct 2017.
It would be interesting to know if there is still someone behind the code, or if would be the case to fork it (and who would do it).

Up for sale?

Hi,

Would you or anyone else out there be able to sell me the modified controller with ESP attached?

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.