Code Monkey home page Code Monkey logo

diy-wifi-ledstrip-controller's Introduction

DIY Wi-Fi LEDStrip Controller

Project status: Work in progress.

DIY Wi-Fi LED strip controller based on the ESP32 chip and MicroPython. Contains step-by-step build guide with links to parts. The controller can be controlled via raw sockets or with an android app.

Parts

Tools

  • Soldering iron
  • small pliers (or tiny hands)
  • 3d printer (optional, you can make everything except for the case.)
  • Windows or Linux PC.

Makers guide

First order all the necessary parts and make sure you have all the required tools. While waiting for the parts to arrive you can already install a version of python on your PC. Make sure you install version 3.7 or higher. After installing python you can connect your esp32 board to your PC using a micro USB cable, install esptool and flash your esp32 with the MicroPython firmware. You can find a great guide for all this over here. Make sure to hold the "Boot" button on the board while writing and erasing flash or it won't work.

The last thing we should do before we start soldering is put the attached scripts on the board. You can do this with a tool called ampy . Simply install ampy by running 'pip3 install adafruit-ampy' in your terminal. After that you can put all the scripts on your board by running: 'ampy --port YOUR_PORT put boot.py', 'ampy --port YOUR_PORT put main.py', 'ampy --port YOUR_PORT put objects.py',

After this you can disconnect your esp32 from your PC and start soldering. I tried to mark everything on the PCB as good as possible, but you can look at the pictures if it isn't clear enough. One thing you really need to look out for is that the wires of the female strip connector aren't in the correct order. You need to put the red wire in the hole that says 'R', the green one in the hole that says 'G' and the blue one in the hole that says 'B'. Another thing to note is that the shortest end of the female dc power socket should be connected to the positive end of the board

This part is for the ones that are printing the case. You can download the attached .stl files convert them to g-code and print them. Make sure you enable support material for the bottom part.

After everything is done you should check that no soldered connections are touching each other and connect your soldered PCB to power. Just to check you can scan for nearby Wi-Fi networks on your phone and you should see a network called "LedStrip Setup" if everything is alright. Now your very own controller is done and you can install the app to control the strip here. You can also control the strip by sending raw socket commands in the following format:

(1024,0,0);Fade(0.2);(0,0,0);Wait(0.2)

The string should always start with a RGB color '(r,g,b)' where the values of r, g and b must be between 0 and 1024. After a color comes a transition. The two options are 'Fade(x)' and 'Wait(x)' . A color can only be followed up by a transition and a transition can only be followed up by a color. Colors and transitions must be separated by a ';'. The string must always end with a transition.

Just to make sure that the ip of your strip controller doesn't change when the router resets, Reserve the ip addresses of the strip controller in the settings of your router. You can find the ip of your controller in The android app after you added the strip.

fully_assembled inside_case soldered_pcb1

Additional info.

What I learned:

  • Working access point networks.
  • Working with the esp32 (Had used a esp8266 before).
  • Designing a PCB.

Licensed under the MIT License

diy-wifi-ledstrip-controller's People

Contributors

ruud14 avatar

Stargazers

 avatar  avatar

Watchers

 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.