<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: David Thomas</title>
    <description>The latest articles on Forem by David Thomas (@david_thomas).</description>
    <link>https://forem.com/david_thomas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3222098%2F98c327fa-e7ee-4c9b-a846-79d1f20fdec8.jpg</url>
      <title>Forem: David Thomas</title>
      <link>https://forem.com/david_thomas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/david_thomas"/>
    <language>en</language>
    <item>
      <title>ESP32 Into a Speech-to-Text Device</title>
      <dc:creator>David Thomas</dc:creator>
      <pubDate>Fri, 22 May 2026 10:22:57 +0000</pubDate>
      <link>https://forem.com/david_thomas/esp32-into-a-speech-to-text-device-c3m</link>
      <guid>https://forem.com/david_thomas/esp32-into-a-speech-to-text-device-c3m</guid>
      <description>&lt;p&gt;Typing commands into a serial monitor feels old once you start playing with voice interfaces.&lt;/p&gt;

&lt;p&gt;So I decided to try something more interesting — building a small &lt;a href="https://circuitdigest.com/microcontroller-projects/esp32-speech-to-text-using-ai" rel="noopener noreferrer"&gt;ESP32 Speech to Text&lt;/a&gt; system using an INMP441 I2S microphone and an OLED display. The setup listens to speech, sends audio to a cloud API, and converts spoken words into text almost instantly.&lt;/p&gt;

&lt;p&gt;And honestly, seeing your own words appear live on a tiny OLED screen feels surprisingly futuristic for such a small project.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Didn’t Use Offline Speech Recognition
&lt;/h2&gt;

&lt;p&gt;At first, I thought about running everything directly on the ESP32.&lt;br&gt;
Then reality hit.&lt;/p&gt;

&lt;p&gt;Speech recognition models are heavy. The ESP32 simply doesn’t have enough processing power or memory to run large speech-to-text models locally in a reliable way. Instead of fighting hardware limitations for days, I used a cloud-based speech recognition service called Wit.ai.&lt;/p&gt;

&lt;p&gt;The ESP32 only handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;audio capture&lt;/li&gt;
&lt;li&gt;WiFi communication&lt;/li&gt;
&lt;li&gt;displaying results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The cloud handles the difficult AI processing.&lt;/p&gt;

&lt;p&gt;Way simpler.&lt;/p&gt;




&lt;h2&gt;
  
  
  How This Project Works
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1vs4lvfko01wth48y4vk.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1vs4lvfko01wth48y4vk.webp" alt="Block Diagram of ESP32 Speech to Text" width="750" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The workflow is actually pretty clean.&lt;/p&gt;

&lt;p&gt;The INMP441 microphone captures audio using the I2S protocol. The ESP32 records the audio as 16-bit PCM data and sends it over HTTPS to Wit.ai using WiFi.&lt;/p&gt;

&lt;p&gt;Once processed, Wit.ai sends back the recognized text in JSON format.&lt;/p&gt;

&lt;p&gt;The ESP32 extracts the text and displays it on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OLED display&lt;/li&gt;
&lt;li&gt;Serial Monitor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the whole system behaves almost like a tiny voice assistant.&lt;br&gt;
Press button → speak → get text.&lt;/p&gt;




&lt;h2&gt;
  
  
  Components Used
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fflhw36jd1ztx7ln8k8ve.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fflhw36jd1ztx7ln8k8ve.webp" alt="Components Required" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The hardware setup is very small:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ESP32 development board&lt;/li&gt;
&lt;li&gt;INMP441 I2S microphone&lt;/li&gt;
&lt;li&gt;0.91-inch OLED display&lt;/li&gt;
&lt;li&gt;push button&lt;/li&gt;
&lt;li&gt;jumper wires&lt;/li&gt;
&lt;li&gt;breadboard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;No extra audio shield.&lt;br&gt;&lt;br&gt;
No Raspberry Pi.&lt;br&gt;&lt;br&gt;
No expensive AI hardware.&lt;/p&gt;




&lt;h2&gt;
  
  
  Setting Up Wit.ai Was Easier Than Expected
&lt;/h2&gt;

&lt;p&gt;I honestly expected cloud AI setup to be painful.&lt;br&gt;
But the process was surprisingly simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a Wit.ai app&lt;/li&gt;
&lt;li&gt;Copy the Service Access Token&lt;/li&gt;
&lt;li&gt;Paste token into Arduino code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Done.&lt;/p&gt;

&lt;p&gt;The ESP32 sends raw audio directly to:&lt;/p&gt;

&lt;p&gt;api.wit.ai &lt;/p&gt;

&lt;p&gt;using HTTPS requests.&lt;br&gt;
No custom server setup required.&lt;/p&gt;




&lt;h2&gt;
  
  
  OLED Feedback Makes the Project Feel Alive
&lt;/h2&gt;

&lt;p&gt;One thing I really liked was the OLED status updates.&lt;br&gt;
The display switches between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connecting...&lt;/li&gt;
&lt;li&gt;Ready&lt;/li&gt;
&lt;li&gt;Listening...&lt;/li&gt;
&lt;li&gt;Processing...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It makes the device feel interactive instead of just dumping logs into Serial Monitor.&lt;/p&gt;

&lt;p&gt;Once the recognized text appears on the OLED, the project suddenly feels much more polished.&lt;/p&gt;




&lt;h2&gt;
  
  
  Future Upgrades I Want to Try
&lt;/h2&gt;

&lt;p&gt;This setup can easily evolve into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;voice-controlled home automation&lt;/li&gt;
&lt;li&gt;smart assistants&lt;/li&gt;
&lt;li&gt;speech logging systems&lt;/li&gt;
&lt;li&gt;WhatsApp voice notifications&lt;/li&gt;
&lt;li&gt;MQTT-based voice dashboards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could even combine it with text-to-speech later and create a complete two-way voice assistant using only ESP32 hardware.&lt;/p&gt;

&lt;p&gt;For a small microcontroller project, this one feels surprisingly close to real-world AI systems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://circuitdigest.com/ai-projects-and-tutorials" rel="noopener noreferrer"&gt;AI Projects&lt;/a&gt;, &lt;a href="https://circuitdigest.com/esp32-projects" rel="noopener noreferrer"&gt;ESP32 Projects&lt;/a&gt;, &lt;/p&gt;

</description>
      <category>esp32</category>
      <category>tts</category>
      <category>tutorial</category>
      <category>ai</category>
    </item>
    <item>
      <title>AI Object Detection System Using ESP32-CAM and Cloud Vision API</title>
      <dc:creator>David Thomas</dc:creator>
      <pubDate>Fri, 22 May 2026 07:12:39 +0000</pubDate>
      <link>https://forem.com/david_thomas/ai-object-detection-system-using-esp32-cam-and-cloud-vision-api-4lkk</link>
      <guid>https://forem.com/david_thomas/ai-object-detection-system-using-esp32-cam-and-cloud-vision-api-4lkk</guid>
      <description>&lt;p&gt;Computer vision always looked complicated to me.&lt;/p&gt;

&lt;p&gt;Every tutorial seemed to involve machine learning models, dataset training, TensorFlow setups, or huge Python environments that made things feel overwhelming very quickly. As engineering students, most of us just want to build something that works without spending weeks training AI models.&lt;/p&gt;

&lt;p&gt;The idea is simple. Press a button, capture an image using the ESP32-CAM, send it to a cloud API, and instantly get object detection results back on the Serial Monitor.&lt;/p&gt;




&lt;h2&gt;
  
  
  What &lt;a href="https://circuitdigest.com/microcontroller-projects/esp32-cam-object-detection-using-circuitdigest-cloud" rel="noopener noreferrer"&gt;ESP32-CAM Object Detection&lt;/a&gt; Project Actually Means
&lt;/h2&gt;

&lt;p&gt;The ESP32-CAM captures an image whenever the push button is pressed.&lt;/p&gt;

&lt;p&gt;That image gets uploaded to a cloud object detection API where the processing happens. The server identifies objects inside the image and sends back:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;object names&lt;/li&gt;
&lt;li&gt;object count&lt;/li&gt;
&lt;li&gt;confidence scores&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The results are then displayed directly in the Arduino Serial Monitor.&lt;/p&gt;

&lt;p&gt;Seeing labels like “Laptop,” “Phone,” or “Mouse” appear automatically after taking a picture honestly feels pretty satisfying.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Project Feels Beginner Friendly
&lt;/h2&gt;

&lt;p&gt;Most AI-based embedded projects usually fail at one point: setup complexity.&lt;/p&gt;

&lt;p&gt;Collecting datasets, labeling images, training models, optimizing inference — it quickly becomes exhausting. This project removes all of that complexity because the heavy AI processing happens in the cloud instead of on the ESP32 itself.&lt;/p&gt;

&lt;p&gt;That means the ESP32-CAM only handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;image capture&lt;/li&gt;
&lt;li&gt;Wi-Fi communication&lt;/li&gt;
&lt;li&gt;sending HTTP requests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which makes the whole workflow much easier to understand.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hardware Required
&lt;/h2&gt;

&lt;p&gt;The setup is extremely small:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ESP32-CAM&lt;/li&gt;
&lt;li&gt;push button&lt;/li&gt;
&lt;li&gt;breadboard&lt;/li&gt;
&lt;li&gt;jumper wires&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The push button acts as the trigger for capturing images. Once pressed, the camera captures a frame and uploads it for detection.&lt;/p&gt;

&lt;p&gt;If you’re using the normal ESP32-CAM without onboard USB, you’ll also need an FTDI programmer for uploading code.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the Workflow Happens
&lt;/h2&gt;

&lt;p&gt;The process looks something like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User presses button
&lt;/li&gt;
&lt;li&gt;ESP32-CAM captures image
&lt;/li&gt;
&lt;li&gt;Image uploads through Wi-Fi
&lt;/li&gt;
&lt;li&gt;Cloud API processes image
&lt;/li&gt;
&lt;li&gt;Objects get detected
&lt;/li&gt;
&lt;li&gt;Detection results return to ESP32
&lt;/li&gt;
&lt;li&gt;Serial Monitor displays object names and confidence values
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Everything happens within a few seconds.&lt;/p&gt;

&lt;p&gt;And honestly, that response time feels surprisingly fast considering the ESP32 itself isn’t doing any actual AI inference locally.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Most Important Thing: Good Lighting
&lt;/h2&gt;

&lt;p&gt;One thing I learned quickly while testing this project:&lt;/p&gt;

