Skip to content

This electronic sign project uses an ESP8266 and a MAX7219 display. Text can be changed from a web interface within its network. It is insecure by design. Hack it for fun and figure out how to fix the code for 'production' use. Have fun!

License

Notifications You must be signed in to change notification settings

CitrusIntellect/hackable-sign

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 

Repository files navigation

HACKABLE SIGN

This electronic sign project uses an ESP8266 broadcasting an SSID. It allows users to connect to the network where they can interact with a web server that allows an authenticated user to change the text on a dot matrix display (MAX7219). Non-authenticated users can attempt to hack the web server to change the text.

Most of the code used to communicate to the MAX7219 dot matrix display was taken from Micro Controllers Lab https://microcontrollerslab.com/max7219-led-dot-matrix-display-esp8266-nodemcu-tutorial/.

NOTE: This project is intentionally insecure. It is meant to be hacked.

Hardware requirements

  • ESP8266
  • MAX7219 Dot Matrix Display
  • Micro USB cable
  • Computer with the Arduino IDE (or PlatformIO; however, the instructions below will use the Arduino IDE)
  • Wires

Audrino IDE requirements

Default settings:

  • SSID: hackable-sign
  • Web portal: http://192.168.4.1
  • Web portal username: admin
  • Web portal password: 31337

Variables you may want to change:

On line 52 you can find the default text. This is the text that the device will display on boot. There is no persistence when you change the text from the web interface. String text = "~~ Default I Guess ~~";

On lines 57 and 58 you'll find the web console default credentials. There is no password to connect to the sign via WiFi. The credentials are only for when you actually try to change the text. const char* http_username = "admin"; const char* http_password = "raspberry";

On line 64 you'll find the IP address of the web interface. You should be able to change it to anything you want within the 192.168.4.0/24 range but this is not very important. The important thing to know is that this will be how you access the web interface to change the text. By default you'd go to http://192.168.4.1. IPAddress local_IP(192, 168, 4, 1);

On line 43 you can change the SSID. The default is "Hackable Microcontroller Sign". const char* ssid = "Hackable Microcontroller Sign";

And lastly on line 45 you can change the network password. The default is "system76".

Connect MAX7219 to ESP8266

The following table shows how to connect the pins on the MAX7219 display to the ESP8266 using wires. If the ESP8266 has pins pre-sodered you can use the female to female wires that typically come bundled with the MAX7219.

+---------------------+
|  MAX7219 | ESP8266  |
+---------------------+
|    VCC   |   3.3V   |
|    GND   |   GND    |
|    DIN   |   D7     |
|    CS    |   D8     |
|    CLK   |   D5     |
+---------------------+

Arduino Setup

Add the ESP8266 board to the Arduino IDE (from https://github.com/esp8266/Arduino)

  • Download and install Arduino IDE 1.x or 2.x
  • Start Arduino and open the Preferences window
  • Enter https://arduino.esp8266.com/stable/package_esp8266com_index.json into the File>Preferences>Additional Boards Manager URLs field of the Arduino IDE. You can add multiple URLs, separating them with commas.
  • Open Boards Manager from Tools > Board menu and install esp8266 platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).

Install libraries

  • In Arduino IDE go to Tools>Manage Libraries (CTRL + SHFT + I)
  • You will need to install two libraries: MD_MAX72xx and MD_Parola
  • Search for MD_MAX72xx and install the library.
    • You will be asked if you want to install "ALL" dependencies. Select "Install ALL"
    • If you do not select "Install ALL" you will need to also install the library MD_Parola

About

This electronic sign project uses an ESP8266 and a MAX7219 display. Text can be changed from a web interface within its network. It is insecure by design. Hack it for fun and figure out how to fix the code for 'production' use. Have fun!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 100.0%