Coder Social home page Coder Social logo

juliendorra / ikea-led-obegraensad Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ph1p/ikea-led-obegraensad

7.0 2.0 0.0 837 KB

ESP32/Arduino hack for the ikea OBEGRÄNSAD led wall lamp

License: MIT License

JavaScript 0.44% C++ 30.03% Python 0.56% C 60.30% TypeScript 8.44% HTML 0.22%

ikea-led-obegraensad's Introduction

Check the tixy-grey branch for a fork that turns your OBEGRÄNSAD LED Wall Lamp into a tixy.land playground

IKEA OBEGRÄNSAD Hack/Mod

Turn your OBEGRÄNSAD LED Wall Lamp into a live drawing canvas

👉 This software is in an early stage and is my first of its kind. If you have anything to improve, I would be very happy about a PR or an issue :)

⚠ Use this code and instructions at your own risk! The device could be damaged! ⚠

ezgif-3-2019fca7a4

Features

  • Persist your drawing
  • Rotate image
  • Live Drawing
  • OTA Update
  • Wifi Control
  • Web-GUI
  • Load an image
  • Switch mode by pressing the button
  • Modes
    • Game of life
    • Breakout
    • Snake
    • Stars
    • Lines
    • Circle
    • Clock
    • Weather
  • Custom Animation with the "Creator"

Control the board

demo.mp4

You can control the lamp with a supplied web GUI. You can get the IP via serial output or you can search it in your router settings.

How to

First of all. This software was written for the ESP32 Dev Board, but it should work with any other Arduino board as well. You just need to remove the WiFi, OTA and web server related code.

The ESP32 I used:

Verified to work with TTGO LoRa32 V2.1 (T3_V1.6.1).

Open the lamp

I'm sorry to say this, but you'll have to pry open the back of your Lamp, as IKEA didn't install regular screws here. I lifted the back with a screwdriver between the screws and pried it open with a second object, but you can also drill out the rivets to avoid breaking the backpanel.

The panels

After you open the back, you will see 4 identical plates. These are each equipped with 64 Leds in 4 fields. We are only interested in the lowest one. Here you will find 6 connectors at the bottom edge, to which we connect our board. Above is a microcontroller. You have to remove it, because it contains the standard programs.

Clone repository and set variables

Variables can be found inside include/constants.h.

Create include/secrets.h

#pragma once

#define WIFI_SSID ""
#define WIFI_PASSWORD ""
#define WIFI_HOSTNAME ""

#define OTA_USERNAME ""
#define OTA_PASSWORD ""

#define LATITUDE ""
#define LONGITUDE ""
#define WEATHERKEY "" // https://home.openweathermap.org/api_keys

also set username and password inside upload.py, if you want to use OTA Updates.

PINS

Connect them like this and remember to set them in include/constants.h according to your board.

LCD ESP32 TTGO LoRa32 
GND GND GND
VCC 5V 5V
EN GPIO26 IO22
IN GPIO27 IO23
CLK GPIO14 IO02
CLA GPIO12 IO15
BUTTON one end GPIO16 IO21
BUTTON other end GND GND

Development

  • src contains the arduino code.

    • Run it with platform io
    • You can uncomment the OTA lines in platform.ini if you want. Replace the IP with your device IP.
  • frontend contains the web code.

    • First run npm i
    • Set your device IP inside the .env file
    • Start the server with npm run dev
    • Build it with npm run build. This command creates the webgui.cpp for you.

Ideas

[] gifs [] weather [] animation upload [] use <canvas />

Credits

Breakout game https://elektro.turanis.de/html/prj104/index.html

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.