A Smart Interactive Signage that Detects People and Displays a Scrolling Welcome Message
π IntroductionIn this project, we will build an AI-powered greeting system that detects when a person is nearby and displays a scrolling welcome message on a 16Γ2 LCD screen.
Weβll use the Seeed Studio XIAO ESP32S3 Sense, a powerful microcontroller with a built-in camera and microphone, and leverage SenseCraft AI to run a TinyML person detection model locally β no internet connection required!
This project is perfect for beginners who want to explore AI, TinyML, and IoT hardware while creating something fun and practical for offices, exhibitions, events, or even your home.
π― Features- AI-based Person Detection using a pretrained TinyML model
- Scrolling LCD Message: βWelcome to Stark Towerβ when a person is detected
- Blank Screen when no one is present
- Runs fully offline on a small board
- Beginner-friendly: No prior AI experience needed
Seeed Studio XIAO ESP32S3 Sense
16Γ2 IΒ²C LCD Display
Breadboard
Jumper Wires
USB-C Cable
πΌοΈ How It WorksSenseCraft AI Model: A pretrained person detection model runs on the XIAO ESP32S3 Sense camera module.
AI Processing: The board continuously checks for people in view.
LCD Output:
If a person is detected β Scroll βWelcome to Stark Towerβ across the screen.
- If no person is detected β Keep the screen blank.
Install Arduino IDE.
- Install Arduino IDE.
In File β Preferences β Additional Board Manager URLs, add:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
Go to Tools β Board β Board Manager, search for esp32, and install the latest version.
Select the board:Tools β Board β ESP32 β XIAO_ESP32S3.
Step 2 β Set Up SenseCraft AIWeβll use SenseCraft AI from Seeed Studio to easily run pretrained ML models.
Follow these guides:
Getting Started with XIAO ESP32S3 Sense
In summary:
Download and install the SenseCraft AI Arduino library.
From the SenseCraft AI website, download the Person Detection pretrained model.
Deploy it to your XIAO ESP32S3 Sense via the Arduino IDE or SenseCraft uploader.
Step 3 β Wire Up the LCDThe LCD weβre using communicates over IΒ²C, which means only 4 wires.
unsure of your LCDβs IΒ²C address, run an IΒ²C scanner sketch first.)
Step 4 β Install LibrariesIn Arduino IDE, install:
LiquidCrystal_I2C (by Frank de Brabander or similar)
Seeed_Arduino_SSCMA (from Seeed Studio)
Step 5 β The Code#include <Wire.h>
#include "Seeed_Arduino_SSCMA.h"
#include <LiquidCrystal_I2C.h>
SSCMA AI;
LiquidCrystal_I2C lcd(0x27, 16, 2); // Change 0x27 to your LCD I2C address
bool lastState = false;
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
lcd.clear();
if (!AI.begin()) {
Serial.println("AI Init Failed");
while (1);
}
Serial.println("AI Ready");
}
void loop() {
SSCMA_Result result;
if (AI.invoke(result)) {
bool personDetected = false;
for (int i = 0; i < result.count; i++) {
if (String(result.objects[i].name) == "person") {
personDetected = true;
break;
}
}
if (personDetected) {
if (!lastState) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Welcome to Stark Tower");
for (int pos = 0; pos < 16; pos++) {
lcd.scrollDisplayLeft();
delay(300);
}
}
} else {
if (lastState) {
lcd.clear();
}
}
lastState = personDetected;
}
}
Step 6 β Upload and TestConnect your XIAO ESP32S3 Sense via USB-C.
Select the correct port in Arduino IDE.
Click Upload.
π‘ Future plansMulti-language greetings (e.g., English in the morning, local language in the evening)
LEDs or buzzer to add audio/visual effects
Integration with Wi-Fi to log visitor counts online
Name recognition using custom-trained ML model
π₯ Demo Videoπ Why This Fits the Seeed Interactive Signage Contest
This project is:
Interactive β responds instantly to people.
AI-powered β runs TinyML locally.
Beginner-friendly β can be repliated in under 1 hour.
Scalable β can be adapted for events, shops, or homes.
- Scalable β can be adapted for events, shops, or homes.
Comments