&lt;p&gt;Lighting matters A LOT.&lt;/p&gt;

&lt;p&gt;If the room is dark or the image looks blurry, detection accuracy drops immediately. The cloud model can only analyze what the camera sees clearly.&lt;/p&gt;

&lt;p&gt;After adjusting brightness and manually focusing the ESP32-CAM lens a bit, the results became much better.&lt;/p&gt;

&lt;p&gt;Even small changes in image clarity made a huge difference.&lt;/p&gt;




&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;p&gt;This setup can easily grow into larger projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;smart surveillance systems&lt;/li&gt;
&lt;li&gt;automated attendance&lt;/li&gt;
&lt;li&gt;AI sorting machines&lt;/li&gt;
&lt;li&gt;smart parking detection&lt;/li&gt;
&lt;li&gt;inventory monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And since the detection runs in the cloud, adding more object classes becomes much easier compared to training models manually.&lt;/p&gt;

&lt;p&gt;Honestly, this project feels like one of the easiest ways to start experimenting with AI and embedded systems together without getting stuck in complicated ML workflows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://circuitdigest.com/esp32-projects" rel="noopener noreferrer"&gt;ESP32 Projects&lt;/a&gt;, &lt;a href="https://circuitdigest.com/ai-projects-and-tutorials" rel="noopener noreferrer"&gt;AI Projects&lt;/a&gt;, &lt;a href="https://circuitdigest.com/internet-of-things-iot-projects" rel="noopener noreferrer"&gt;IoT Projects&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>esp32</category>
      <category>tutorial</category>
      <category>api</category>
    </item>
    <item>
      <title>I Controlled an ESP32 Drone Using Only My Voice</title>
      <dc:creator>David Thomas</dc:creator>
      <pubDate>Thu, 21 May 2026 12:20:02 +0000</pubDate>
      <link>https://forem.com/david_thomas/i-controlled-an-esp32-drone-using-only-my-voice-3g1</link>
      <guid>https://forem.com/david_thomas/i-controlled-an-esp32-drone-using-only-my-voice-3g1</guid>
      <description>&lt;p&gt;Flying drones with joysticks is fun at first.&lt;/p&gt;

&lt;p&gt;But after a while, every engineering student starts thinking the same thing:&lt;br&gt;&lt;br&gt;
“What if the drone could just listen to commands directly?”&lt;/p&gt;

&lt;p&gt;That’s exactly what this project is about.&lt;/p&gt;

&lt;p&gt;I built a &lt;a href="https://circuitdigest.com/microcontroller-projects/esp32-voice-controlled-drone-using-litewing" rel="noopener noreferrer"&gt;voice controlled drone&lt;/a&gt; using an ESP32-based LiteWing drone, Python, and offline speech recognition. Instead of using a traditional remote controller, the drone responds to spoken commands like “takeoff,” “forward,” “left,” and “land.”&lt;/p&gt;

&lt;p&gt;And the best part?&lt;/p&gt;

&lt;p&gt;It works completely offline.&lt;/p&gt;

&lt;p&gt;No cloud APIs.&lt;br&gt;&lt;br&gt;
No internet.&lt;br&gt;&lt;br&gt;
No voice assistants.&lt;/p&gt;

&lt;p&gt;Just your voice controlling a flying machine in real time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Project Felt So Cool
&lt;/h2&gt;

&lt;p&gt;Most of us have already built Bluetooth cars or Wi-Fi robots during college.&lt;/p&gt;

&lt;p&gt;But controlling a drone using voice commands feels completely different. The first time the drone actually took off after saying “takeoff,” it honestly felt futuristic.&lt;/p&gt;

&lt;p&gt;This project combines multiple things engineering students usually learn separately:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;embedded systems&lt;/li&gt;
&lt;li&gt;Python programming&lt;/li&gt;
&lt;li&gt;networking&lt;/li&gt;
&lt;li&gt;speech recognition&lt;/li&gt;
&lt;li&gt;drone communication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And somehow all of them come together into one really fun build.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hardware Setup Was Surprisingly Simple
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp4ky1nrwislr4t2bnrdk.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp4ky1nrwislr4t2bnrdk.webp" alt="LiteWing-Drone-and-Position-Module" width="750" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The setup mainly uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LiteWing ESP32 drone&lt;/li&gt;
&lt;li&gt;positioning module&lt;/li&gt;
&lt;li&gt;laptop or PC&lt;/li&gt;
&lt;li&gt;microphone&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The laptop connects directly to the drone’s Wi-Fi access point. Voice commands are processed on the laptop and then sent wirelessly to the drone.&lt;/p&gt;

&lt;p&gt;That means the ESP32 itself doesn’t perform speech recognition. The laptop handles all the heavy processing while the drone focuses on flying smoothly.&lt;/p&gt;

&lt;p&gt;Honestly, this made development much easier.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Brain of the System: Vosk Speech Recognition
&lt;/h2&gt;

&lt;p&gt;For voice recognition, I used Vosk.&lt;/p&gt;

&lt;p&gt;What made Vosk perfect for this project is that it works fully offline. Since the laptop directly connects to the drone’s Wi-Fi network, internet access usually disappears during operation. Online speech APIs would have completely failed here.&lt;/p&gt;

&lt;p&gt;The workflow is simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Microphone captures audio
&lt;/li&gt;
&lt;li&gt;Vosk converts speech into text
&lt;/li&gt;
&lt;li&gt;Python checks for keywords
&lt;/li&gt;
&lt;li&gt;Commands get sent to the drone
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fatrfd6n1vz4y6jpaum16.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fatrfd6n1vz4y6jpaum16.webp" alt="Voice-Controlled-Drone-System-Architecture" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The response feels surprisingly fast.&lt;/p&gt;

&lt;p&gt;There’s very little delay between speaking and drone movement.&lt;/p&gt;




&lt;h2&gt;
  
  
  Supported Commands
&lt;/h2&gt;

&lt;p&gt;The drone can understand commands like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;takeoff&lt;/li&gt;
&lt;li&gt;land&lt;/li&gt;
&lt;li&gt;forward&lt;/li&gt;
&lt;li&gt;backward&lt;/li&gt;
&lt;li&gt;left&lt;/li&gt;
&lt;li&gt;right&lt;/li&gt;
&lt;li&gt;up&lt;/li&gt;
&lt;li&gt;down&lt;/li&gt;
&lt;li&gt;turn left&lt;/li&gt;
&lt;li&gt;turn right&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also added LED color commands because honestly… why not?&lt;/p&gt;

&lt;p&gt;Saying “blue” and watching the drone LEDs instantly change color feels unnecessarily satisfying.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Biggest Problem I Faced
&lt;/h2&gt;

&lt;p&gt;Speech recognition accuracy.&lt;/p&gt;

&lt;p&gt;Initially, I used the default American English Vosk model. The system kept misunderstanding commands because of accent differences. Sometimes “land” became random words, which is definitely not something you want while flying a drone.&lt;/p&gt;

&lt;p&gt;Switching to the Indian English Vosk model improved accuracy massively. After that, command detection became much smoother and more reliable.&lt;/p&gt;

&lt;p&gt;That small change honestly saved the whole project.&lt;/p&gt;




&lt;h2&gt;
  
  
  Drone Stability Matters More Than You Think
&lt;/h2&gt;

&lt;p&gt;One thing I learned quickly:&lt;/p&gt;

&lt;p&gt;Voice control is useless if the drone itself isn’t stable.&lt;/p&gt;

&lt;p&gt;The positioning module played a huge role here. Without proper stabilization, the drone drifted too much during hover and movement commands. Updating the LiteWing firmware also improved flight stability a lot.&lt;/p&gt;

&lt;p&gt;This project made me realize that good software still depends heavily on reliable hardware.&lt;/p&gt;




&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;p&gt;There’s still a lot that can be added:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;custom wake words&lt;/li&gt;
&lt;li&gt;obstacle avoidance&lt;/li&gt;
&lt;li&gt;multilingual support&lt;/li&gt;
&lt;li&gt;gesture + voice hybrid control&lt;/li&gt;
&lt;li&gt;autonomous navigation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The foundation is already there.&lt;/p&gt;

&lt;p&gt;And honestly, once you start controlling drones with your voice, normal remotes suddenly feel boring.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://circuitdigest.com/drone-projects" rel="noopener noreferrer"&gt;Drone Projects&lt;/a&gt;, &lt;a href="https://circuitdigest.com/ai-projects-and-tutorials" rel="noopener noreferrer"&gt;AI Projects&lt;/a&gt;, &lt;a href="https://circuitdigest.com/esp32-projects" rel="noopener noreferrer"&gt;ESP32 Projects&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>esp32drone</category>
      <category>diydrone</category>
      <category>voicecontrolled</category>
    </item>
    <item>
      <title>IVR System Using ESP32-S3</title>
      <dc:creator>David Thomas</dc:creator>
      <pubDate>Mon, 18 May 2026 11:56:48 +0000</pubDate>
      <link>https://forem.com/david_thomas/ivr-system-using-esp32-s3-1fl8</link>
      <guid>https://forem.com/david_thomas/ivr-system-using-esp32-s3-1fl8</guid>
      <description>&lt;p&gt;Internet-based automation is everywhere now.&lt;/p&gt;

&lt;p&gt;Turn ON lights with an app. Monitor device from the cloud. Control appliances through Wi-Fi. Sounds great until the internet suddenly disappears.&lt;/p&gt;

&lt;p&gt;Built a &lt;a href="https://circuitdigest.com/microcontroller-projects/esp32-interactive-voice-response-system-using-geolinker" rel="noopener noreferrer"&gt;ESP32 Interactive voice response system&lt;/a&gt; using GeoLinker board and SIM868 GSM module that lets users control devices just by pressing keypad buttons during a call. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No Wi-Fi.&lt;/li&gt;
&lt;li&gt;No mobile application.&lt;/li&gt;
&lt;li&gt;No internet dependency.&lt;/li&gt;
&lt;li&gt;Just pure GSM communication.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Idea Behind the Project
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzom56fn3tzr3w81z20tv.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzom56fn3tzr3w81z20tv.webp" alt="Interactive Voice Response System Block Diagram" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The concept is actually very simple.&lt;/p&gt;

