08/28/2016 at 14:06 •
There is a new version of the library available that uses a timer instead of a non-blocking delay. This has no affect on the function of the library but makes the code simpler to understand and read.
I have also been working on using pin interrupts instead of checking the pins every 5ms. There is some code in the dev branch on github but it doesn't work yet. The code gives a memory error on pin interrupts.
08/22/2016 at 18:52 •
The code of the remote uses the UDP protocol to send the number of rotations to the client. The python code of the server(send.py) should be edited so line 4 has the IP of the client and the code of the client (recv.py) should be edited so line 7 has the IP of the ESP8266 that is running the client code.
The client has a neopixel stick with 8 neopixels connected at pin 12. Here is a video of the remote dimming the neopixels:
08/19/2016 at 19:24 •
For the remote rotary encoder I use a spare board that I designed for another project. The board has the size of a normal flash drive and on board are: a ESP8266-03, a 3.3v regulator and a capacitor. And there are a few connections broken out: 2x GPIO, UART, Bootloader button and a second pair of power connections.
This board is perfect for this project because every necessary connection is available. On board is a bootloader button but I connected another button to is so I could access it without opening the case. The rotary encoder used in this project is a simple breakout from china like this one and is easy to wire up. It has 5 pins:
- CLK --- Clock
- DT --- Data
- SW --- Switch (On my module I had to solder on a 10k resistor)
- VCC --- Power
- GND --- Ground
- GPIO 12 --- CLK
- GPIO 13 --- DT
- SW --- Not connected
- VCC --- 5v
- GND --- GND