João Santos' Two-Microcontroller Project Brings Back the Pager with a Web-Connected Twist
"Don't buy cheap unsupported development boards," Santos warns at the conclusion of a neat text-messaging project.
Mechanical engineer and web developer João Santos is bringing back the pager, after a fashion, with a custom-built web-linked Arduino-based text messaging system — combining an Espressif ESP8266 for Wi-Fi connectivity with an Arduino UNO-compatible primary microcontroller.
"The purpose of this project is to allow the user to send short text messages that will then be received on a Wi-Fi [Espressif] ESP8266 [microcontroller], and displayed on an Arduino with an LCD screen," Santos explains of the project, which was inspired by classic POCSAG-style paging systems with a modern web twist.
"The web application was developed in OutSystems, [as] not only am I very familiar with this development platform, but also because it provides a quick and free way of developing and deploying not only the main UI but also a database, backend, and a quick way to connect safely to my public IP without having to disclose it."
The web side of the application is simple enough: a landing page offers the user two fields, one for the sender's name and one for a plain-text message of up to 160 characters in length. "I added a safeguard on the backend that it only allows sending a message if none was sent for a certain amount of time," Santos adds. "I could, and probably should, have implemented some kind of captcha, but that was already going a bit out of scope for what I wanted to do."
The receiving unit is made up of two microcontroller development boards, one with a Microchip ATmega328P and the other with an Espressif ESP8266. The reason for two boards: an unfortunate experience trying to run everything from the ESP8266, housed on a clone of a WEMOS Lolin D1.
"I soon discovered this is a very different development board than the Arduino UNO," Santos explains, "and just getting the Arduino IDE compiling for it was a pain! That’s part of the reason I decided on keeping the screen connected to the Arduino Uno, the hardware was already setup, and it would be easier to keep concerns separated."
The ESP8266, then, handles network connectivity over a Wi-Fi connection, sending received messages to an Arduino UNO compatible over I2C for formatting and display on an LCD1602 character-based display. Two buttons allow messages to be scrolled, using a resistor ladder to join both a single analog input, while a buzzer sounds an alarm every time a new message arrives.
"What I learned: don't buy cheap unsupported development boards, this project would have been way easier with an Arduino [Nano] 33 IoT and a I2C LCD screen," Santos notes in the full project write up, available on Medium.