&lt;p&gt;When someone calls the system, it automatically answers the call and plays voice instructions. The user can then press keypad buttons like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 to turn ON a device&lt;/li&gt;
&lt;li&gt;2 to turn it OFF&lt;/li&gt;
&lt;li&gt;(#) to end the call&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system detects these keypad tones using DTMF and performs the assigned action instantly.&lt;/p&gt;

&lt;p&gt;It honestly feels like calling a customer care IVR system, except this one control actual hardware.&lt;/p&gt;




&lt;h2&gt;
  
  
  How Does an IVR System Work?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0fqsfku1o9yxuat5yw2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0fqsfku1o9yxuat5yw2.jpg" alt="Hardware Setup of an Interactive Voice Response System Using ESP32" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most IoT projects students build today completely depend on internet connectivity.&lt;/p&gt;

&lt;p&gt;But GSM still has one huge advantage.&lt;/p&gt;

&lt;p&gt;It works almost everywhere.&lt;/p&gt;

&lt;p&gt;Even in locations where Wi-Fi signals are weak or unavailable, normal cellular networks are usually active. That makes GSM-based systems surprisingly practical for real-world automation.&lt;/p&gt;

&lt;p&gt;This project proved that you can still build smart systems without relying entirely on cloud platforms.&lt;/p&gt;




&lt;h2&gt;
  
  
  Meet the GeoLinker Board
&lt;/h2&gt;

&lt;p&gt;The main controller used here is the GeoLinker GL868 board.&lt;/p&gt;

&lt;p&gt;And honestly, it packs a lot into one small board:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ESP32-S3&lt;/li&gt;
&lt;li&gt;SIM868 GSM module&lt;/li&gt;
&lt;li&gt;GPS support&lt;/li&gt;
&lt;li&gt;Wi-Fi + BLE&lt;/li&gt;
&lt;li&gt;battery charging&lt;/li&gt;
&lt;li&gt;USB-C programming&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Having everything integrated made the setup much cleaner compared to using separate GSM and ESP32 modules.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hardware Setup for the ESP32 Interactive Voice Response System
&lt;/h2&gt;

&lt;p&gt;This project doesn’t just detect calls.&lt;/p&gt;

&lt;p&gt;It actually talks back.&lt;/p&gt;

&lt;p&gt;The ESP32 stores audio files in LittleFS memory and plays them during the call using sigma-delta modulation. Since raw digital signals cannot directly go into the SIM868 microphone input, an audio filter circuit is used to smooth the signal into proper analog audio.&lt;/p&gt;

&lt;p&gt;That part honestly felt more like building a mini telecom system than a regular embedded project.&lt;/p&gt;

&lt;p&gt;And hearing the welcome message play through a phone call for the first time was extremely satisfying.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the Workflow Looks
&lt;/h2&gt;

&lt;p&gt;The entire process feels smooth once the system starts running.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User makes a phone call
&lt;/li&gt;
&lt;li&gt;SIM868 detects the incoming call
&lt;/li&gt;
&lt;li&gt;ESP32 answers automatically
&lt;/li&gt;
&lt;li&gt;Welcome audio plays
&lt;/li&gt;
&lt;li&gt;User presses keypad buttons
&lt;/li&gt;
&lt;li&gt;DTMF tones get detected
&lt;/li&gt;
&lt;li&gt;GPIO outputs switch ON/OFF
&lt;/li&gt;
&lt;li&gt;Confirmation audio plays back
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Everything happens in real time without internet access.&lt;/p&gt;

&lt;p&gt;That’s the coolest part.&lt;/p&gt;




&lt;h2&gt;
  
  
  Problems I Ran Into
&lt;/h2&gt;

&lt;p&gt;Of course, the project wasn’t plug-and-play.&lt;/p&gt;

&lt;h3&gt;
  
  
  GSM Module Stability
&lt;/h3&gt;

&lt;p&gt;SIM868 modules draw high current during network communication.&lt;/p&gt;

&lt;p&gt;Initially, the board kept restarting randomly during calls because the power supply wasn’t stable enough. Using a stronger supply fixed the issue immediately.&lt;/p&gt;




&lt;h2&gt;
  
  
  Distorted Audio Output
&lt;/h2&gt;

&lt;p&gt;The first audio output sounded terrible.&lt;/p&gt;

&lt;p&gt;Turns out the low-pass filter section was extremely important. Without proper filtering, the sigma-delta output carried too much switching noise into the SIM868 microphone input.&lt;/p&gt;

&lt;p&gt;After tuning the filter components, the voice playback became much cleaner.&lt;/p&gt;




&lt;h2&gt;
  
  
  UART Communication Errors
&lt;/h2&gt;

&lt;p&gt;At one point, AT commands stopped responding properly.&lt;/p&gt;

&lt;p&gt;Classic RX-TX confusion.&lt;/p&gt;

&lt;p&gt;Swapping the UART lines solved it instantly.&lt;/p&gt;

&lt;p&gt;Engineering debugging in one sentence.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Learned from This Build
&lt;/h2&gt;

&lt;p&gt;This project taught way more than just device control.&lt;/p&gt;

&lt;p&gt;I got hands-on experience with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GSM communication&lt;/li&gt;
&lt;li&gt;DTMF detection&lt;/li&gt;
&lt;li&gt;UART handling&lt;/li&gt;
&lt;li&gt;embedded audio playback&lt;/li&gt;
&lt;li&gt;state machines&lt;/li&gt;
&lt;li&gt;signal filtering&lt;/li&gt;
&lt;li&gt;real-time control systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And unlike many beginner IoT projects, this one actually felt like a practical product.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-World Applications
&lt;/h2&gt;

&lt;p&gt;This type of system can be used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;home automation&lt;/li&gt;
&lt;li&gt;agricultural motor control&lt;/li&gt;
&lt;li&gt;industrial switching&lt;/li&gt;
&lt;li&gt;remote monitoring&lt;/li&gt;
&lt;li&gt;security systems&lt;/li&gt;
&lt;li&gt;offline automation setups&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Especially in rural areas where internet reliability is poor, GSM-based systems still make a lot of sense.&lt;/p&gt;




&lt;p&gt;You’re combining hardware control, telecom concepts, embedded programming, and audio processing into one working system. And the best part is seeing appliances respond to phone keypad inputs in real time.&lt;/p&gt;

&lt;p&gt;It genuinely feels like building your own mini telecom automation platform from scratch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://circuitdigest.com/esp32-projects" rel="noopener noreferrer"&gt;ESP32 Projects&lt;/a&gt;, &lt;a href="https://circuitdigest.com/internet-of-things-iot-projects" rel="noopener noreferrer"&gt;IoT Projects&lt;/a&gt;&lt;/p&gt;

</description>
      <category>esp32</category>
      <category>tutorial</category>
      <category>ivrs</category>
      <category>geolinker</category>
    </item>
    <item>
      <title>Attendance System Using ESP32-CAM and WhatsApp Alerts</title>
      <dc:creator>David Thomas</dc:creator>
      <pubDate>Sat, 16 May 2026 07:58:02 +0000</pubDate>
      <link>https://forem.com/david_thomas/attendance-system-using-esp32-cam-and-whatsapp-alerts-jkj</link>
      <guid>https://forem.com/david_thomas/attendance-system-using-esp32-cam-and-whatsapp-alerts-jkj</guid>
      <description>&lt;p&gt;Taking attendance manually feels outdated now.&lt;/p&gt;

&lt;p&gt;Every classroom has gone through the same routine:&lt;br&gt;
“Arun?”&lt;br&gt;
“Present, sir.”&lt;br&gt;
“Priya?”&lt;br&gt;
“Present.”&lt;/p&gt;

&lt;p&gt;And somehow five to ten minutes disappear every single day.&lt;/p&gt;

&lt;p&gt;That’s what inspired this project.&lt;/p&gt;

&lt;p&gt;I built a simple smart attendance system using an ESP32-CAM, an OLED display, and a rotary encoder that captures student images and sends attendance updates directly to WhatsApp over Wi-Fi.&lt;/p&gt;

&lt;p&gt;What makes this project interesting is that it combines embedded systems, IoT, cloud APIs, and user interaction into one compact setup without needing expensive hardware.&lt;/p&gt;

&lt;p&gt;And honestly, it feels like one of those projects engineering students would genuinely enjoy building.&lt;/p&gt;




&lt;h2&gt;
  
  
  How Does &lt;a href="https://circuitdigest.com/microcontroller-projects/esp32-cam-attendance-system-using-circuitdigest-cloud" rel="noopener noreferrer"&gt;ESP32-CAM Attendance System&lt;/a&gt; Works
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ebhmpyol795lcjgjtbz.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ebhmpyol795lcjgjtbz.webp" alt="Circuit Diagram of Attendance System" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The workflow is surprisingly smooth.&lt;/p&gt;

&lt;p&gt;A student walks up to the device and selects their name using the rotary encoder. Then they choose whether they are entering or leaving.&lt;/p&gt;

&lt;p&gt;After a short countdown, the ESP32-CAM captures an image and sends:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;student name&lt;/li&gt;
&lt;li&gt;IN/OUT status&lt;/li&gt;
&lt;li&gt;timestamp&lt;/li&gt;
&lt;li&gt;photo proof&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;directly to WhatsApp.&lt;/p&gt;

&lt;p&gt;So instead of maintaining registers manually, every attendance entry becomes digitally verified.&lt;/p&gt;

&lt;p&gt;That’s a huge upgrade from traditional systems.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why ESP32-CAM Fits This Project Perfectly
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyei24a9iosqte6rx6d9a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyei24a9iosqte6rx6d9a.jpg" alt="Hardware Connection of the Attendance System" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The ESP32-CAM is honestly one of the most fun boards to experiment with.&lt;/p&gt;

&lt;p&gt;For a low-cost module, you get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wi-Fi&lt;/li&gt;
&lt;li&gt;Bluetooth&lt;/li&gt;
&lt;li&gt;camera support&lt;/li&gt;
&lt;li&gt;GPIO pins&lt;/li&gt;
&lt;li&gt;enough processing power for IoT projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;all packed into something tiny.&lt;/p&gt;

&lt;p&gt;Instead of using separate modules for networking and image capture, the ESP32-CAM handles everything together.&lt;/p&gt;

&lt;p&gt;That keeps the entire setup lightweight and affordable.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Hardware Setup
&lt;/h2&gt;

&lt;p&gt;The project mainly uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ESP32-CAM&lt;/li&gt;
&lt;li&gt;SSD1306 OLED display&lt;/li&gt;
&lt;li&gt;Rotary encoder&lt;/li&gt;
&lt;li&gt;Breadboard or perfboard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The OLED shows menus and instructions, while the rotary encoder acts as the navigation system.&lt;/p&gt;

&lt;p&gt;Rotating the knob scrolls through names.&lt;/p&gt;

&lt;p&gt;Clicking selects options.&lt;/p&gt;

&lt;p&gt;It actually feels surprisingly smooth once everything starts working.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-Time WhatsApp Alerts
&lt;/h2&gt;

&lt;p&gt;Once the image gets captured, the ESP32-CAM sends the data through Wi-Fi using a cloud API. Within seconds, the registered phone number receives:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;captured image&lt;/li&gt;
&lt;li&gt;student name&lt;/li&gt;
&lt;li&gt;attendance status&lt;/li&gt;
&lt;li&gt;timestamp&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;directly on WhatsApp.&lt;/p&gt;

&lt;p&gt;The photo arrives instantly on the phone.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-World Applications
&lt;/h2&gt;

&lt;p&gt;This system could easily be adapted for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;classrooms&lt;/li&gt;
&lt;li&gt;coaching centers&lt;/li&gt;
&lt;li&gt;office attendance&lt;/li&gt;
&lt;li&gt;hostel entry systems&lt;/li&gt;
&lt;li&gt;libraries&lt;/li&gt;
&lt;li&gt;restricted access rooms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Adding face recognition later would make it even more powerful.&lt;/p&gt;

&lt;p&gt;And honestly, the hardware is already capable enough for that upgrade.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Engineering Students Would Enjoy This Project
&lt;/h2&gt;

&lt;p&gt;A lot of IoT projects online feel repetitive.&lt;/p&gt;

&lt;p&gt;Read sensor → upload to cloud → show graph.&lt;/p&gt;

&lt;p&gt;This project feels more interactive.&lt;/p&gt;

&lt;p&gt;You physically interact with the system, capture images, process attendance, and instantly receive updates on WhatsApp. That combination makes the whole experience much more engaging.&lt;/p&gt;

&lt;p&gt;And seeing your own mini attendance terminal working in real time is genuinely satisfying.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://circuitdigest.com/esp32-projects" rel="noopener noreferrer"&gt;ESP32 Projects&lt;/a&gt;&lt;br&gt;
&lt;a href="https://circuitdigest.com/internet-of-things-iot-projects" rel="noopener noreferrer"&gt;IoT Projects&lt;/a&gt;&lt;/p&gt;

</description>
      <category>esp32</category>
      <category>tutorial</category>
      <category>esp32cam</category>
      <category>circuitdigestcloud</category>
    </item>
    <item>
      <title>GP2Y0D80Z0F Distance Sensor with Arduino Uno</title>
      <dc:creator>David Thomas</dc:creator>
      <pubDate>Wed, 13 May 2026 05:43:46 +0000</pubDate>
      <link>https://forem.com/david_thomas/gp2y0d80z0f-distance-sensor-with-arduino-uno-hj5</link>
      <guid>https://forem.com/david_thomas/gp2y0d80z0f-distance-sensor-with-arduino-uno-hj5</guid>
      <description>&lt;p&gt;Built a simple &lt;a href="https://circuitdigest.com/microcontroller-projects/interfacing-gp2y0d80z0f-distance-sensor-with-arduino-uno" rel="noopener noreferrer"&gt;GP2Y0D80Z0F Distance Sensor with Arduino Uno&lt;/a&gt;, with a 16x2 I2C LCD display. The system continuously checks whether an object is nearby and immediately updates the LCD with the detection status.&lt;/p&gt;

&lt;p&gt;It’s one of those projects that looks simple but ends up teaching a lot about sensors, wiring, and embedded systems logic in beginner level.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Chose This GP2Y0D80Z0F Distance Sensor
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc5i6z9k1xrazr8re41kc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc5i6z9k1xrazr8re41kc.webp" alt="GP2Y0D80Z0F " width="750" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most people jump directly to ultrasonic sensors for distance detection projects.&lt;/p&gt;

&lt;p&gt;But this GP2Y0D80Z0F distance sensor felt much cleaner for a beginner-friendly build.&lt;/p&gt;

&lt;p&gt;Instead of calculating exact distance values, the sensor simply tells the Arduino whether something is detected within its fixed range. The output is digital:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LOW when an object is detected&lt;/li&gt;
&lt;li&gt;HIGH when nothing is nearby&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That means the Arduino code stays very simple.&lt;/p&gt;

&lt;p&gt;Honestly, that simplicity makes debugging way less painful.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Hardware Setup
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsfnbccab3vqpcpm6cn1o.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsfnbccab3vqpcpm6cn1o.webp" alt="The Hardware Setup GP2Y0D80Z0F Distance Sensor with Arduino Uno" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project only needed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Arduino UNO&lt;/li&gt;
&lt;li&gt;GP2Y0D80Z0F distance sensor&lt;/li&gt;
&lt;li&gt;16x2 I2C LCD&lt;/li&gt;
&lt;li&gt;Breadboard and jumper wires&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The sensor itself only uses three pins:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VCC&lt;/li&gt;
&lt;li&gt;GND&lt;/li&gt;
&lt;li&gt;OUT&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And because the LCD uses I2C communication, even that requires very few connections.&lt;/p&gt;

&lt;p&gt;Less wiring usually means fewer mistakes, which every engineering student eventually learns the hard way.&lt;/p&gt;




&lt;h2&gt;
  
  
  The First Test Didn’t Go Smoothly
&lt;/h2&gt;

&lt;p&gt;The LCD powered on perfectly.&lt;/p&gt;

&lt;p&gt;The code uploaded without errors.&lt;/p&gt;

&lt;p&gt;Still, the sensor refused to work.&lt;/p&gt;

&lt;p&gt;After checking the code multiple times, I finally found the problem: one loose ground wire on the breadboard.&lt;/p&gt;

&lt;p&gt;That’s probably the most relatable part of electronics projects. Sometimes the issue isn’t software at all. It’s just a jumper wire pretending to be connected.&lt;/p&gt;

&lt;p&gt;Once fixed, the LCD instantly started switching between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Object Detected”&lt;/li&gt;
&lt;li&gt;“No Object”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And honestly, watching hardware respond correctly in real time never gets boring.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real Applications for This
&lt;/h2&gt;

&lt;p&gt;Even though this is a simple build, the same idea can be used in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;obstacle avoiding robots&lt;/li&gt;
&lt;li&gt;automatic doors&lt;/li&gt;
&lt;li&gt;touchless systems&lt;/li&gt;
&lt;li&gt;smart bins&lt;/li&gt;
&lt;li&gt;object counters&lt;/li&gt;
&lt;li&gt;industrial detection systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since the sensor gives a digital output, connecting it with relays, motors, LEDs, or buzzers becomes very easy.&lt;/p&gt;

&lt;p&gt;And honestly, &lt;a href="https://circuitdigest.com/arduino-projects" rel="noopener noreferrer"&gt;Arduino Projects&lt;/a&gt; like this are great because they teach core embedded concepts without becoming overly complicated.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>iot</category>
      <category>showdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>ESP32-CAM Project That Captures Photos and Sends Them to Email</title>
      <dc:creator>David Thomas</dc:creator>
      <pubDate>Tue, 12 May 2026 18:02:56 +0000</pubDate>
      <link>https://forem.com/david_thomas/i-built-an-esp32-cam-project-that-captures-photos-and-sends-them-to-email-3h80</link>
      <guid>https://forem.com/david_thomas/i-built-an-esp32-cam-project-that-captures-photos-and-sends-them-to-email-3h80</guid>
      <description>&lt;p&gt;There’s something really satisfying about projects that feel like actual products.&lt;/p&gt;

&lt;p&gt;This project uses an ESP32-CAM to capture an image and instantly send it to an email using WiFi. No GSM module, no expensive cloud setup, and no complicated backend configuration.&lt;/p&gt;

&lt;p&gt;Just press a button, take a picture, and receive it directly in your inbox.&lt;/p&gt;

&lt;p&gt;Honestly, it feels like building your own tiny smart security system.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Tried This Project
&lt;/h2&gt;

&lt;p&gt;Most ESP32-CAM projects stop after:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Image captured successfully.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But I wanted the image to actually &lt;em&gt;go somewhere&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;So I built a simple system where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One button captures the image
&lt;/li&gt;
&lt;li&gt;Another button sends it via email
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ESP32-CAM handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Camera control
&lt;/li&gt;
&lt;li&gt;WiFi connection
&lt;/li&gt;
&lt;li&gt;HTTPS communication
&lt;/li&gt;
&lt;li&gt;Email upload
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All on a tiny board that costs less than a coffee.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hardware Used
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff67tn0tkny3s08ii9h52.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff67tn0tkny3s08ii9h52.jpg" alt="Hardware Connection for the Photo Capture and Email System" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The setup is pretty beginner-friendly.&lt;/p&gt;

&lt;p&gt;I used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ESP32-CAM
&lt;/li&gt;
&lt;li&gt;OLED display
&lt;/li&gt;
&lt;li&gt;Two push buttons
&lt;/li&gt;
&lt;li&gt;Breadboard
&lt;/li&gt;
&lt;li&gt;Jumper wires
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;The OLED display ended up being more useful than expected because it gives live feedback like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Capturing
&lt;/li&gt;
&lt;li&gt;Sending
&lt;/li&gt;
&lt;li&gt;Done
&lt;/li&gt;
&lt;li&gt;Error messages
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which saves a lot of debugging frustration.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the System Works
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs2rtlqkea1u3d3lojmwt.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs2rtlqkea1u3d3lojmwt.webp" alt="Circuit Diagram Image Capture and Transfer using Email" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The workflow is simple.&lt;/p&gt;

&lt;p&gt;When the first button is pressed:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ESP32-CAM activates the camera
&lt;/li&gt;
&lt;li&gt;Captures a JPEG image
&lt;/li&gt;
&lt;li&gt;Stores it temporarily in memory
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then the second button:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connects to WiFi
&lt;/li&gt;
&lt;li&gt;Creates a secure HTTPS request
&lt;/li&gt;
&lt;li&gt;Uploads the image to the cloud API
&lt;/li&gt;
&lt;li&gt;Sends the email
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A few seconds later, the image appears in the inbox.&lt;/p&gt;

&lt;p&gt;Seeing the first successful email arrive honestly felt way cooler than it should.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Interesting Part: HTTPS on ESP32-CAM
&lt;/h2&gt;

&lt;p&gt;This was the part I wanted to understand most.&lt;/p&gt;

&lt;p&gt;The ESP32-CAM uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;WiFiClientSecure&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;HTTPS POST requests
&lt;/li&gt;
&lt;li&gt;API authentication
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To securely upload the image.&lt;/p&gt;

&lt;p&gt;So instead of directly handling SMTP servers or complex email protocols, the board simply uploads the image through an API.&lt;/p&gt;

&lt;p&gt;Much cleaner.&lt;/p&gt;

&lt;p&gt;And honestly way easier for student projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  Camera Settings Matter More Than Expected
&lt;/h2&gt;

&lt;p&gt;At first I used higher resolutions thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Higher quality = better.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Bad idea.&lt;/p&gt;

&lt;p&gt;The ESP32-CAM has limited RAM, so large image sizes caused:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Failed captures
&lt;/li&gt;
&lt;li&gt;Random resets
&lt;/li&gt;
&lt;li&gt;Memory crashes
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Switching to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VGA resolution
&lt;/li&gt;
&lt;li&gt;JPEG compression
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Made the system stable.&lt;/p&gt;

&lt;p&gt;That’s one thing embedded projects teach you quickly:&lt;br&gt;
optimization matters.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Problems I Faced
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Random Board Resets
&lt;/h3&gt;

&lt;p&gt;Usually caused by weak power supply.&lt;/p&gt;

&lt;p&gt;ESP32-CAM needs stable current, especially during WiFi transmission and camera operation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Camera Initialization Failed
&lt;/h3&gt;

&lt;p&gt;This happened because the wrong board model was selected in Arduino IDE.&lt;/p&gt;

&lt;p&gt;Classic mistake.&lt;/p&gt;

&lt;h3&gt;
  
  
  Email Not Sending
&lt;/h3&gt;

&lt;p&gt;Turned out the HTTPS payload formatting was incorrect.&lt;/p&gt;

&lt;p&gt;One missing field and the whole request silently fails.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Project Feels Useful
&lt;/h2&gt;

&lt;p&gt;A lot of engineering projects feel like demos.&lt;/p&gt;

&lt;p&gt;This one actually feels practical.&lt;/p&gt;

&lt;p&gt;You could easily turn this into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smart door monitoring
&lt;/li&gt;
&lt;li&gt;Motion-triggered security camera
&lt;/li&gt;
&lt;li&gt;Visitor alert system
&lt;/li&gt;
&lt;li&gt;IoT inspection device
&lt;/li&gt;
&lt;li&gt;Remote monitoring node
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the hardware cost stays surprisingly low.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I’d Add Next
&lt;/h2&gt;

&lt;p&gt;A few upgrades would make this even better:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PIR motion detection
&lt;/li&gt;
&lt;li&gt;SD card backup storage
&lt;/li&gt;
&lt;li&gt;Face recognition
&lt;/li&gt;
&lt;li&gt;Mobile app notifications
&lt;/li&gt;
&lt;li&gt;Cloud image logging
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The base system already works well enough to expand into something serious.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Projects like this are fun because they combine multiple engineering concepts together.&lt;/p&gt;

&lt;p&gt;Not just coding.&lt;/p&gt;

&lt;p&gt;You learn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Camera interfacing
&lt;/li&gt;
&lt;li&gt;Embedded memory handling
&lt;/li&gt;
&lt;li&gt;WiFi communication
&lt;/li&gt;
&lt;li&gt;HTTPS requests
&lt;/li&gt;
&lt;li&gt;API integration
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And when the image finally lands in your inbox after hours of debugging…&lt;/p&gt;

&lt;p&gt;It genuinely feels rewarding.&lt;br&gt;
&lt;a href="https://circuitdigest.com/internet-of-things-iot-projects" rel="noopener noreferrer"&gt;IoT Projects&lt;/a&gt;, &lt;a href="https://circuitdigest.com/esp32-projects" rel="noopener noreferrer"&gt;ESP32 Projects&lt;/a&gt;&lt;/p&gt;

</description>
      <category>esp32</category>
      <category>esp32cam</category>
      <category>alerts</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>I Built an AI-Powered Automatic Waste Segregation System Using Arduino UNO Q ♻️</title>
      <dc:creator>David Thomas</dc:creator>
      <pubDate>Fri, 08 May 2026 05:28:33 +0000</pubDate>
      <link>https://forem.com/david_thomas/i-built-an-ai-powered-automatic-waste-segregation-system-using-arduino-uno-q-aoe</link>
      <guid>https://forem.com/david_thomas/i-built-an-ai-powered-automatic-waste-segregation-system-using-arduino-uno-q-aoe</guid>
      <description>&lt;p&gt;Waste segregation sounds simple until you actually start doing it daily.&lt;/p&gt;

&lt;p&gt;One bin slowly turns into a mix of food waste, plastic wrappers, paper cups, batteries, and random junk. Most people don’t ignore recycling intentionally — it’s usually because sorting waste every single time becomes tiring.&lt;/p&gt;

&lt;p&gt;So instead of expecting humans to do it perfectly, I tried automating the process.&lt;/p&gt;

&lt;p&gt;This project &lt;a href="https://circuitdigest.com/microcontroller-projects/automatic-waste-segregation-system-using-arduino-uno-q" rel="noopener noreferrer"&gt;Automatic Waste Segregation System&lt;/a&gt; uses an Arduino UNO Q, computer vision, and a simple servo mechanism to automatically detect and sort waste in real time. &lt;/p&gt;

&lt;p&gt;And honestly, watching trash sort itself feels way cooler than it should.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Project Does
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqcq0hdw2a8i11cel2vwd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqcq0hdw2a8i11cel2vwd.jpg" alt="Circuit  Diagram for Automatic Waste Segregation System" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The system uses a USB camera to identify objects like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Paper
&lt;/li&gt;
&lt;li&gt;Plastic
&lt;/li&gt;
&lt;li&gt;Cardboard
&lt;/li&gt;
&lt;li&gt;Batteries
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once detected:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A servo motor rotates to direct the waste into the correct section
&lt;/li&gt;
&lt;li&gt;A buzzer alerts the user if a battery is detected
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The whole thing works automatically.&lt;/p&gt;

&lt;p&gt;No buttons. No manual sorting.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Used Arduino UNO Q
&lt;/h2&gt;

&lt;p&gt;This project needed two things happening together:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI/object detection
&lt;/li&gt;
&lt;li&gt;Real-time hardware control
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s where the Arduino UNO Q helped a lot.&lt;/p&gt;

&lt;p&gt;It combines Linux-level processing with microcontroller-level control on a single board, making it easier to handle both the camera processing and servo control together without needing an extra SBC setup.&lt;/p&gt;

&lt;p&gt;For engineering students, this board is honestly pretty interesting to experiment with.&lt;/p&gt;




&lt;h2&gt;
  
  
  The AI Part Was Surprisingly Fun
&lt;/h2&gt;

&lt;p&gt;I trained the detection model using Edge Impulse.&lt;/p&gt;

&lt;p&gt;The process was:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Collect images of waste
&lt;/li&gt;
&lt;li&gt;Label them
&lt;/li&gt;
&lt;li&gt;Train the model
&lt;/li&gt;
&lt;li&gt;Deploy it
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;The model then detects waste objects through the USB camera in real time.&lt;/p&gt;

&lt;p&gt;One thing I learned quickly:&lt;br&gt;
good datasets matter more than fancy code.&lt;/p&gt;

&lt;p&gt;Bad lighting or weak training images immediately affected detection accuracy.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the Sorting Actually Works
&lt;/h2&gt;

&lt;p&gt;The logic is simple but works well.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Paper/Cardboard → Servo moves to 0°
&lt;/li&gt;
&lt;li&gt;Plastic → Servo moves to 180°
&lt;/li&gt;
&lt;li&gt;Battery → Buzzer activates
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After sorting, the servo returns to its neutral 90° position.&lt;/p&gt;

&lt;p&gt;To avoid false detections, I added:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confidence thresholds
&lt;/li&gt;
&lt;li&gt;Stability counters
&lt;/li&gt;
&lt;li&gt;Cooldown timers
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Otherwise, the servo kept twitching every frame like it drank too much coffee.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hardware Used
&lt;/h2&gt;

&lt;p&gt;The setup is pretty minimal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Arduino UNO Q
&lt;/li&gt;
&lt;li&gt;USB Camera
&lt;/li&gt;
&lt;li&gt;Servo Motor
&lt;/li&gt;
&lt;li&gt;Buzzer
&lt;/li&gt;
&lt;li&gt;USB Hub
&lt;/li&gt;
&lt;li&gt;Cardboard frame for bins
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fasi0ntio7r048yzpm3ox.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fasi0ntio7r048yzpm3ox.webp" alt="Components used in Smart Waste Segregation Project" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most of the effort actually went into arranging the physical structure cleanly.&lt;/p&gt;

&lt;p&gt;The classic engineering struggle:&lt;br&gt;
electronics working perfectly while cardboard engineering fails completely.&lt;/p&gt;




&lt;h2&gt;
  
  
  One Problem That Took Longer Than Expected
&lt;/h2&gt;

&lt;p&gt;Repeated detections.&lt;/p&gt;

&lt;p&gt;The camera would continuously detect the same object frame after frame, causing the servo to keep triggering repeatedly.&lt;/p&gt;

&lt;p&gt;I fixed it using stability counters and cooldown delays so actions only happen after consistent detections across multiple frames.&lt;/p&gt;

&lt;p&gt;Tiny fix.&lt;/p&gt;

&lt;p&gt;Huge improvement.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Project Feels Different
&lt;/h2&gt;

&lt;p&gt;Most beginner AI projects stop at:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Object detected successfully.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This one actually performs a physical action.&lt;/p&gt;

&lt;p&gt;That makes it feel more real.&lt;/p&gt;

&lt;p&gt;The system connects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Embedded systems
&lt;/li&gt;
&lt;li&gt;AI
&lt;/li&gt;
&lt;li&gt;Hardware control
&lt;/li&gt;
&lt;li&gt;Automation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All inside one project.&lt;/p&gt;

&lt;p&gt;And that combination teaches a lot more than isolated tutorials.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-World Applications
&lt;/h2&gt;

&lt;p&gt;This idea can actually scale surprisingly well.&lt;/p&gt;

&lt;p&gt;It could be used in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smart recycling bins
&lt;/li&gt;
&lt;li&gt;Schools and colleges
&lt;/li&gt;
&lt;li&gt;Public waste systems
&lt;/li&gt;
&lt;li&gt;Offices
&lt;/li&gt;
&lt;li&gt;Smart city infrastructure
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Battery detection is especially useful because hazardous waste should never mix with regular recycling.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I’d Improve Next
&lt;/h2&gt;

&lt;p&gt;A few upgrades would make this much better:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More waste categories
&lt;/li&gt;
&lt;li&gt;Conveyor-based sorting
&lt;/li&gt;
&lt;li&gt;Cloud analytics dashboard
&lt;/li&gt;
&lt;li&gt;Fill-level monitoring
&lt;/li&gt;
&lt;li&gt;Mobile app integration
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Right now, it’s a prototype.&lt;/p&gt;

&lt;p&gt;But the core idea works.&lt;/p&gt;




&lt;p&gt;This project reminded me how fun embedded &lt;a href="https://circuitdigest.com/ai-projects-and-tutorials" rel="noopener noreferrer"&gt;AI Projects&lt;/a&gt; can be when it interacts with the real world.&lt;/p&gt;

&lt;p&gt;Not just detecting things on a screen.&lt;/p&gt;

&lt;p&gt;Actually, moving hardware and solving a real problem.&lt;/p&gt;

&lt;p&gt;And honestly, seeing a servo sort trash correctly after hours of debugging felt weirdly satisfying.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://circuitdigest.com/arduino-projects" rel="noopener noreferrer"&gt;Arduino Projects&lt;/a&gt;&lt;/p&gt;

</description>
      <category>arduino</category>
      <category>tutorial</category>
      <category>ai</category>
    </item>
    <item>
      <title>LiteWing ESP32 Drone with Bluetooth Speaker | Turn Your Drone into a Flying Announcement System</title>
      <dc:creator>David Thomas</dc:creator>
      <pubDate>Thu, 30 Apr 2026 12:10:23 +0000</pubDate>
      <link>https://forem.com/david_thomas/litewing-esp32-drone-with-bluetooth-speaker-turn-your-drone-into-a-flying-announcement-system-3cal</link>
      <guid>https://forem.com/david_thomas/litewing-esp32-drone-with-bluetooth-speaker-turn-your-drone-into-a-flying-announcement-system-3cal</guid>
      <description>&lt;p&gt;Adding new features to a drone is always exciting, especially when it goes beyond just flying.&lt;/p&gt;

&lt;p&gt;In this &lt;a href="https://circuitdigest.com/tutorial/litewing-esp32-drone-with-loudspeaker" rel="noopener noreferrer"&gt;Esp32 Drone with bluetooth speaker&lt;/a&gt; build, we take a LiteWing ESP32 drone and upgrade it with a &lt;strong&gt;Bluetooth speaker system&lt;/strong&gt;, turning it into a flying audio device. That means you can stream voice, music, or alerts directly from your phone while the drone is in the air.&lt;/p&gt;

&lt;p&gt;No coding. No complex setup. Just smart hardware integration.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Makes This Project Interesting
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvdbjx0p7lp5eir7meuuw.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvdbjx0p7lp5eir7meuuw.webp" alt="Hardware-Connections" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most &lt;a href="https://circuitdigest.com/drone-projects" rel="noopener noreferrer"&gt;drone projects&lt;/a&gt; focus on control, stability, or sensors.&lt;/p&gt;

&lt;p&gt;This one focuses on &lt;strong&gt;interaction&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of just flying, your drone can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Announce messages
&lt;/li&gt;
&lt;li&gt;Play music
&lt;/li&gt;
&lt;li&gt;Broadcast alerts
&lt;/li&gt;
&lt;li&gt;Act like a mobile speaker system
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s simple, but surprisingly powerful.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the System Works
&lt;/h2&gt;

&lt;p&gt;The idea is straightforward.&lt;/p&gt;

&lt;p&gt;You connect your phone to a Bluetooth audio module, and that audio gets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Received wirelessly
&lt;/li&gt;
&lt;li&gt;Amplified
&lt;/li&gt;
&lt;li&gt;Played through a speaker mounted on the drone
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meanwhile, the drone continues flying normally.&lt;/p&gt;

&lt;p&gt;Two systems working in parallel:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flight control (ESP32)
&lt;/li&gt;
&lt;li&gt;Audio streaming (Bluetooth module)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No interference between them.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hardware Setup (Simple and Clean)
&lt;/h2&gt;

&lt;p&gt;Here’s what you’ll need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LiteWing ESP32 Drone
&lt;/li&gt;
&lt;li&gt;JDY-62 Bluetooth audio module
&lt;/li&gt;
&lt;li&gt;PAM8403 audio amplifier
&lt;/li&gt;
&lt;li&gt;2W 8Ω speaker
&lt;/li&gt;
&lt;li&gt;Boost converter (3.7V → 5V)
&lt;/li&gt;
&lt;li&gt;Jumper wires
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything is lightweight so it doesn’t affect flight too much.&lt;/p&gt;




&lt;h2&gt;
  
  
  Wiring Overview
&lt;/h2&gt;

&lt;p&gt;The connections are actually beginner friendly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bluetooth module → sends audio signal
&lt;/li&gt;
&lt;li&gt;Amplifier → boosts signal
&lt;/li&gt;
&lt;li&gt;Speaker → outputs sound
&lt;/li&gt;
&lt;li&gt;Boost converter → stabilizes power
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Power comes directly from the drone’s battery through VBUS.&lt;/p&gt;

&lt;p&gt;That’s the key part.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why a Boost Converter Is Important
&lt;/h2&gt;

&lt;p&gt;Drone batteries usually provide around &lt;strong&gt;3.7V&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bluetooth modules
&lt;/li&gt;
&lt;li&gt;Amplifiers
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Need a stable &lt;strong&gt;5V supply&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Without the boost converter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Audio becomes unstable
&lt;/li&gt;
&lt;li&gt;Drone may restart
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So don’t skip this component.&lt;/p&gt;




&lt;h2&gt;
  
  
  How You Use It
&lt;/h2&gt;

&lt;p&gt;Once everything is connected:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Power ON the drone
&lt;/li&gt;
&lt;li&gt;Pair your phone with the Bluetooth module
&lt;/li&gt;
&lt;li&gt;Play any audio
&lt;/li&gt;
&lt;li&gt;Fly the drone
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;Your drone becomes a &lt;strong&gt;flying speaker system&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real Use Cases (This Is Where It Gets Fun)
&lt;/h2&gt;

&lt;p&gt;This isn’t just for experiments.&lt;/p&gt;

&lt;p&gt;You can use it for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Event announcements
&lt;/li&gt;
&lt;li&gt;Campus notifications
&lt;/li&gt;
&lt;li&gt;Safety alerts
&lt;/li&gt;
&lt;li&gt;Advertising
&lt;/li&gt;
&lt;li&gt;Search and rescue communication
&lt;/li&gt;
&lt;li&gt;Creative drone shows
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s basically a mobile PA system in the air.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Engineering Students Will Notice
&lt;/h2&gt;

&lt;p&gt;This project looks simple, but there’s a lot happening underneath.&lt;/p&gt;

&lt;p&gt;You’ll understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Power management in embedded systems
&lt;/li&gt;
&lt;li&gt;Signal flow (input → amplification → output)
&lt;/li&gt;
&lt;li&gt;Weight balancing in drones
&lt;/li&gt;
&lt;li&gt;System integration without software dependency
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s a great example of &lt;strong&gt;hardware-first problem solving&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Issues (And Fixes)
&lt;/h2&gt;

&lt;p&gt;You’ll likely run into these:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drone keeps restarting&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
→ Power is taken from 3.3V instead of VBUS  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No sound output&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
→ Bluetooth not paired or wrong wiring  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drone becomes unstable&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
→ Weight not balanced properly  &lt;/p&gt;

&lt;p&gt;Most problems come down to wiring and power.&lt;/p&gt;




&lt;h2&gt;
  
  
  Design Tip That Actually Matters
&lt;/h2&gt;

&lt;p&gt;Keep the added weight &lt;strong&gt;under 25 grams&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Anything more:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Affects flight stability
&lt;/li&gt;
&lt;li&gt;Reduces battery life
&lt;/li&gt;
&lt;li&gt;Makes control harder
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Always balance components symmetrically.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Project Stands Out
&lt;/h2&gt;

&lt;p&gt;No firmware changes.&lt;br&gt;&lt;br&gt;
No coding required.  &lt;/p&gt;

&lt;p&gt;Just:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smart component selection
&lt;/li&gt;
&lt;li&gt;Clean wiring
&lt;/li&gt;
&lt;li&gt;Practical thinking
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s what makes it perfect for quick builds and demos.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where You Can Take It Next
&lt;/h2&gt;

&lt;p&gt;Once this works, you can expand it easily.&lt;/p&gt;

&lt;p&gt;Try adding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Camera + speaker combo drone
&lt;/li&gt;
&lt;li&gt;Pre-recorded alert system
&lt;/li&gt;
&lt;li&gt;IoT-triggered announcements
&lt;/li&gt;
&lt;li&gt;Multi-drone audio sync
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you’re building real systems, not just projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;Most drone upgrades focus on control or sensors.&lt;/p&gt;

&lt;p&gt;This one focuses on &lt;strong&gt;communication&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And that small shift turns a simple drone into something way more interactive and useful.&lt;/p&gt;

&lt;p&gt;That’s the kind of idea that stands out in projects and demos.&lt;br&gt;
&lt;a href="https://circuitdigest.com/esp32-projects" rel="noopener noreferrer"&gt;ESP32 projects&lt;/a&gt;&lt;/p&gt;

</description>
      <category>esp32</category>
      <category>bluetooth</category>
      <category>diy</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>ESP32-C3 Text-to-Speech Using AI</title>
      <dc:creator>David Thomas</dc:creator>
      <pubDate>Tue, 28 Apr 2026 13:05:35 +0000</pubDate>
      <link>https://forem.com/david_thomas/esp32-c3-text-to-speech-using-ai-3cf5</link>
      <guid>https://forem.com/david_thomas/esp32-c3-text-to-speech-using-ai-3cf5</guid>
      <description>&lt;p&gt;Getting a microcontroller to speak sounds like a fun weekend idea… until you actually try it.&lt;/p&gt;

&lt;p&gt;If you’ve worked with ESP32 or Arduino boards, you already know the limitations. Limited RAM, limited processing, and definitely not designed for heavy audio tasks. That’s exactly why doing text-to-speech directly on the device feels frustrating.&lt;/p&gt;

&lt;p&gt;But here’s the interesting part - you don’t actually need to do it locally.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Text-to-Speech Is Hard on ESP32
&lt;/h2&gt;

&lt;p&gt;On laptops and phones, TTS feels effortless. You type something, and a natural voice reads it out instantly.&lt;/p&gt;

&lt;p&gt;Microcontrollers are a different story.&lt;/p&gt;

&lt;p&gt;They struggle with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Large speech models
&lt;/li&gt;
&lt;li&gt;Real-time audio generation
&lt;/li&gt;
&lt;li&gt;Memory-heavy processing
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So instead of forcing it, we use a smarter approach.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Better Approach: Cloud-Based TTS
&lt;/h2&gt;

&lt;p&gt;This &lt;a href="https://circuitdigest.com/microcontroller-projects/esp32-c3-text-to-speech-using-ai" rel="noopener noreferrer"&gt;ESP32 C3 Text to Speech using AI&lt;/a&gt; project we use &lt;strong&gt;ESP32-C3, WiFi and AI-based speech processing&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of generating audio on the board:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ESP32 sends text to a cloud service
&lt;/li&gt;
&lt;li&gt;The cloud converts it into speech
&lt;/li&gt;
&lt;li&gt;Audio is streamed back
&lt;/li&gt;
&lt;li&gt;ESP32 plays it through a speaker
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Clean. Efficient. Actually usable in real projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the System Works (Simple Flow)
&lt;/h2&gt;

&lt;p&gt;Here’s the full pipeline:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ESP32 connects to WiFi
&lt;/li&gt;
&lt;li&gt;You send text input
&lt;/li&gt;
&lt;li&gt;Text goes to a cloud API (Wit.ai)
&lt;/li&gt;
&lt;li&gt;Audio is generated remotely
&lt;/li&gt;
&lt;li&gt;Audio stream comes back
&lt;/li&gt;
&lt;li&gt;ESP32 plays it using an I2S amplifier
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The board basically acts like a smart audio endpoint.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hardware You’ll Need
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwe751wkjczn2cntg987z.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwe751wkjczn2cntg987z.webp" alt="ESP32 C3 Text to Speech Components" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This build is surprisingly minimal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ESP32-C3 Dev Board
&lt;/li&gt;
&lt;li&gt;MAX98357A I2S Amplifier
&lt;/li&gt;
&lt;li&gt;Speaker (4Ω / 8Ω)
&lt;/li&gt;
&lt;li&gt;Breadboard + wires
&lt;/li&gt;
&lt;li&gt;USB cable
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No SD cards. No external storage. No complicated audio modules.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Setup Works So Well
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0p4cfth73inqz0zc1gk5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0p4cfth73inqz0zc1gk5.webp" alt="ESP32 C3 Text to Speech wiring diagram" width="750" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The key idea is &lt;strong&gt;offloading complexity&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing heavy DSP code
&lt;/li&gt;
&lt;li&gt;Managing audio files
&lt;/li&gt;
&lt;li&gt;Handling synthesis locally
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You let the cloud do all the heavy lifting.&lt;/p&gt;

&lt;p&gt;The ESP32 just:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sends text
&lt;/li&gt;
&lt;li&gt;Receives audio
&lt;/li&gt;
&lt;li&gt;Plays it
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes It Feel Fast
&lt;/h2&gt;

&lt;p&gt;This system uses audio streaming instead of full downloads.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Playback starts instantly&lt;/li&gt;
&lt;li&gt;No large buffers needed&lt;/li&gt;
&lt;li&gt;Lower memory usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It feels real-time, even though everything runs through the cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Use Cases
&lt;/h2&gt;

&lt;p&gt;Once your ESP32 can talk, things get interesting quickly.&lt;/p&gt;

&lt;p&gt;You can build:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Voice alert systems&lt;/li&gt;
&lt;li&gt;Talking IoT dashboards&lt;/li&gt;
&lt;li&gt;Smart home notifications&lt;/li&gt;
&lt;li&gt;Assistive tech for accessibility&lt;/li&gt;
&lt;li&gt;Interactive student projects&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where You Can Take This Next
&lt;/h2&gt;

&lt;p&gt;Once this is working, you’re not far from building something serious.&lt;/p&gt;

&lt;p&gt;Try extending it with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speech recognition (voice input)&lt;/li&gt;
&lt;li&gt;Home automation triggers&lt;/li&gt;
&lt;li&gt;Multilingual voice output&lt;/li&gt;
&lt;li&gt;AI-based assistants&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At that point, you’re basically building your own smart device ecosystem.&lt;/p&gt;

&lt;p&gt;This &lt;a href="https://circuitdigest.com/esp32-projects" rel="noopener noreferrer"&gt;ESP32 project&lt;/a&gt; isn’t built for heavy AI tasks like speech generation.&lt;/p&gt;

&lt;p&gt;But with the right design, it doesn’t have to be.&lt;/p&gt;

&lt;p&gt;You move the complex part to the cloud,&lt;br&gt;
keep the hardware lightweight,&lt;br&gt;
and still get clean, natural voice output.&lt;/p&gt;

&lt;p&gt;That’s how modern embedded systems are actually designed.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tts</category>
      <category>esp32</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Build an Offline ESP32 Voice Assistant (Speech-to-Text Without Internet)</title>
      <dc:creator>David Thomas</dc:creator>
      <pubDate>Fri, 24 Apr 2026 05:50:48 +0000</pubDate>
      <link>https://forem.com/david_thomas/build-an-offline-esp32-voice-assistant-speech-to-text-without-internet-12em</link>
      <guid>https://forem.com/david_thomas/build-an-offline-esp32-voice-assistant-speech-to-text-without-internet-12em</guid>
      <description>&lt;p&gt;Voice control is everywhere now.&lt;br&gt;&lt;br&gt;
From smart homes to simple DIY automation, talking to devices just feels natural.&lt;/p&gt;

&lt;p&gt;But here’s the thing…&lt;br&gt;&lt;br&gt;
Most voice projects depend heavily on the internet.&lt;/p&gt;

&lt;p&gt;This one doesn’t.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Project Is About
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0a0fut8qzere2afajom.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0a0fut8qzere2afajom.webp" alt="ESP32 Voice Control Using Edge Impulse Project" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this build, we create an &lt;strong&gt;&lt;a href="https://circuitdigest.com/microcontrollers-projects/esp32-offline-voice-recognition-using-edge-impulse" rel="noopener noreferrer"&gt;ESP32 voice recognition&lt;/a&gt;&lt;/strong&gt; that works completely offline.&lt;/p&gt;

&lt;p&gt;No APIs.&lt;br&gt;&lt;br&gt;
No cloud calls.&lt;br&gt;&lt;br&gt;
No latency from network delays.&lt;/p&gt;

&lt;p&gt;Just your ESP32 listening, understanding, and responding in real time. &lt;/p&gt;




&lt;h2&gt;
  
  
  Why Offline Voice Recognition Matters
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g5gfd96afkaqsllykx3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g5gfd96afkaqsllykx3.png" alt="Signup Login to Edge Impulse" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A lot of projects rely on cloud services for speech recognition.&lt;/p&gt;

&lt;p&gt;That works fine… until:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your WiFi drops
&lt;/li&gt;
&lt;li&gt;API limits hit
&lt;/li&gt;
&lt;li&gt;Privacy becomes a concern
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Offline systems solve all of that.&lt;/p&gt;

&lt;p&gt;Everything runs locally on the ESP32, which means faster response and full control.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Actually Works
&lt;/h2&gt;

&lt;p&gt;The process is simpler than it sounds.&lt;/p&gt;

&lt;p&gt;Your microphone captures audio.&lt;br&gt;&lt;br&gt;
The ESP32 processes it using a trained ML model.&lt;br&gt;&lt;br&gt;
That audio gets converted into text (commands).&lt;br&gt;&lt;br&gt;
Then your code decides what to do next.&lt;/p&gt;

&lt;p&gt;Just like a mini Alexa, but running entirely on your board.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Cool Part: Edge Impulse
&lt;/h2&gt;

&lt;p&gt;Instead of writing complex ML code from scratch, this project uses &lt;strong&gt;Edge Impulse&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dataset processing
&lt;/li&gt;
&lt;li&gt;Model training
&lt;/li&gt;
&lt;li&gt;Optimization for microcontrollers
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You just:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload audio data
&lt;/li&gt;
&lt;li&gt;Train your model
&lt;/li&gt;
&lt;li&gt;Export it as an Arduino library
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And boom… your ESP32 understands voice.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hardware Setup
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frgztctr5hgvl9w6ziw1d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frgztctr5hgvl9w6ziw1d.png" alt="ESP32 Voice Control Project Circuit diagram" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You don’t need a complicated setup here.&lt;/p&gt;

&lt;p&gt;Just:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ESP32
&lt;/li&gt;
&lt;li&gt;INMP441 microphone
&lt;/li&gt;
&lt;li&gt;A couple of LEDs
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s enough to build a working voice-controlled system.&lt;/p&gt;




&lt;h2&gt;
  
  
  Workflow in Real Life
&lt;/h2&gt;

&lt;p&gt;This is how the system behaves when running:&lt;/p&gt;

&lt;p&gt;You say a wake word like &lt;strong&gt;“Marvin”&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The ESP32 enters listening mode&lt;br&gt;&lt;br&gt;
You say &lt;strong&gt;“on”&lt;/strong&gt; or &lt;strong&gt;“off”&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The device executes the command instantly  &lt;/p&gt;

&lt;p&gt;It feels surprisingly responsive.&lt;/p&gt;




&lt;h2&gt;
  
  
  Code Logic (Simplified)
&lt;/h2&gt;

&lt;p&gt;The code is structured into a few key parts.&lt;/p&gt;

&lt;p&gt;Audio is captured continuously.&lt;br&gt;&lt;br&gt;
The ML model processes it in chunks.&lt;br&gt;&lt;br&gt;
Each word gets a confidence score.  &lt;/p&gt;

&lt;p&gt;Only high-confidence commands trigger actions, which avoids random false triggers.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why It Feels Fast
&lt;/h2&gt;

&lt;p&gt;Since everything runs locally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No API calls
&lt;/li&gt;
&lt;li&gt;No waiting for responses
&lt;/li&gt;
&lt;li&gt;No network dependency
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Latency stays super low (around a few hundred milliseconds).&lt;/p&gt;

&lt;p&gt;That’s what makes it feel “real-time”.&lt;/p&gt;




&lt;h2&gt;
  
  
  What You Learn From This Project
&lt;/h2&gt;

&lt;p&gt;This isn’t just another LED control project.&lt;/p&gt;

&lt;p&gt;You’ll actually get hands-on with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Embedded machine learning
&lt;/li&gt;
&lt;li&gt;Audio signal processing
&lt;/li&gt;
&lt;li&gt;Real-time inference
&lt;/li&gt;
&lt;li&gt;Hardware + software integration
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basically, skills that go way beyond basic Arduino projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Challenges (Real Talk)
&lt;/h2&gt;

&lt;p&gt;You might run into a few things while building:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Poor accuracy → dataset needs improvement
&lt;/li&gt;
&lt;li&gt;Noise issues → microphone placement matters
&lt;/li&gt;
&lt;li&gt;Wrong triggers → adjust confidence threshold
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of these are easy fixes once you understand what’s happening.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where You Can Take This Next
&lt;/h2&gt;

&lt;p&gt;Once this works, you can level it up fast.&lt;/p&gt;

&lt;p&gt;Try adding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More commands
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://circuitdigest.com/home-automation-projects" rel="noopener noreferrer"&gt;Home automation&lt;/a&gt; controls
&lt;/li&gt;
&lt;li&gt;Voice-controlled robots
&lt;/li&gt;
&lt;li&gt;Smart assistants for your desk
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project is just the starting point.&lt;/p&gt;




&lt;p&gt;Building a voice assistant that works offline feels different.&lt;/p&gt;

&lt;p&gt;It’s faster.&lt;br&gt;&lt;br&gt;
More reliable.&lt;br&gt;&lt;br&gt;
And honestly, way more satisfying to build.&lt;/p&gt;

&lt;p&gt;Once you see your ESP32 respond to your voice without the internet…&lt;br&gt;&lt;br&gt;
you’ll realize how powerful edge AI actually is.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://circuitdigest.com/esp32-projects" rel="noopener noreferrer"&gt;ESP32 Projects&lt;/a&gt;&lt;/p&gt;

</description>
      <category>esp32</category>
      <category>voiceassistant</category>
      <category>speechtotext</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Raspberry Pi Pico Text-to-Speech (TTS) with WiFi – Cloud-Based Voice Output Guide</title>
      <dc:creator>David Thomas</dc:creator>
      <pubDate>Mon, 20 Apr 2026 12:08:52 +0000</pubDate>
      <link>https://forem.com/david_thomas/raspberry-pi-pico-text-to-speech-tts-with-wifi-cloud-based-voice-output-guide-11p1</link>
      <guid>https://forem.com/david_thomas/raspberry-pi-pico-text-to-speech-tts-with-wifi-cloud-based-voice-output-guide-11p1</guid>
      <description>&lt;p&gt;Getting a microcontroller to talk sounds cool… until you actually try it.&lt;/p&gt;

&lt;p&gt;Most of us assume it’s just “convert text to audio and play it.”&lt;br&gt;&lt;br&gt;
But when you try doing that on something like a Raspberry Pi Pico, you quickly hit limitations.&lt;/p&gt;

&lt;p&gt;That’s where this project &lt;a href="https://circuitdigest.com/microcontroller-projects/raspberry-pi-pico-text-to-speech-using-ai" rel="noopener noreferrer"&gt;Raspberry Pi Pico Text to Speech using AI&lt;/a&gt; becomes interesting.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Text-to-Speech Is Hard on Microcontrollers
&lt;/h2&gt;

&lt;p&gt;Text-to-Speech (TTS) isn’t just reading text aloud.&lt;/p&gt;

&lt;p&gt;There’s a full pipeline behind it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text processing
&lt;/li&gt;
&lt;li&gt;Sound generation
&lt;/li&gt;
&lt;li&gt;Voice shaping
&lt;/li&gt;
&lt;li&gt;Audio playback
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On a laptop or phone, this is easy.&lt;/p&gt;

&lt;p&gt;On a microcontroller? Not really.&lt;/p&gt;

&lt;p&gt;Limited RAM, low processing power, and no native audio engine make local TTS impractical.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Smart Approach: Cloud-Based TTS
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdi1x6h35f3pxm8nddwqt.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdi1x6h35f3pxm8nddwqt.webp" alt="WitAi Homepage" width="750" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of forcing the Pico to do everything, we offload the heavy work.&lt;/p&gt;

&lt;p&gt;Here’s the idea:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pico sends text to a cloud service
&lt;/li&gt;
&lt;li&gt;Cloud converts it into speech
&lt;/li&gt;
&lt;li&gt;Audio is streamed back
&lt;/li&gt;
&lt;li&gt;Pico just plays it
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Simple, efficient, and actually usable in real projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Powers This Setup?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2a39hydqdc789pdiezak.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2a39hydqdc789pdiezak.webp" alt="Rpi Pico WitAITTS wiring Diagram" width="750" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This project uses &lt;strong&gt;Wit.ai&lt;/strong&gt;, a cloud-based AI platform.&lt;/p&gt;

&lt;p&gt;It handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speech generation
&lt;/li&gt;
&lt;li&gt;Language processing
&lt;/li&gt;
&lt;li&gt;Audio formatting
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All your Pico does is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Send a request
&lt;/li&gt;
&lt;li&gt;Receive audio
&lt;/li&gt;
&lt;li&gt;Play it through a speaker
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hardware Setup (Quick Overview)
&lt;/h2&gt;

&lt;p&gt;You don’t need much to get started.&lt;/p&gt;

&lt;p&gt;Just:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Raspberry Pi Pico W
&lt;/li&gt;
&lt;li&gt;MAX98357A I2S amplifier
&lt;/li&gt;
&lt;li&gt;Speaker
&lt;/li&gt;
&lt;li&gt;Basic wiring
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The amplifier is important because the Pico can’t directly drive a speaker.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the System Works
&lt;/h2&gt;

&lt;p&gt;The flow is actually clean once you understand it.&lt;/p&gt;

&lt;p&gt;You type a sentence.&lt;br&gt;&lt;br&gt;
The Pico sends it over WiFi.&lt;br&gt;&lt;br&gt;
The cloud processes it.&lt;br&gt;&lt;br&gt;
Audio comes back.&lt;br&gt;&lt;br&gt;
And your device literally speaks.&lt;/p&gt;

&lt;p&gt;It feels like magic the first time it works.&lt;/p&gt;




&lt;h2&gt;
  
  
  Code Logic (What’s Happening Behind the Scenes)
&lt;/h2&gt;

&lt;p&gt;The code revolves around a simple flow.&lt;/p&gt;

&lt;p&gt;You initialize the TTS engine.&lt;br&gt;&lt;br&gt;
Connect to WiFi.&lt;br&gt;&lt;br&gt;
Authenticate with the API.&lt;br&gt;&lt;br&gt;
Then call one function to speak.&lt;/p&gt;

&lt;p&gt;That one function handles everything:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sending text
&lt;/li&gt;
&lt;li&gt;Receiving audio
&lt;/li&gt;
&lt;li&gt;Streaming playback
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Minimal code, maximum output.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Method Works So Well
&lt;/h2&gt;

&lt;p&gt;There are a few big advantages here.&lt;/p&gt;

&lt;p&gt;First, you get &lt;strong&gt;high-quality voice output&lt;/strong&gt; without heavy hardware.&lt;br&gt;&lt;br&gt;
Second, the system stays lightweight and easy to maintain.&lt;br&gt;&lt;br&gt;
Third, you can change voices or languages without rewriting code.&lt;/p&gt;

&lt;p&gt;That’s a huge win for embedded projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-World Use Cases
&lt;/h2&gt;

&lt;p&gt;Once you build this, ideas start coming fast.&lt;/p&gt;

&lt;p&gt;You can use it for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smart home voice alerts
&lt;/li&gt;
&lt;li&gt;Talking IoT devices
&lt;/li&gt;
&lt;li&gt;Assistive tech for accessibility
&lt;/li&gt;
&lt;li&gt;Interactive kiosks
&lt;/li&gt;
&lt;li&gt;Notification systems
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basically, anything that needs audio feedback.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Issues You Might Hit
&lt;/h2&gt;

&lt;p&gt;Let’s be honest, it won’t work perfectly on the first try.&lt;/p&gt;

&lt;p&gt;Typical problems include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No sound → wiring or power issue
&lt;/li&gt;
&lt;li&gt;API error → wrong token
&lt;/li&gt;
&lt;li&gt;Laggy audio → weak WiFi
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most issues are hardware or network related, not code.&lt;/p&gt;




&lt;h2&gt;
  
  
  What You Actually Learn From This Project
&lt;/h2&gt;

&lt;p&gt;This isn’t just a “make it talk” project.&lt;/p&gt;

&lt;p&gt;You end up learning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API integration in embedded systems
&lt;/li&gt;
&lt;li&gt;WiFi-based communication
&lt;/li&gt;
&lt;li&gt;Streaming data handling
&lt;/li&gt;
&lt;li&gt;Audio interfacing (I2S)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are real-world skills.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where You Can Take This Next
&lt;/h2&gt;

&lt;p&gt;Once the basics are working, you can level it up.&lt;/p&gt;

&lt;p&gt;Add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Voice commands (Speech-to-Text)
&lt;/li&gt;
&lt;li&gt;Multi-language support
&lt;/li&gt;
&lt;li&gt;Cached responses for offline mode
&lt;/li&gt;
&lt;li&gt;Integration with MQTT or Home Assistant
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you're building full voice-enabled systems.&lt;/p&gt;




&lt;p&gt;The Raspberry Pi Pico isn’t built for heavy AI tasks.&lt;/p&gt;

&lt;p&gt;But with the right approach, it doesn’t need to be.&lt;/p&gt;

&lt;p&gt;By combining simple hardware with powerful cloud services, you can build systems that feel way more advanced than they actually are.&lt;/p&gt;

&lt;p&gt;And honestly, hearing your &lt;a href="https://circuitdigest.com/simple-raspberry-pi-projects-for-beginners" rel="noopener noreferrer"&gt;Raspberry Pi project&lt;/a&gt; speak for the first time never gets old.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tutorial</category>
      <category>raspberrypi</category>
      <category>tts</category>
    </item>
  </channel>
</rss>
