Wifi-Connected Thermal Printer, censoring everything people say.

After finding a Bixolon STP-103 Thermal Printer in a trash, adding an ESP8266 module and using node and a MQTT server, this project allows people to send their messages to the printer via this page. All the words in a message have a 50% chance of being censored.
Free speech is on the way out & anonymity doesn't existe anymore. However, people are still creating rumors, telling lies or they simply need a space to vent, express their thought or make dirty jokes without risks. This printer just prints whatever is posted on a web page, no connection informations are stored and no user account is needed. However, some words will be blacked out, randomly. What is the purpose of censorship if everything might be offensive ?
The printer should be installed in a walkway or any other space with lots of people walking by. A poster, found in the docs folder, should be printed and glued next to the printer. The roll of printouts should be left hanging, if possible over a railing to an inferior floor and should never be torn out.
-
A thermal printer : The STP-103 seems to use a serial protocol not too far from the A2 printers you can find on Adafruit.
-
ESP8266 module : I used an ESP-12 on a breakout board, it should work with other modules with minimum fiddling.
-
Voltage regulation : You can find +5v and GND on the voltage regulators inside the printer. I used a LD1117v33 according to this schematic.
- Level shifter : The ESP8266 works with 3.3v, the printer with 5v. Bidirectionnal communication is not strictly necessary for this project, so I just used this circuit on the ESP8266 SoftwareSerial tx line and left the rx unconnected.
-
MQTT broker : Since I didn't want to host my own server, I opted for CloudMQTT's free plan which allows up to 10 connections. You can however use any broker you want.
-
node server : If you need to get your page hosted on a node server, I can recommend Gandi's SimpleHosting.


