IoT GitHub Frame is a photo frame with built-in device based on the ESP32 module. This project will help you track the popularity of selected GitHub repository. You will be able to follow live the number of stargazers, watchers and forks. The frame can also display the number of daily stargazers. Simple configuration, automatic updates via HTTPS OTA, stability of operation. These are just some of the advantages of this project. The frame will look great on the wall in your home or office.
YT - Watch "IoT GitHub Frame" in action
- ESP-32 WROOM DevKit 1.0 – 1 pc.
- 4-digit display TM1637 0.56" - white color– 1 pc.
- 4-digit display TM1637 0.36" – 1 pc.
- 4 Pin F/F 200mm Cable – 4 pcs.
- JST 1.25 2-Pin Male - Female Connector – 2 pcs.
- Micro JST 1.25 2-Pin Male - Female Connector – 2 pcs.
- Universal PCB stripboard 50x70mm PI-01 – 1 pc.
- Carbon Film Resistor – 220 ohm – 5 pcs.
- Carbon Film Resistor – 2,2k ohm – 3 pcs.
- Breadboard Jumpers - 1 set
- Pin Header Right Angle Male – 1 pcs.
- LED Diode 5mm RGB with common anode – 1 pc.
- LED Diode 3mm white – 3 pcs.
- Round Push Button - momentary – 10mm – 2 pcs.
- ON-OFF switch – 1 pc.
- Cable USB A – USB micro – 1 pc.
- Phone charger with usb output 5V – 1 pc.
- Heat Shrink Tubing - 1 pc.
- IKEA RIBBA photo frame – 21x30cm ( it must be thick ) – 1 pc.
- Self-adhesive paper for the printer – 1 pc.
- Soldering iron
- Solder
- Drill or screwdriver
- Drills: 7, 10, 13
- Hot glue gun
- Knife
- Printer
Solder electronic components to the PCB as in the picture below. Soldering start from the lowest elements. For connecting displays and LEDs use angled connectors.
After finishing soldering, your board should look similar to this one
In the printouts folder you will find print templates that will help you drill holes:
Print them and then tape back template to the back of the frame and side template on the right edge of the frame. Use the appropriate drills to drill the holes. Cut the holes for the displays and the button with a knife.
Insert the displays and diodes in the holes using hot glue.
That's how it should look from the front
In this step you need to adapt the graphics to your repository. To do this, edit the main PSD file and then print it on a regular A4 sheet. You can use the free online editor Photopea. If you want to, you can also print a label with the description of the side buttons. The self-adhesive paper works best for this.
Now you have to program ESP32 module. Download the latest Arduino IDE and the necessary libraries. Clone repository. Connect the ESP32 via the USB cable to the computer and upload the code.
After upload firmware, unplug and plug again USB cable to your device. Status led should glow in red. After few seconds should change color to blue. It means that device is in AP mode. Using a computer or phone scan nearby networks and find GITHUB-FRAME ssid. Once you connect to the selected access point you will be automatically redirected to the configuration page. Here you enter the name and password for the network with which your frame will connect. Save credentials and reset ESP.
If everything has been done correctly, the status LED should be green and the display should show SEt
rEPO
IP
192.168.xxx.xxx
. This means that we must now select the repository. Go to computer or phone and connect to the same WiFi network as ESP. Then in browser url placeholder type ip address of your ESP. You will be redirected to the page with the configuration of the repository. In example:
For repository url: https://github.com/DivanteLtd/vue-storefront
Fill form fields and click save configuration.
That’s all :)
Now you can follow the popularity of the selected repository. Have a nice building !
- Check if your router is connected to the internet. If there is a temporary network loss, the device will automatically connect to the network after a while. You can check also your WiFi credentials and repository configuration.
- Edit the update.h file
Edit the url under which the latest version of the .bin file will be available:
const char* versionFileUrlBase
const char* binFileUrlStart
const char* binFileUrlEnd
and change version by increasing number ofFW_VERSION variable
. Then export from Arduino IDE binary file and place on your server. The last thing you have to do is update version number in IoTGithubFrame.version file to be the same asFW_VERSION
. By default, the update check is set to 00:00 and each time the frame is started.
- Red - no connection with network Green - everything works well Blue - AP mode - ssid: GITHUB-FRAME
- Just press and hold the SHOW IP button until the address appears on the display
- Just press and hold the RESET TODAY'S STARS button until the zero digit appears on the smaller display. From now until midnight you will receive the number of new stargazers.
- You have to check certificate of the Root CA. It is very possible that it has already expired. Go to this page and update key in your cacert.h file. Important! If you have an anti-virus installed, check in its settings whether the SSL protocol filtering mode is disabled. If it is enabled, you can disable it temporarily and save the key correctly. Then restore the settings of the antivirus.