In order to get around university internet restrictions, I origianlly set this up as 3 independent pieces which you can find here if you have similar needs. This version is reccomended as it is much simpler.
- Raspberry pi - any model should work. Zero W + GPIO header & adapters + NOOBs will be cheapest.
- Wifi dongle if the pi does not have wifi chip
- 5v Power supply - DO NOT POWER LEDs DIRECTLY FROM THE PI
- Breadboard and jumper wires (male/male and male/female)
- Level shifter (Reccomended, seems to work without it)
- WS2811 LEDs
- 3' x 4' posterboard, paint, command strips, clear tape
- String wires on posterboard and paint letters corresponding to LEDs. Use clear tape to point the LEDs to the letters. I suggest putting the input on the 'z' end if you want to put the pi below the board.
- Install raspbian on pi
- Connect pi and ws2811 LED strip to external 5v power source in parallel (see wiring below)
- Connect LED data wire to the pi GPIO 10 (actual pin number 19, I know it's confusing)
- Install rpi_ws281x library. Follow the special instructions for SPI if you're using a Pi 3.
- From the ws2811 repo, install the included python wrapper (run setup.py 'install' instead of 'build').
- Open terminal
- Enter "git clone 'https://github.com/CalebKussmaul/Stranger-Things-Integrated.git'"
- Enter "cd Stranger-Things-Integrated"
- Enter "pip2 install -r requirements.txt" (and wait...)
- edit stranger.py and adjust character mapping to LEDs as necessary
- Enter "python2 app.py"
You should now be up and running. Test it by entering a message in the terminal, or over the web by going to http://[your pi's IP address]:8080/stranger/
If you want to allow messages from the external internet, you will need to use your router to port-forward incoming traffic from your external IP to the pi's internal IP.
Note: technically the data wire takes 5v data, and the pi GPIO outputs on 3.3v. You may need to use a level shifter however it seems to work fine without it.
but you can probably get away with this: