Category: IoT

  • Advanced Analog Input Management for ESP32, Now Available!

    Advanced Analog Input Management for ESP32, Now Available!

    We’re excited to announce the launch of our latest library, AvantAnalogRead! Following the release of our digital input library, AvantDigitalRead, we’re taking another step forward in simplifying and enhancing your ESP32 projects. This time, we’re focusing on the often complex world of analog inputs.

    Just like AvantDigitalRead made handling buttons and digital sensors a breeze, AvantAnalogRead is here to transform how you work with potentiometers, analog sensors, and variable resistors. Say goodbye to messy analog input code and hello to clean, reliable, and feature-rich data acquisition!

    Why AvantAnalogRead?

    If you’ve ever tried to read data from a potentiometer or an analog sensor on an ESP32, you know it can be tricky. Noise, unstable readings, and false triggers can make your project unreliable. AvantAnalogRead solves these problems by providing a powerful, yet easy-to-use library that handles the heavy lifting for you.

    Whether you’re building a smart home controller, a robotics platform, or an IoT sensor node, AvantAnalogRead gives you the tools to manage analog inputs with confidence and precision.

    Key Features That Make a Difference

    AvantAnalogRead is packed with features designed to make analog input management as smooth as possible:

    • Multi-pin Management: Dynamically add and remove pins for unified control over multiple analog inputs.
    • Built-in Debouncing: Customizable debounce time to ensure stable and reliable readings.
    • Smart Threshold Detection: Configurable thresholds with gap control to prevent false triggers.
    • Software Filtering: Built-in moving average filter to reduce noise and smooth out your data.
    • Rich Event Detection: Detects value changes, rising/falling trends, and threshold crossings.
    • Non-blocking Design: Keeps your main program flow running smoothly.
    • Unified Callback System: Simplifies your code with a consistent and intuitive API.

    A Quick Example

    Imagine you’re building a custom user interface with potentiometer to control various settings. Without AvantAnalogRead, you’d need to write complex code to handle noise, debouncing, and event detection for each pin. With AvantAnalogRead, it’s as simple as:

    
    #include <AvantAnalogRead.h>
    
    // Create AvantAnalogRead object to handle analog input monitoring
    AvantAnalogRead analogReader;
    
    void setup() {
      // Initialize serial communication at 115200 baud rate
      Serial.begin(115200);
      delay(1000);  // Wait for serial to stabilize
      
      // Print example title and separator
      Serial.println("AvantAnalogRead Library Example: Using onChange function");
      Serial.println("=====================================");
      
      // Initialize pin 33 for analog input monitoring
      if (analogReader.addPin(33)) {
        Serial.println("Pin 33 initialization successful!");
        
        // Set debounce time to 100 milliseconds to prevent rapid successive triggers
        analogReader.setDebounceTime(33, 100);
        
        // Set threshold gap to 30 to avoid triggering events with minor fluctuations
        // This means the value must change by at least 30 units to trigger an event
        analogReader.setThresholdGap(33, 30);
        
        // Enable software filtering to reduce noise (filter size of 5)
        // This averages multiple readings to provide more stable values
        if (analogReader.enableFilter(33, 5)) {
          Serial.println("Software filtering enabled for pin 33!");
        } else {
          Serial.println("Failed to enable software filtering for pin 33!");
        }
        
        // Register onChange callback function to be called when pin value changes
        // The callback will be triggered when the value changes beyond the threshold
        if (analogReader.onChange(33, onPinChange)) {
          Serial.println("onChange callback function registered successfully!");
        } else {
          Serial.println("onChange callback function registration failed!");
        }
      } else {
        Serial.println("Pin 33 initialization failed!");
      }
      
      Serial.println("Starting to monitor analog input on pin 33...");
      Serial.println("=====================================");
    }
    
    void loop() {
      // Update all pin states and detect events
      analogReader.update();
      
      // Read and display current value once per second (for demonstration only, adjust as needed in actual applications)
      // This helps visualize the current analog value but is not required for the onChange functionality
      static unsigned long lastPrintTime = 0;
      if (millis() - lastPrintTime >= 1000) {
        int currentValue = analogReader.readPin(33);
        if (currentValue >= 0) {
          Serial.printf("Current pin 33 reading: %d\n", currentValue);
        } else {
          Serial.println("Failed to read pin 33!");
        }
        lastPrintTime = millis();
      }
      
      // Short delay to avoid excessive CPU usage
      delay(10);
    }
    
    
    // Callback function: Called when pin value changes beyond the threshold
    // This function is automatically triggered when the analog value changes by more than the threshold gap
    // Parameters:
    //   pin: The pin number that triggered the event
    //   value: The current analog value (0-4095)
    //   event: The type of event that occurred
    void onPinChange(int pin, int value, EventType event) {
      Serial.printf("Pin %d value changed! Current value: %d", pin, value);
      Serial.println();
    }

    This code sets up a pin, handles debouncing and filtering, and detects value changes—all with minimal effort. It’s the analog counterpart to the simplicity you loved in AvantDigitalRead!

    Perfect for Your Creative Projects

    AvantAnalogRead is ideal for a wide range of applications:

    • Interactive User Interfaces: Create smooth, responsive controls with potentiometers.
    • Sensor Data Acquisition: Read analog sensors (like temperature, light, or pressure) with confidence.
    • IoT Devices: Send stable, filtered data to the cloud or a local broker.
    • Robotics: Read analog feedback from sensors and actuators.
    • AI & Machine Learning: Provide clean data streams for edge computing projects.

    Get Started Today!

    Ready to elevate your ESP32 analog input game? Getting started with AvantAnalogRead is easy:

    1. Manual Installation: Download the ZIP from our GitHub repository and add it to your IDE.
    2. Direct Integration: Copy the source files into your project folder.

    We’ve included a variety of example sketches to get you up and running quickly, from basic value monitoring to complex IoT integrations.

    What’s Next?

    AvantAnalogRead is just the beginning. We’re already working on exciting new features, including enhanced filtering options and deeper integration with our other libraries like AvantDigitalRead and AvantPinSet. Stay tuned for upcoming tutorials where we’ll showcase real-world projects, from smart home automation to AI-driven sensor networks.

    We can’t wait to see what amazing projects you’ll create with AvantAnalogRead. Got ideas for new features or cool builds? Share them with us on GitHub or drop us a line!

    Happy Making!

  • AvantDigitalRead: Elevate Your ESP32 Projects with Smart Input Handling

    AvantDigitalRead: Elevate Your ESP32 Projects with Smart Input Handling

    We are excited to unveil the latest addition to the AvantMaker family of ESP32 Arduino libraries: AvantDigitalRead, a powerful and versatile library designed to revolutionize digital input management on the ESP32. Crafted with makers, hobbyists, and developers in mind, AvantDigitalRead enhances the standard Arduino digitalRead functionality, offering advanced features like multi-pin management, event detection, and sophisticated gesture recognition.

    What’s AvantDigitalRead All About?

    AvantDigitalRead is a comprehensive solution for managing digital inputs on the ESP32. Whether you’re building interactive user interfaces, handling sensor data, or creating complex IoT devices, this library simplifies the process with a clean, intuitive interface. It takes the hassle out of debouncing, event handling, and gesture detection, allowing you to focus on bringing your creative projects to life.

    Key features include:

    • Multi-pin Management: Easily add or remove pins for unified control.
    • Built-in Debouncing: Customizable debounce times for reliable input readings.
    • Rich Event Detection: Detect state changes, rising edges, and falling edges with ease.
    • Advanced Button Gestures: Recognize single-press, double-press, and long-press events with configurable timings.
    • Non-Blocking Design: Keep your loop() clean and responsive.
    • Unified Callback Format: Simplify your code with consistent event handling.

    This library is perfect for a wide range of applications, including:

    • Interactive Interfaces: Create responsive buttons and switches for user controls.
    • Sensor Integration: Reliably read data from sensors in IoT projects.
    • Smart Devices: Build intuitive controls for home automation and robotics.

    Why We Built AvantDigitalRead

    At AvantMaker, our mission is to empower the maker community with tools that are both powerful and accessible. We recognized that managing digital inputs on the ESP32 often involves repetitive, error-prone code for debouncing and event detection. AvantDigitalRead abstracts away this complexity, providing a robust, non-blocking solution that ensures stable input handling and simplifies gesture recognition.

    This library is designed to be a cornerstone for our upcoming ESP32 tutorials, particularly those integrating hardware control with IoT and AI applications. With AvantDigitalRead, you can build reliable, responsive projects with confidence, freeing you to experiment and innovate.

    A Glimpse of What You Can Do

    Imagine creating a smart device that detects a single button press to toggle a light, a double press to adjust brightness, or a long press to activate a special mode. With AvantDigitalRead, these complex interactions become simple and reliable.

    Here’s a quick example to demonstrate its power:

    
    #include "AvantDigitalRead.h"
    
    // Define the pin to monitor
    #define BUTTON_PIN 5 
    
    // Create an instance of AvantDigitalRead
    AvantDigitalRead pinManager;
    
    void setup() {
      // Initialize serial communication
      Serial.begin(115200);
      while (!Serial) {
        ; // Wait for serial port to connect
      }
      
      // Print welcome message
      Serial.println("BasicButtonMonitor Example Starting...");
      Serial.print("Monitoring pin for button presses: ");
      Serial.println(BUTTON_PIN);
      Serial.println("Press the button to see single/double/long press notifications.");
      Serial.println("----------------------------------------");
      
      // Initialize the pin to monitor
      if (pinManager.addPin(BUTTON_PIN, INPUT_PULLUP)) {
        Serial.println("Pin initialized successfully");
      } else {
        Serial.println("Failed to initialize pin");
        while (1) {
          delay(100); // Halt execution if pin initialization fails
        }
      }
      
      // Set debounce time to prevent false triggers (30 milliseconds)
      pinManager.setDebounceTime(BUTTON_PIN, 30);
      
      // Set click parameters (optional, using default values here)
      // pinManager.setClickParameters(BUTTON_PIN, 50, 300, 500);
      // Parameters: minPressMs, maxPressMs, maxIntervalMs
      
      // Set long press duration (optional, default is 1000ms)
      // pinManager.setLongPressDuration(BUTTON_PIN, 1000);
      
      // Register the callback functions for single, double, and long press events
      pinManager.onSinglePress(BUTTON_PIN, singlePressCallback);
      pinManager.onDoublePress(BUTTON_PIN, doublePressCallback);
      pinManager.onLongPress(BUTTON_PIN, longPressCallback);
      
      Serial.println("Ready for input.");
      Serial.println("----------------------------------------");
    }
    
    void loop() {
      // Must call update() regularly to process events
      pinManager.update();
      
      // Small delay to prevent excessive CPU usage
      delay(10);
    }
    
    
    // Callback function for single press events
    void singlePressCallback(int pin, PinState newState, PinState oldState, 
                            EventType event, unsigned long timestamp) {
      // Print pin information
      Serial.print("Pin ");
      Serial.print(pin);
      Serial.print(" SINGLE PRESS detected: ");
      Serial.print(oldState);
      Serial.print(" -> ");
      Serial.print(newState);
      
      // Print timestamp
      Serial.print(" at ");
      Serial.print(timestamp);
      Serial.println(" ms");
      
      // Additional information
      Serial.println("  Event: Button pressed and released once");
    }
    
    // Callback function for double press events
    void doublePressCallback(int pin, PinState newState, PinState oldState, 
                            EventType event, unsigned long timestamp) {
      // Print pin information
      Serial.print("Pin ");
      Serial.print(pin);
      Serial.print(" DOUBLE PRESS detected: ");
      Serial.print(oldState);
      Serial.print(" -> ");
      Serial.print(newState);
      
      // Print timestamp
      Serial.print(" at ");
      Serial.print(timestamp);
      Serial.println(" ms");
      
      // Additional information
      Serial.println("  Event: Button pressed and released twice in quick succession");
    }
    
    // Callback function for long press events
    void longPressCallback(int pin, PinState newState, PinState oldState, 
                          EventType event, unsigned long timestamp) {
      // Print pin information
      Serial.print("Pin ");
      Serial.print(pin);
      Serial.print(" LONG PRESS detected: ");
      Serial.print(oldState);
      Serial.print(" -> ");
      Serial.print(newState);
      
      // Print timestamp
      Serial.print(" at ");
      Serial.print(timestamp);
      Serial.println(" ms");
      
      // Additional information
      Serial.println("  Event: Button held down for extended duration");
    }

    What’s Next for AvantDigitalRead?

    This is just the beginning! AvantDigitalRead will play a key role in our upcoming ESP32 Arduino tutorials, where we’ll showcase its integration with AI-powered projects and IoT applications.

    Our goal is to make AvantDigitalRead the go-to library for ESP32 digital input management, empowering makers to create more intuitive and responsive projects.

    Get Started Today!

    Ready to streamline your digital input code and unlock new possibilities? Head over to the AvantDigitalRead GitHub Repository to download the library, explore the examples, and dive into the full API documentation.

    You can install AvantDigitalRead via the Arduino IDE Library Manager, or download the ZIP file for manual installation. Check out the “Quick Start” section in the README for step-by-step instructions.

    We encourage you to try AvantDigitalRead in your projects, experiment with its features, and share your feedback. Your input helps us improve and grow—feel free to open issues, suggest features, or contribute to the project.

    Explore our growing collection of libraries and tutorials at the AvantMaker GitHub or dive into our resources at AvantMaker.com.

    Happy Making! 🛠️✨

  • Announcing AvantPinSet: The Ultimate ESP32 Pin Control Library for Makers

    Announcing AvantPinSet: The Ultimate ESP32 Pin Control Library for Makers

    We are thrilled to introduce the newest addition to the AvantMaker family of libraries: AvantPinSet, a powerful and intuitive Arduino library designed to simplify GPIO pin management for the ESP32. AvantPinSet is engineered to make your projects more responsive, dynamic, and easier to code.

    What’s AvantPinSet All About?

    AvantPinSet is a comprehensive solution for managing multiple ESP32 pins with a wide range of functionalities. It provides a clean, unified interface for digital I/O, PWM control, and sophisticated timed and fading operations. Say goodbye to complex millis() logic and tangled code—AvantPinSet handles the low-level details so you can focus on bringing your creative ideas to life.

    This library is perfect for a variety of applications, including:

    • Home Automation: Effortlessly manage relays, sensors, and switches.
    • Custom Lighting: Create smooth, elegant PWM fading effects for LEDs.
    • Robotics: Control motors and actuators with precision.

    Why We Built AvantPinSet

    At AvantMaker, our mission is to empower the maker community with tools that are both powerful and easy to use. We noticed that many ESP32 projects involve repetitive and often complex code for managing pin states, especially for timed events. We created AvantPinSet to abstract away that complexity, providing a robust, non-blocking solution that keeps your loop() clean and your projects running smoothly.

    This library is designed to be a foundational tool for many of our upcoming tutorials, especially those that integrate hardware control with AI and IoT applications. With AvantPinSet, you can build a solid, reliable foundation for your projects, allowing you to experiment and innovate with confidence.

    A Glimpse of What You Can Do

    Imagine creating a smart home device that turns on a light, waits a few seconds, and then gently fades it out. Or a robot that moves a servo, holds its position, and then returns to its starting point. With AvantPinSet, these complex sequences become simple, readable, and reliable.

    Here’s a quick example to show you just how easy it is:

    #include <AvantPinSet.h>
    
    // Define the pins you want to manage
    int myPinList[] = {2, 4, 27};
    const int numPins = 3;
    
    // Create an instance of the library
    AvantPinSet myPins(myPinList, numPins);
    
    // Optional callback for when timed actions complete
    void actionComplete(int pinNum) {
      Serial.printf("Action on pin %d has completed!\n", pinNum);
    }
    
    void setup() {
      Serial.begin(115200);
    
      // Set pin 2 HIGH immediately
      myPins.digitalSet(2, HIGH);
    
      // Set pin 4 HIGH, then revert to LOW after 3 seconds
      myPins.digitalSetTime(4, HIGH, 3, actionComplete);
    
      // Set pin 27 to 50% PWM, hold for 5 seconds, then fade to 0
      myPins.pwmFadeTime(27, 128, 0, 5, actionComplete);
    }
    
    void loop() {
      // This single line handles all the magic!
      myPins.update();
    }

    What’s Next for AvantPinSet?

    This is just the beginning! We have big plans for AvantPinSet. We will be showcasing Artificial Intelligence-powered projects that leverage this library for sophisticated hardware control.

    Furthermore, AvantPinSet will become a core component in the projects featured in our ESP32 Arduino Tutorials, providing a practical and powerful tool for learners. We are committed to expanding its capabilities with more advanced features, including complex sequences and tighter integration with our other libraries. Our goal is to make AvantPinSet the go-to library for ESP32 pin management.

    Get Started Today!

    Ready to simplify your pin control code and unlock new possibilities? Head over to the AvantPinSet GitHub Repository to download the library, explore the examples, and read the full API documentation.

    We encourage you to try it out in your projects, experiment with its features, and see how much easier your hardware projects can be. Your feedback is invaluable, so feel free to open issues, suggest features, or contribute to the project.

    Explore our growing collection of libraries and tutorials at the AvantMaker GitHub or dive into our resources at AvantMaker.com.

    Happy Making! 🛠️✨

  • ESP32_AI_Connect: Version 0.5.1 Released

    ESP32_AI_Connect: Version 0.5.1 Released

    We are excited to announce the first official release of ESP32_AI_Connect, an Arduino library that makes it easy to connect your ESP32 projects to powerful AI APIs. This library is designed for IoT applications, providing a unified and memory-efficient way to integrate AI into your devices.

    ESP32_AI_Connect library is available on GitHub. Visit the ESP32_AI_Connect GitHub repository to download the latest version, explore the documentation, and try out example codes that showcase streaming in action.

    Key Features in This Release

    • Broad AI Platform Support: Seamlessly connect to a variety of major AI providers:
      • OpenAI
      • Google Gemini
      • Anthropic Claude
      • DeepSeek
      • OpenAI-Compatible endpoints (including Hugging Face, Qwen, and more)
    • Advanced Tool Calling: Empower your AI models to interact with the real world by calling functions on your ESP32. This feature enables:
      • Two-way communication between the AI and your hardware.
      • Structured data exchange for easy parsing of commands and results.
      • Custom function definitions tailored to your project’s needs.
    • Real-Time Streaming Chat: Create more natural and interactive user experiences with real-time, word-by-word responses from the AI.
    • Optimized for ESP32: The library is designed with the memory constraints of the ESP32 in mind. Features like shared JSON buffers and the ability to disable unused platforms help to minimize the library’s footprint.
    • Modular and Expandable: The architecture of ESP32_AI_Connect is designed to be easily extended, allowing for the addition of new AI platforms and features in the future.

    Getting Started

    To begin using ESP32_AI_Connect, please refer to the detailed User Guide available in the project’s README.

    Important Dependency: This library requires the ArduinoJson library (version 7.0.0 or higher) to be installed in your Arduino environment.

    Future Development

    We are actively working on improving and expanding the capabilities of ESP32_AI_Connect. In future releases, we plan to:

    • Add support for even more AI platforms.
    • Enhance the tool-calling and function-handling capabilities.
    • Continue to optimize for performance and memory efficiency.

    Thank you for your interest in ESP32_AI_Connect. We are excited to see the innovative projects you will build with it!

  • ESP32_AI_Connect Library Adds Streaming Support for Real-Time AI Interaction

    ESP32_AI_Connect Library Adds Streaming Support for Real-Time AI Interaction

    The AvantMaker team has just rolled out an exciting update to the ESP32_AI_Connect library, introducing streaming support for real-time communication with large language models like OpenAI, DeepSeek, Gemini, and Claude. This update brings a dynamic, conversation-like experience to ESP32-based projects, making AI integration more responsive and engaging.

    What is Streaming Chat?

    Streaming chat enables real-time interaction with AI models by delivering responses as they are generated, rather than waiting for the entire output. This creates a more natural and engaging user experience, mimicking the flow of a live conversation. With this update, the ESP32_AI_Connect library leverages streaming to bring cutting-edge AI capabilities to the resource-constrained ESP32 platform.

    New Streaming Features

    The latest update equips the ESP32_AI_Connect library with powerful streaming capabilities, optimized for IoT and embedded systems. Key features include:

    • Real-time Response: See AI responses as they are generated, word by word.
    • Interactive Experience: More natural, conversation-like interaction.
    • Immediate Feedback: Get instant responses without waiting for complete generation.
    • User Control: Interrupt or stop responses at any time.
    • Performance Metrics: Monitor streaming performance with detailed statistics.
    • Multi-platform Support: Works with OpenAI, Claude, Gemini, DeepSeek, and Open-Compatible platforms.
    • Thread-safe Design: Built on FreeRTOS primitives for reliable operation.
    • Memory Efficient: Optimized for ESP32’s limited resources.

    This update builds upon the foundation of the ESP32_AI_Connect library, which aims to simplify the integration of AI into embedded projects. As highlighted in AvantMaker’s previous articles (you can read more here and about Tool Calling features here), the library strives to provide a user-friendly and efficient way to leverage the power of AI in your microcontroller applications.

    Explore the Update

    Ready to bring real-time AI to your ESP32 projects? The updated ESP32_AI_Connect library is available now on GitHub. Visit the ESP32_AI_Connect GitHub repository to download the latest version, explore the documentation, and try out example codes that showcase streaming in action.

  • ESP32_AI_Connect Library Unveils New Tool Calling Features

    ESP32_AI_Connect Library Unveils New Tool Calling Features

    Our ESP32_AI_Connect library has just received an update, introducing new tool calling features that significantly enhance its capabilities. This open-source library, designed to integrate AI functionalities into ESP32 microcontrollers.

    What’s New: Tool Calling Features

    The latest update to the ESP32_AI_Connect library adds robust tool calling capabilities, allowing developers to seamlessly integrate external functions and tools into their AI-driven ESP32 projects. This feature enables the ESP32 to dynamically interact with APIs, control hardware peripherals, or execute custom functions based on AI model outputs, making it easier to create sophisticated, responsive applications.

    With tool calling, developers can now:

    • Invoke external APIs directly from the ESP32 to fetch real-time data, such as weather or stock updates.
    • Control connected devices, like motors or sensors, based on AI-driven decisions.
    • Extend AI model capabilities by integrating custom logic or third-party services without modifying the core model.

    This addition makes the library even more versatile, enabling developers to build smarter IoT devices with minimal overhead, all while leveraging the compact and power-efficient ESP32 platform.

    Why This Matters

    The introduction of tool calling features positions ESP32_AI_Connect as a leading solution for developers looking to combine AI with IoT. By simplifying the integration of external tools and services, the library reduces development time and complexity, allowing hobbyists and professionals alike to focus on innovation.

    As highlighted in our previous article, the ESP32_AI_Connect library already offers seamless AI model integration, optimized performance, and broad compatibility with popular AI frameworks. The addition of tool calling builds on this foundation, making it an even more powerful tool for embedded AI development.

    Get Started Today

    Ready to explore the new tool calling features? The updated ESP32_AI_Connect library is available now on GitHub. Head over to the official repository to download the latest version, check out the documentation, and dive into example projects that showcase the power of this update.

    Happy Making!

  • AvantMaker’s ESP32_AI_Connect: Unleashing AI Power on Your ESP32!

    AvantMaker’s ESP32_AI_Connect: Unleashing AI Power on Your ESP32!

    Hey Friends, We’ve Got Big News!

    We’re super excited to share this news with you all—our team at AvantMaker has just dropped a brand-new Arduino library for the ESP32! Say hello to ESP32_AI_Connect, the library for bringing AI magic to your ESP32 projects. 🎉

    What’s ESP32_AI_Connect All About?

    Picture this: your ESP32 microcontroller chatting with some of the coolest AI platforms out there, like OpenAI, Google Gemini, all with a single, easy-to-use interface. That’s what ESP32_AI_Connect does! Whether you’re building a smart IoT gadget, a voice-activated gizmo, or something totally out-of-the-box, this library makes it a breeze to connect your ESP32 to powerful AI APIs.

    ESP32_AI_Connect Main Features:

    • Works with multiple AI platforms—OpenAI, Google Gemini, DeepSeek, and more to come!
    • Tool calls support for two-way interaction (think AI asking your ESP32 to do stuff!).
    • Memory-efficient and modular, so it won’t hog your microcontroller’s resources.
    • Super configurable—tweak temperature, max tokens, system roles, and even custom headers.
    • Built to grow, with an expandable framework for adding new AI models down the road.

    Tool Calls: The Coolest Part

    Okay, let’s talk about the feature—tool calls. This is where things get really fun! With tool calls, the AI can ask your ESP32 to perform specific tasks, like reading sensor data, controlling hardware, or crunching numbers. It’s like giving your AI a direct line to your project.

    Here’s what makes tool calls so awesome:

    • Two-way street: The AI can request actions, and your ESP32 can send back results.
    • Structured data: Everything comes in neatly formatted JSON, so parsing is a snap.
    • Custom tools: You define what your ESP32 can do, and the AI will work with it.
    • Context keeper: Your conversation with the AI stays intact, even during tool interactions.

    Imagine building a weather station where the AI asks your ESP32 for real-time temperature data or a smart home device where the AI tells your ESP32 to dim the lights. The possibilities are endless!

    Why We Built This

    The ESP32 is already a powerhouse for IoT, and with ESP32_AI_Connect, we wanted to supercharge it by bringing AI into the mix. Plus, we designed it to be developer-friendly—whether you’re a seasoned coder or just starting out, this library is built to make your life easier.

    More Exciting Features on the Way!

    We’re not stopping here! Our team is hard at adding more features for ESP32_AI_Connect. Soon, you’ll be able to enjoy streaming responses for real-time AI interactions and support for even more AI platforms like Anthropic Claude, Grok, Hugging Face, and others. Stay tuned, because we’re just getting started!

    Get Started!

    Ready to jump in? Head over to ESP32_AI_Connect GitHub Repository for guides and downlaod.

    You can also check out our other ESP32 goodies directly on our GitHub!

    💡 Explore AvantMaker Libraries on GitHub

    We can’t wait to see the amazing things you’ll build with ESP32_AI_Connect!

    Happy making!

  • ESP32-WebFS Gets a Shiny New Upgrade: More Space, Style, and Stability!

    ESP32-WebFS Gets a Shiny New Upgrade: More Space, Style, and Stability!

    Hello, makers, tinkerers, and IoT enthusiasts! The AvantMaker Team is buzzing with excitement because we’ve just rolled out a fresh update to our beloved ESP32-WebFS. If you’re new to this tool, it’s like turning your ESP32 into a mini web server with a slick interface that makes managing files on SPIFFS (that’s the flash storage on your ESP32) as easy as organizing your toolbox—minus the rusty screws.

    ESP32 WebFS  Main Interface Screenshot
    ESP32 WebFS Main Interface Screenshot

    This update brings some neat improvements to make your projects smoother and, dare we say, a tad more stylish. Let’s dive into what’s new!

    SPIFFS Check: Know Your Storage Like the Back of Your Hand

    Ever wondered how much room you’ve got left on your ESP32’s SPIFFS for all those cool project files? Wonder no more! We’ve added a SPIFFS Check Feature that spills the beans on your storage stats. It shows you the total SPIFFS size and how much free space is left—think of it like checking the fuel gauge before a road trip. Now you can plan your file uploads without playing storage roulette.

    ESP32-WebFS-SPIFFS-Info
    ESP32-WebFS SPIFFS Info Page Screenshot

    A Spruced-Up Interface (Without Overdoing It)

    We get it—nobody wants a clunky interface that feels like navigating a maze. So, we’ve given the ESP32-WebFS web interface a little glow-up with some minimal CSS tweaks. It’s not a full-on fashion makeover—just enough to make things look cleaner and more inviting, like tidying up your workbench before starting a new project. Best part? We kept the extra code light, so your ESP32 doesn’t feel like it’s lugging around a heavy backpack.

    ESP32-WebFS-File-List
    ESP32 WebFS File List Page Screenshot

    Code Format Fix: Because Details Matter

    We also squashed a pesky bug in the code formatting. It’s a small tweak, but it’s like tightening a loose screw—everything just works a bit more reliably now. Your ESP32-WebFS is ready to hum along without any hiccups.

    Ready to Take It for a Spin?

    Head over to our GitHub repository to grab the latest version and give it a whirl. It’s like getting a new toy for your ESP32—without the assembly instructions headache!

    We can’t wait to see what awesome projects you’ll create with this update. Happy making!

    — The AvantMaker Team

  • Unlock ESP32 Web Power: Dive Deep into HTTP POST Requests with Our New Article!

    Unlock ESP32 Web Power: Dive Deep into HTTP POST Requests with Our New Article!

    Hey Makers, Learners, and Innovators!

    Exciting news from the AvantMaker team! We know many of you are harnessing the power of the ESP32 to create amazing connected projects. A core part of many IoT applications is sending data from your ESP32 to a web server – whether it’s logging sensor readings, controlling a device remotely, or interacting with an online API. Often, this involves using the HTTP POST method via the ESP32’s HTTPClient library.

    But have you ever stopped to wonder what’s really happening under the hood when you call http.POST() in your Arduino sketch? What does that data packet actually look like as it travels across the internet?

    To help demystify this crucial process, we’ve just published a brand new, in-depth tutorial page:

    Understanding How Your ESP32 Sends the HTTP POST Request

    In this new guide, we go beyond just providing example code. We take a practical ESP32 sketch that sends data to the popular testing service httpbin.org and break down:

    1. The Arduino Sketch: A quick look at the code responsible for initiating the POST request.
    2. The Raw HTTP POST Request: We reconstruct the actual data packet sent by the ESP32, line by line. You’ll learn about the request line (POST method, path, HTTP version), essential headers like Host, Content-Type, and Content-Length, the crucial blank line separator, and the formatted data payload itself.
    3. The Server’s Response: We analyze the response from httpbin.org to confirm how the server received and interpreted the data sent by your ESP32.

    Why is this important?

    Understanding the structure of HTTP requests isn’t just academic. It empowers you to:

    • Troubleshoot effectively: When your ESP32 can’t connect or send data correctly, knowing what the request should look like is key to finding the problem.
    • Interact with APIs confidently: Many web services require data to be POSTed in a specific format. Understanding the components lets you craft the correct requests.
    • Design better projects: Knowing how data is packaged and sent helps you design more efficient and reliable communication for your IoT devices.

    This new page is part of our ongoing effort to build a comprehensive collection of references and tutorials within the AvantMaker ESP32 Resources Hub, helping you turn your innovative ideas into reality.

    Ready to deepen your understanding of how your ESP32 communicates with the web?

    Click here to read the full guide:

    Understanding How Your ESP32 Sends the HTTP POST Request

    We hope this resource proves valuable in your ESP32 development journey!

    Happy Making!


  • ESP32-WebFS: Simplifying SPIFFS File Management for Your ESP32 Projects

    ESP32-WebFS: Simplifying SPIFFS File Management for Your ESP32 Projects

    Introducing ESP32-WebFS

    If you’ve ever worked with an ESP32 microcontroller, you’ve likely come across SPIFFS—short for Serial Peripheral Interface Flash File System. It’s like a tiny digital filing cabinet built into your ESP32, perfect for storing files like web pages, sensor data, or configuration settings. For makers, SPIFFS is a game-changer because it lets your projects do more—like serving up a webpage or saving logs—without needing extra hardware.

    ESP32 WebFS Web Interface Screenshot

    Enter ESP32-WebFS, a fresh tool from the AvantMaker Team. It turns your ESP32 into a web server with a simple but not simplistic interface, making it a breeze to upload and manage files on SPIFFS. No more fumbling with complicated setups—just a straightforward way to keep your projects organized. Best of all? It’s open-source under the MIT license. That means it’s free to use, modify, and share, with no hidden costs or restrictions. The MIT license is a promise that this tool is yours to explore, hassle-free.

    Why We Created ESP32-WebFS

    Let’s face it: managing files on an ESP32’s SPIFFS can feel like trying to herd cats. Normally, you’d need to hook up your board, use specific software, and sometimes even dig into command-line tools to get files where they need to be. It’s time-consuming, error-prone, and not exactly beginner-friendly. We’ve been there, and we knew there had to be a better way.

    That’s why we at AvantMaker built ESP32-WebFS. Our goal was simple: take the headache out of uploading and managing SPIFFS files. With this tool, you can handle everything through a web browser, cutting out the extra steps and letting you focus on what matters—building cool projects.

    What ESP32-WebFS Brings to the Table

    ESP32-WebFS comes packed with features designed to simplify your workflow:

    • Web-Based File Management: Upload, delete, download, view files on SPIFFS using a simple browser interface—no extra software needed.
    • Easy Setup: Get started fast—just update the Wi-Fi credentials in the sketch, upload it to your ESP32, and your board is ready to roll.
    • Real-Time Feedback: See what’s happening with your files as you work, with updates right on the screen.
    • Lightweight Design: It’s built to run smoothly on the ESP32 without eating up all your memory or processing power.
    • Customizable Code: Since it’s an Arduino sketch, you can tweak it to fit your project’s needs.

    Practical Use Cases:

    • Remote Configuration: Easily update configuration files for your IoT devices deployed in hard-to-reach locations without physical access.
    • Data Logging Retrieval: Wirelessly download sensor data logs stored on the ESP32 SPIFFS for analysis and visualization.
    • Custom Web Interface Updates: Quickly update the HTML, CSS, and JavaScript files for your ESP32-powered web applications.

    Where to Grab ESP32-WebFS

    Ready to experience the ease of managing your ESP32’s SPIFFS files? ESP32-WebFS is now available on the AvantMaker GitHub repository! Head over to the link below to get the code and start using it in your projects:

    https://github.com/AvantMaker/ESP32-WebFS

    It’s all there, free and open for you to explore. Since it’s open-source, we’d love to hear your feedback or see your contributions—feel free to fork the project and share your ideas to make it even better!

    Setting Up and Using ESP32-WebFS: A Quick Guide

    Prerequisites:

    • An ESP32 development board
    • The Arduino IDE installed with the ESP32 board support package
    • Basic knowledge of the Arduino IDE
    • A Wi-Fi network

    Getting started with ESP32-WebFS is straightforward. You’ll essentially upload the provided Arduino sketch to your ESP32. The sketch can be configured to connect to your existing Wi-Fi network (Station mode) or to create its own Wi-Fi network that you can connect to (Access Point mode). Once running, your ESP32 will host a web server. You can then connect to the ESP32’s web server using any web browser on your computer or smartphone and start managing your ESP32 SPIFFS files.

    For a more detailed step-by-step guide, including configuration options for network settings and advanced features, we encourage you to check out the comprehensive user manual located in the doc folder of the GitHub repository. You can find it here:

    ESP32-WebFS User Manual

    Looking Ahead: More ESP32 Resources from AvantMaker

    At AvantMaker.com, we are passionate about empowering the maker community. The release of ESP32-WebFS is just one step in our ongoing efforts to provide valuable resources for your ESP32 projects. We are actively working on creating more tutorials, reference materials, and exciting tools to help you unlock the full potential of this versatile microcontroller. So, make sure to visit our website regularly for the latest updates and inspiring content.

    As an open-source project, we also welcome contributions from the community! If you have ideas for improvements or find any issues, please feel free to contribute on our GitHub repository.

    If you have any questions, feedback, or just want to connect with us, feel free to reach out through AvantMaker Website’s About Page.

    Happy Making!

error: Content is protected !!