<?xml version="1.0" encoding="UTF-8" ?><!-- generator=Zoho Sites --><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><atom:link href="https://www.campuscomponent.com/blogs/wi-fi-bluetooth/feed" rel="self" type="application/rss+xml"/><title>Campus - Blog , Wi-Fi &amp; Bluetooth</title><description>Campus - Blog , Wi-Fi &amp; Bluetooth</description><link>https://www.campuscomponent.com/blogs/wi-fi-bluetooth</link><lastBuildDate>Fri, 03 Apr 2026 00:27:56 -0700</lastBuildDate><generator>http://zoho.com/sites/</generator><item><title><![CDATA[Understanding ESP8685 ADC to Read Analog Inputs]]></title><link>https://www.campuscomponent.com/blogs/post/understanding-esp8685-adc-to-read-analog-inputs</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/Understanding ESP8685 ADC to Read Analog Inputs 1.png"/>In this blog we will discuss the Analog to Digital Convertor (ADC), pin layout, key features and ESP8685 application. Learn how to effectively read analog inputs and upgrade your knowledge for ADC projects.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_TlPeCDEOTRGomXbljL0F_Q" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_WxCwkHJVSvWupD_A-kM7Fw" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_ykV2TMqXTWWQ4Lg1OuHW7Q" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_yGO23nHVTuu1z-Q39f6x4A" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_yGO23nHVTuu1z-Q39f6x4A"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_ez26UfocR82u0WDpYdHx_A" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_ez26UfocR82u0WDpYdHx_A"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;margin-bottom:10pt;"><img src="/Understanding%20ESP8685%20ADC%20to%20Read%20Analog%20Inputs%201.png" style="width:1106px !important;height:737px !important;max-width:100% !important;" alt="Understanding ESP8685 ADC to Read Analog Inputs"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">With the rapid advancement of embedded systems and the Internet of Things (IoT), the ESP8266/ESP32 series of Wi-Fi modules has gained popularity due to its user-friendliness and cost-effectiveness. Recently, Espressif introduced its successor, the ESP8685 Wi-Fi module, an upgrade to transform the world of connected devices.&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The ESP8685 microcontroller is a powerful microcontroller for IOT projects. One of the key features of the ESP8685 is its Analog-to-Digital Converter (ADC), which allows it to read analog inputs. In today's article we will understand the ESP8685 ADC, we will discuss how it works and how we can effectively use it in your projects.</span></p><h2 style="text-align:justify;margin-bottom:10pt;"><a href="https://www.campuscomponent.com/products/espressif-systems-esp8685-wroom-01-h4-wi-3357-d/2208614000039983224"><span style="font-size:18px;color:rgb(0, 0, 0);">ESP8685</span></a></h2><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">ESP8685 is a powerful, generic Wi-Fi and Bluetooth LE module that has a rich set of peripherals and ultra-low-power, highly integrated SoC solution based on an MCU. This controller is suitable for a wide range of applications, including smart home devices, industrial automation, wearables, and various other IoT applications.</span></p><h2 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:18px;color:rgb(0, 0, 0);">Pin Layout of ESP8685:</span></h2><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The diagram below shows the pin configuration of the ESP8685:</span></p><p style="margin-bottom:10pt;"><span style="font-size:11pt;"><span style="width:441px;"><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXdWDnOGnWKKRIxdBgF_Z52Hei9t0cQIgzcTNdRjyUvoKRkLxt5rMl5vvTNk3nof9MkIY5on7cVfP_ODlAq1uIaI_bVTmSpZOII1fL1lrZqy3ru5yPvbV4qMQS1UrxFMmDGvki5MlFZQGLSTgs-yuXz0B79P5xHqBEQJX1law4No5Zg0?key=smiUAAhrWeQ48-sFOngmWg" width="441" height="352" alt="Understanding ESP8685 ADC to Read Analog Inputs" style="width:486px !important;height:388px !important;max-width:100% !important;"></span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The ESP8685 comes with an ultra-low-power SoC with a RISC-V single-core CPU, supporting IEEE 802.11b/g/n (2.4 GHz WiFi). It comes with either 2MB (ESP8685H2) or 4MB (ESP8685H4) flash memory in a compact 4×4mm QFN package.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">For a more detailed understanding of the architecture, please refer to the ESP8685 datasheet.</span></p><h2 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:18px;color:rgb(0, 0, 0);">Let’s discuss the Features of ESP8685:</span></h2><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:18px;font-weight:700;color:rgb(0, 0, 0);">WIFI</span></h3><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The ESP8685 complies with IEEE 802.11b/g/n WiFi standards.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">It supports 20MHz and 40MHz bandwidths in the 2.4 GHz frequency range.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Includes Wi-Fi Multimedia (WMM) functionality.</span></p></li></ul><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:13.5pt;font-weight:700;color:rgb(0, 0, 0);">CPU and Memory&nbsp;</span></h3><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Powered by a 32-bit RISC-V single-core processor, capable of running up to 160MHz.&nbsp;</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Core Mark® score: – 1 core at 160 MHz achieves 407.22 Core Mark, equating to 2.55 Core Mark/MHz.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Equipped with 384KB ROM.&nbsp;</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Contains 400 KB SRAM, with 16KB reserved for cache.</span></p></li></ul><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:13.5pt;font-weight:700;color:rgb(0, 0, 0);">Advanced Peripheral Interfaces</span></h3><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Includes 15 programmable GPIOs.</span></p><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:13.5pt;font-weight:700;color:rgb(0, 0, 0);">Digital interfaces:&nbsp;</span></h3><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• 3× SPI (with SPI0 and SPI1 used for connecting the SiP flash, leaving SPI2 available for use).&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• 2× UART&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• 1× I2C&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• 1× I2S&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Remote control interface featuring 2 transmit channels and 2 receive channels.&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• LED PWM controller supporting up to 6 channels.&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Full-speed USB Serial/JTAG controller.</span></p><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:13.5pt;font-weight:700;color:rgb(0, 0, 0);">Analog interfaces:&nbsp;</span></h3><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• 2× 12-bit SAR ADCs, supporting up to 6 channels.&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• 1× temperature sensor.</span></p><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:13.5pt;font-weight:700;color:rgb(0, 0, 0);">Timers:&nbsp;</span></h3><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Features with 2× 54-bit general-purpose timers.&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Has 3× watchdog timers.&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Featuring 1× 52-bit system timer.</span></p><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:13.5pt;font-weight:700;color:rgb(0, 0, 0);">Security</span></h3><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Features secure boot technology.&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Supports flash encryption.&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Includes a 4096-bit OTP, with up to 1792 bits available for use.&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Offers cryptographic hardware acceleration.</span></p><h2 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:18px;color:rgb(0, 0, 0);">What is an ADC (Analog-to-Digital Converter)?</span></h2><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">An Analog-to-Digital Converter (ADC) is an electronic device that converts analog signals into digital signals. This process is crucial for microcontrollers, which operate in the digital domain, to interface with the analog sensors or values. Sensors like temperature sensors, light sensors, and potentiometers typically output analog signals, which need to be converted to digital to be processed by the microcontroller.</span></p><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:13.5pt;font-weight:700;color:rgb(0, 0, 0);">Key Features of the ESP8685 ADC</span></h3><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;font-weight:700;">10-bit resolution</span><span style="font-size:11pt;">: This provides 1024 different values for representing the analog input, allowing for accurate readings.</span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;font-weight:700;">Multiple input channels</span><span style="font-size:11pt;">: The ESP8685 ADC supports multiple pins, enabling it to read signals from various sensors.</span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;font-weight:700;">High sampling rate</span><span style="font-size:11pt;">: This ensures that the ADC can quickly convert analog signals to digital values, which is essential for real-time applications.</span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">How the ESP8685 ADC Works</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The ADC on the ESP8685 works by reading the analog input signal at regular intervals and converting these samples into digital values. The 10-bit resolution means that the input voltage is divided into 1024 discrete levels, providing a digital output that corresponds to the analog input voltage.</span></p><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:13.5pt;font-weight:700;color:rgb(0, 0, 0);">How to use the ESP8685 ADC:</span></h3><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Setup the ADC: Initialize the ADC in your code, specifying the pin to which your analog sensor is connected.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Read the analog input: Use the appropriate function to read the analog value from the specified pin.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Process the data: Convert the raw digital value to a meaningful physical quantity (e.g., temperature, light intensity) based on the sensor's characteristics.</span></p></li></ul><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:13.5pt;font-weight:700;color:rgb(0, 0, 0);">Let's read Analog value from Potentiometer:</span></h3><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:13.5pt;font-weight:700;color:rgb(0, 0, 0);">Hardware Setup:</span></h3><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the middle pin of the potentiometer to an analog input pin on the ESP8685 (e.g., GPIO36).</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the other two pins to VCC (3.3V) and GND, respectively.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="margin-bottom:10pt;"><span style="font-size:11pt;"><span style="width:688px;"><img alt="Understanding ESP8685 ADC to Read Analog Inputs" src="https://lh7-us.googleusercontent.com/docsz/AD_4nXfwTgVZbivuo7_zcFuO5gZ65cc9O9C655pfOVs0tNwlpu7SPvASDsKqqEP0G03UdO3o3a_MraB0TUxxxPzqbGjpV5s2hDgDm3lA6DZT1c2JUTw_kjRrZ1joviX7YR8iid8vKNA98NN9oTH_APQLXPa2y4J61nyHQ28HfRcNGeU-9Q0L?key=smiUAAhrWeQ48-sFOngmWg" width="688" height="387"></span></span></p><h3 style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);font-size:13.5pt;font-weight:700;">Code:</span><br></h3><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">#include &lt;Arduino.h&gt;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">const int potPin = 36;&nbsp; // Pin connected to the potentiometer</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">void setup() {</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;Serial.begin(115200);</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;analogReadResolution(10);&nbsp; // Set ADC resolution to 10 bits</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">}</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">void loop() {</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;int potValue = analogRead(potPin);&nbsp; // Read the analog value</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;float voltage = potValue * (3.3 / 1023.0);&nbsp; // Convert to voltage</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;Serial.print(&quot;Analog Value: &quot;);</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;Serial.print(potValue);</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;Serial.print(&quot; - Voltage: &quot;);</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;Serial.println(voltage);</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;delay(500);&nbsp; // Wait for half a second before the next reading</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">}</span></p><h2 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:18pt;color:rgb(0, 0, 0);">Applications of ESP8685</span></h2><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Smart Home</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Industrial Automation</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Health Care</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Consumer Electronics</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Smart Agriculture</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">• Audio Device</span></p><h2 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:18px;color:rgb(0, 0, 0);">Conclusion:</span></h2><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">The </span><a href="https://www.campuscomponent.com/products/espressif-systems-esp8685-wroom-01-h4-wi-3357-d/2208614000039983224"><span style="font-size:11pt;">ESP8685</span></a><span style="font-size:11pt;"> is combined with advanced features, low power consumption, and affordability, making it a good choice for embedded/IOT developers. For those working with analog inputs, the ESP8685 ADC is an invaluable tool. Whether your project involves a simple potentiometer or multiple sensors, understanding how to use the ADC effectively is important. By following the above article, you can accurately read and process analog signals.</span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Also refer to the </span><a href="https://drive.google.com/file/d/1qmzM5Yw91sx5g1OcHyuq4elU-PRSOSGf/view"><span style="font-size:11pt;">ESP8685 datasheet</span></a><span style="font-size:11pt;"> to fully understand capabilities and limitations of the ADC. For all your microcontroller needs, including the ESP32, ESP8266, ESP8685, and other </span><a href="https://www.campuscomponent.com/shop-now"><span style="font-size:11pt;">electronic components</span></a><span style="font-size:11pt;">, visit </span><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">Campus Component</span></a><span style="font-size:11pt;"> today.<br></span></span></p></div>
</div><div data-element-id="elm_aBp6stTYTBKyw9XB3unVUg" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_aBp6stTYTBKyw9XB3unVUg"].zpelem-button{ border-radius:1px; } </style><div class="zpbutton-container zpbutton-align-center"><style type="text/css"></style><a role="button" class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="https://www.campuscomponent.com/categories/wifi_module/2208614000002321101" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Tue, 11 Jun 2024 10:41:41 +0000</pubDate></item><item><title><![CDATA[Read and Write Bluetooth Signal with SIMCOM-GATT Server]]></title><link>https://www.campuscomponent.com/blogs/post/read-and-write-bluetooth-signal-with-simcom-gatt-server</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/Read and wirte bluetooth signal with Simcom-GATT Server .jpg"/>Simplify Bluetooth signal management with SIMCOM-GATT Server. Discover techniques for reading and writing signals, ensuring smooth device interaction and data exchange.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_PEksloBjRXiV-uJdkjSR1w" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_CNPslNr1SGqxY5EJ_zpAbw" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_8kd6C4rMR8WkwkiEodKEtA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_vlQbgsGETIe00KgeoyrINQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_vlQbgsGETIe00KgeoyrINQ"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_qVvyrTepSKeRwe1RTfaP7A" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_qVvyrTepSKeRwe1RTfaP7A"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;"><img src="/Read%20and%20wirte%20bluetooth%20signal%20with%20Simcom-GATT%20Server%20.jpg" alt="Read and Write Bluetooth Signal with SIMCOM-GATT Server"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;"><br></span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;"><br></span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">In implementing the communication protocol for Internet of Things (IoT), Bluetooth communication plays an important role in communicating devices fast. Whether it's your smartwatch connected with your phone or your fitness tracker, Bluetooth technology enables these interactions. In this blog post, we will discuss the reading and writing of Bluetooth signals using the </span><span style="font-size:11pt;font-weight:700;">SIMCOM-GATT</span><span style="font-size:11pt;"> Server, so that you can use the full potential of Bluetooth-enabled devices.</span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:18px;font-weight:400;color:rgb(0, 0, 0);">What is GATT?</span></h2><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">GATT stands for </span><span style="font-size:11pt;font-weight:700;">Generic Attribute Profile</span><span style="font-size:11pt;">. It's like a rule to be followed for Bluetooth devices to share data using Services and Characteristics. It’s a data sharing Attribute Protocol where devices store their data with short IDs. GATT starts working once two devices are connected after they've finished their initial &quot;handshake&quot; process. GATT connections are like VIP passes. Only one device can connect to another at a time. Once a connection is made, the device stops announcing itself to others until the connection is over. When devices are connected, they can send data back and forth, sharing information easily. In this blog we will see how to start a </span><span style="font-size:11pt;font-weight:700;">GATT server</span><span style="font-size:11pt;"> and </span><span style="font-size:11pt;font-weight:700;">Read</span><span style="font-size:11pt;"> and </span><span style="font-size:11pt;font-weight:700;">Write Data</span><span style="font-size:11pt;"> onto it.</span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:18px;font-weight:400;color:rgb(0, 0, 0);">Requirements</span></h2><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:18px;color:rgb(0, 0, 0);">1. SIMCOM Wireless Solution A7672S-FASE (with GNSS + BLE )</span></h3><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14pt;color:rgb(0, 0, 0);"><span style="width:270px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span></span></h3><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14pt;color:rgb(0, 0, 0);"><span style="width:270px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img alt="Read and Write Bluetooth Signal with SIMCOM-GATT Server" src="https://lh7-us.googleusercontent.com/7rl-qiYGk6CZpUfEgJbIiu4oUXJuSKjt-fbG1Z7D1fImlsoxLs1GUeKV_fGEzT00x88oZJML70GsMhVfk5Z0tQBDyN3Yw1DjX5EaZPLmnQioR2vK23QFAUnWiQtsTOGOg7RUquvjvPJcM59vPeyU7w" width="270" height="127" style="width:361.59px !important;height:170px !important;max-width:100% !important;"></span></span></h3><p style="text-align:justify;"><br></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><a href="https://www.campuscomponent.com/products/simcom-wireless-solution-a7672s-fase-with-gnss-ble-wi-2383-d/2208614000011193059"><span style="font-size:11pt;font-weight:700;">A7672S&nbsp;FASE</span></a><span style="font-size:11pt;font-weight:700;"> is the LTE Cat 1 </span><span style="font-size:11pt;">module that supports wireless communication modes of LTE-FDD/GSM/GPRS/EDGE. A7672S&nbsp;supports maximum 10 Mbps downlink rate and 5 Mbps uplink rate.&nbsp;A7672S&nbsp;adopts LCC+LGA form factor and is compatible with SIM7000/SIM7070 series (NB/Cat M modules), and SIM800A/SIM800F series (2G modules), which enables smooth migration from 2G/NB/Cat M products to LTE Cat 1 products, and greatly facilitates more compatible product design for the customer needs.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">A7672S&nbsp;supports both multiple built-in network protocols and the drivers for main operating systems (USB driver for Windows, Linux and Android). The software functions, AT commands are compatible with the </span><a href="https://www.campuscomponent.com/products/sim800/2208614000001835304"><span style="font-size:11pt;">SIM800</span></a><span style="font-size:11pt;"> series modules. A7672S also supports BLE* and GNSS* and it integrates abundant industrial standard interfaces with powerful expansibility, such as UART, USB, I2C and GPIO, which makes it perfectly suitable for main IOT applications such as telematics, POS, surveillance devices, industrial routers, and remote diagnostics etc.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">A7672S(with GNSS + BLE )&nbsp;Advantages:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Compact size with abundant interfaces.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Supports BLE and GNSS functions.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Abundant software functions: FOTA, LBS, SSL.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Form factor is compatible with the SIM7000/SIM7070 series.</span></p></li></ul><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14pt;color:rgb(0, 0, 0);">2. SIMCOM AT Command Tester Tool</span></h3><div><span style="font-size:14pt;color:rgb(0, 0, 0);"><br></span></div><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;font-weight:700;"><span style="width:543px;color:rgb(0, 0, 0);">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img alt="Read and Write Bluetooth Signal with SIMCOM-GATT Server" src="https://lh7-us.googleusercontent.com/rP4YQvVPB7nBsf-tsWHDnekklYTao_4xA9ujDUuRics-zMbeejLtzrpjDsbMRzXF1Qacznpn4NM7TqDsMyHJL9ihuWjm7-UdiBE7xW_9sBNvVwEQKYecxr0FYDeaWy5zouRFN-gDPqMgBtSTWW49Bw" width="543" height="233"></span></span></p><p style="text-align:justify;margin-left:36pt;"><span style="color:rgb(0, 0, 0);font-size:11pt;"><br></span></p><p style="text-align:justify;margin-left:36pt;"><span style="color:rgb(0, 0, 0);font-size:11pt;">AT Command Tester for Simcom Modules is a desktop software that communicates with all Simcom Module devices using </span><a href="https://www.campuscomponent.com/blogs/post/getting-started-with-simcom-at-commands"><span style="font-size:11pt;">AT Commands</span></a><span style="color:rgb(0, 0, 0);font-size:11pt;">.&nbsp;Download </span><a href="https://m2msupport.net/m2msupport/download-at-command-tester-for-simcom-modules/"><span style="font-size:11pt;">here</span></a><span style="color:rgb(0, 0, 0);font-size:11pt;">.</span><br></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14pt;color:rgb(0, 0, 0);">3. nRF Connect for Mobile Application</span></h3><div><span style="font-size:14pt;color:rgb(0, 0, 0);"><br></span></div><p style="text-align:justify;margin-left:36pt;margin-bottom:10pt;"><span style="font-size:11pt;"><span style="width:126px;color:rgb(0, 0, 0);">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img alt="Read and Write Bluetooth Signal with SIMCOM-GATT Server" src="https://lh7-us.googleusercontent.com/vDX181da_PbTiL1ySJJUNXefRtPLk2VILQEhptrlTR0FlXuUqiFsChS28bNeCeED_ZXuEFJcJmn0mu1_lTwktChy7Z04gS33n_gZzUvYfcLOhll4xQHBEzc_k3u5xpZ6JexhOleiyJp04rDUtvglhA" width="126" height="273" style="width:148px !important;height:320.74px !important;max-width:100% !important;"></span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;"><br></span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">nRF Connect for Mobile is a powerful generic tool that allows you to scan and connect your Bluetooth Low Energy (BLE) devices and communicate with them. nRF Connect supports a number of Bluetooth SIG adopted profiles together with Device Firmware Update profile (DFU) from Nordic Semiconductors and Mcu Manager on Zephyr and Mynewt. Download this app from </span><a href="https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp&amp;hl=en&amp;gl=US&amp;pli=1"><span style="font-size:11pt;">here</span></a><span style="font-size:11pt;">.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Now our Requirements are fulfilled lets now create a GATT server and Read and Write data:</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Follow the below steps to perform operations on GATT server using </span><span style="font-size:11pt;font-weight:700;">SIMCOM A7672s 4G</span><span style="font-size:11pt;font-weight:700;">module</span><span style="font-size:11pt;">:</span></span></p><ol><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Power up the 4G module.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect it to your laptop.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Open the Simcom AT Command Tester Tool.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Select the AT port option and open the port.</span></p></li></ol><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">After successfully opening the port, follow the following AT sequence:</span></p><ol><li style="font-size:11pt;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">To check the host name: </span><span style="font-size:11pt;font-weight:700;">AT + BLEHOST?</span></span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">To change the host name: </span><span style="font-size:11pt;font-weight:700;">AT+BLEHOST= “CampusComponent BLE”</span></span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">POWER UP the BLE: </span><span style="font-size:11pt;font-weight:700;">AT+BLEPOWER=1</span><span style="font-size:11pt;">, this will take some time.</span></span></p></li><li style="font-size:11pt;"><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Register a GATT server by this command: </span><span style="font-size:11pt;font-weight:700;">AT+BLEREG</span><span style="font-size:11pt;">, wait till you get the response with a name of the server such as “ABCDEF00”.</span></span></p></li></ol><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Lets now set the parameters for our GATT server:</span></p><ol><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT+BLESSAD=0, “1802”, 30, 1, 4</span></p></li><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT+BLESCAD=0, “2A06”, 4, 38, 3</span></p></li><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT+BLESSDAD=0, “2902”, 4, 0</span></p></li></ol><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Now let's start our server:</span></p><ol><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT + BLESSTART = 0,0</span></p></li><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT+BLESLSTART = 0</span></p></li></ol><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">After this open the </span><span style="font-size:11pt;font-weight:700;">nRF connect application</span><span style="font-size:11pt;"> on your mobile phone</span></span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">At the top right corner of the application you will find an option for </span><span style="font-size:11pt;font-weight:700;">“Start Scanning”.</span></span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">After scanning you can find your BLE name as “CampusComponent BLE” </span><span style="font-size:11pt;font-weight:700;">connect it.</span></span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">After the connection is successfully established, you will get a AT command response on your laptop screen as follow: </span><span style="font-size:11pt;font-weight:700;">+BLESCON:1, ABCDEF00, 54, 29, 28: C5: 5F:24,1</span></span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">On your mobile app:</span></p></li></ul><ol><li style="font-size:11pt;margin-left:36pt;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Click on </span><span style="font-size:11pt;font-weight:700;">Immediate alert</span></span></p></li><li style="font-size:11pt;margin-left:36pt;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">On side of your BLE name there are two arrows: </span><span style="font-size:11pt;font-weight:700;">Downward arrow use for Reading the Data</span><span style="font-size:11pt;"> and </span><span style="font-size:11pt;font-weight:700;">Upward arrow is use for Writing the data</span></span></p></li></ol><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">To Read the data:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Click on Read i.e Downward Arrow</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Then send the AT command </span><span style="font-size:11pt;font-weight:700;">AT+BLERSP=0, “HEX(123489)’</span></span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">On the application you will be able to see the Send Value.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Same process follows for Writing the Data.</span></p></li></ul><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Conclusion</span></h2><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Thus we have successfully started our GATT server and did the Reading and Writing of the data on the server. We have used the SIMCOM AT command Tester tool to send AT commands and started the server and connected the server by using nRF connect mobile app. Using the app we are able to send and receive the data over SIMCOM A7672s BLE. By using this GATT server over BLE you can establish communication in your IOT Device seamlessly. This protocol can be used in various applications like Home automation, Agritech, Industrial IOT, etc. If you are looking to implement a BLE GATT server in your IOT application and want the </span><a href="https://www.campuscomponent.com/brand-details/simcom"><span style="font-size:11pt;">SIMCOM</span></a><span style="font-size:11pt;"> modules then checkout the </span><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">best electronic components online store</span></a><span style="font-size:11pt;"> - Campus Component now.</span></span></p></div>
</div><div data-element-id="elm_wjWTTbSlQ2mmn0mEzahNYA" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_wjWTTbSlQ2mmn0mEzahNYA"].zpelem-button{ border-radius:1px; } </style><div class="zpbutton-container zpbutton-align-center"><style type="text/css"></style><a role="button" class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="https://www.campuscomponent.com/categories/wireless_module/2208614000002321087?pf=1284391000027022219_Brand_SIMCOM" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Thu, 02 May 2024 11:51:58 +0000</pubDate></item><item><title><![CDATA[What is Bluetooth Low Energy (BLE)? Everything You Need to Know]]></title><link>https://www.campuscomponent.com/blogs/post/what-is-ble-bluetooth-low-energy-explained</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/What is BLE Blutooth Low Enenrgy Explained .png"/>Explore Bluetooth Low Energy (BLE) with our in-depth explanation. Learn how BLE technology works, its applications, and the potential it holds for seamless connectivity.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_reLbx0dDTCi7oqULGD3kJA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_jg2d3FMWQJeljSXHT2YVcw" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_KzgQFd7MRpa6cOyV7ItDlA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_1DQqxeD4Sri24nysERrltA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_1DQqxeD4Sri24nysERrltA"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><div style="line-height:1.2;"><div style="line-height:1.2;"><p style="margin-bottom:10pt;"><img src="/What%20is%20BLE%20Blutooth%20Low%20Enenrgy%20Explained%20.png" style="width:1098.16px !important;height:742px !important;max-width:100% !important;"><br/></p><p style="margin-bottom:10pt;"><img src="https://lh7-us.googleusercontent.com/2m9EePhwxTtidjeH8V6UCjRmLVldIlfRkHUBKLe5xxWLSlnAVFBoBXVucTAFSB241f4jFaCd4TmBYOKiS3N1Agbpcgq1Ikj0jkU-U8naczxHULzoITZImlyhgqonVPEUZd1C8lEGeM74GxueBDFihQ" width="510" height="287" style="font-size:11pt;width:670.2px !important;height:377px !important;max-width:100% !important;"><br/></p><p style="text-align:justify;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">Bluetooth Low Energy (BLE) is one of the most widely applicable low-power connectivity standards. In the rapidly evolving innovations in wireless technology, Bluetooth Low Energy (BLE) has emerged as a power-efficient solution for a variety of applications. In this blog post, we will discuss BLE i.e Bluetooth Low Energy, and will shed light on its capabilities and applications in the ever-evolving tech landscape.</span></p><p style="text-align:justify;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;"><br/></span></p><h2 style="text-align:left;">What is Bluetooth Low Energy (BLE) ?</h2><p style="text-align:justify;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;"><br/></span></p><p style="margin-bottom:14pt;"><span style="font-size:11pt;"><span style="width:624px;"><img src="https://lh7-us.googleusercontent.com/utG6NJhMnH8qzbu-NTy2lRdarMPATnTai0YzJSEmqiaLRtYgCb4mAz0e4F_fsZsNNob5w0A02FH1BxrECpKXSIAhS_lRG2CJv6V3PUCk8Ds2vB97HUbny80DQXRktGkLc6JyYS4PAmbGhzXUA2TvRA" width="624" height="189" style="width:759.3px !important;height:230px !important;max-width:100% !important;"></span></span></p><p style="text-align:justify;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">BLE stands for Bluetooth Low Energy (BLE) is a power-conserving type of Classic Bluetooth. BLE is form of wireless communication, which primary application is short distance transmission of small amounts of data i.e low bandwidth. Unlike classic Bluetooth which is always in the ON state, BLE remains in sleep mode constantly except for when a connection is initiated. This makes it consume very low power. BLE consumes approximately 100x less power than Bluetooth which depends on your application.&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br/></span></p><h2 style="text-align:left;">Features of Bluetooth Low Energy</h2><div><h3 style="text-align:left;">IoT Centric Design</h3><p style="text-align:left;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">BLE is designed with IoT application in mind. Features of Bluetooth low energy like Limited operational power, memory addresses the unique constrains of IoT devices. BLE allows IoT devices to operate for extended periods without frequent battery replacement or recharge.</span></p><p style="color:inherit;text-align:left;"><br/></p><h3 style="text-align:left;">Low Power Consumption</h3><p style="text-align:left;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">Low power duty and optimized data transmission mechanism of Bluetooth low energy enable it to operate on minimal power making it ideal for battery operated devices. BLE devices mostly remain in sleep mode and only wakes up to send or receive data, this makes it even energy conserving.</span></p><p style="text-align:left;"><span style="color:rgb(0, 0, 0);"><br/></span></p><h3 style="text-align:left;">GATT</h3><p style="text-align:left;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">GATT, which stands for <strong>Generic Attribute Profile</strong>, is a framework used in Bluetooth Low Energy (BLE) for discovering services and characteristics on a device. GATT defines transfer of data back and forth using concepts called <strong>services</strong> and <strong>characteristics</strong>. Service is collection of data and associate behavior to complete particular function and characteristic is a value used in service along with properties and configuration information.</span></p><p style="text-align:left;"><span style="color:rgb(0, 0, 0);"><br/></span></p><h3 style="text-align:left;">Fast Connection Setup</h3><p style="text-align:left;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">BLE can enable connection in milliseconds making it ideal for the applications that requires frequent but short and fast data transfer.</span></p><p style="text-align:left;"><span style="color:rgb(0, 0, 0);"><br/></span></p><h3 style="text-align:left;">Security</h3><p style="text-align:left;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">AES-128 encryption feature of BLE allows protecting data transmitted between the devices and helps to establish trusted and secure connection.&nbsp;</span></p><p style="text-align:left;"><span style="color:rgb(0, 0, 0);"><br/></span></p><h3 style="text-align:left;">Low Latency</h3></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);">BLE offers low latency communication, making it suitable for real time applications such as remote controls and gaming.</span><span style="font-size:18px;font-family:Roboto, sans-serif;font-weight:700;color:rgb(0, 0, 0);"></span></div><div><br/></div><h3 style="text-align:left;">Device Roles and Asymmetry</h3><div><p style="text-align:justify;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">In the context of BLE-equipped devices, it's crucial to comprehend the architectural asymmetry which is present in the technology. Devices can have a central or peripheral role, like in a smartphone (central) and a smart band (peripheral).</span><span style="color:rgb(0, 55, 110);font-size:30px;text-align:left;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><img src="https://lh7-us.googleusercontent.com/XqvmvGIG9SWHuZaTcEBt6RGR8ePaYgZO0re2eIPiDOKvnf5xQ7_5MezTU2SIZhGxcs0QxCqCsaTIAvm6uRhurXX8owIfwkPA7Sk-TKyPb_mGb9u9VpfclU0UmKWz8wNqnhZqB52t_UmgVzzBKPs43Q" width="487" height="174" alt="asymmetrical architecture of BLE" style="font-size:11pt;color:rgb(108, 121, 139);width:716.2px !important;height:256px !important;max-width:100% !important;"></p></div><h3 style="text-align:left;">Dual-Mode Devices</h3><p style="text-align:justify;line-height:1.2;"><span style="font-family:Roboto, sans-serif;"><span style="color:rgb(0, 0, 0);font-size:11pt;">To overcome the restriction of communication solely between a central and a peripheral device, some devices are configured to operate in both central and peripheral modes simultaneously.&nbsp;</span><span style="color:rgb(0, 0, 0);font-size:11pt;">This dual-mode configuration is common in smartphones, they have the ability to function as both central and peripheral devices.&nbsp;</span></span></p><p style="text-align:justify;"><br/></p><p style="margin-left:36pt;"><span style="font-size:11pt;"><span style="width:464px;"><img src="https://lh7-us.googleusercontent.com/ndzRXHu3SnpzTf8cYplUrIekWEWITAm7Gy_iCVFg8SfEDsFRslBZnGExvIJZALReoEyM6Sj9zDqfd9-JhQLP65ZQMPu3Da44YVtoIK_HrioQ7pVvWHnMOrcoZsgHVImoMp9zaQnyx0Gss8Oit160Qw" width="464" height="260" style="width:513.84px !important;height:288px !important;max-width:100% !important;" alt="dual mode of BLE"></span></span></p><p style="margin-left:36pt;"><br/></p><p style="margin-left:36pt;"><br/></p><h2 style="text-align:left;">Difference Between Bluetooth Low Energy and Classic Bluetooth</h2><ul><ul style="line-height:1.2;"><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">Bluetooth Classic is designed for continuous, both way communication, whereas BLE transfers smaller packets of data over short periods of time;</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">Bluetooth Low Energy has much smaller energy consumption compared with Bluetooth classic</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">Bluetooth Classic is not so limited, it has a longer range and higher data throughout.</span></p></li></ul></ul><div style="text-align:justify;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div style="color:inherit;"><table border="0" cellspacing="0" cellpadding="0" width="0"><tbody><tr style="height:65px;text-align:left;vertical-align:middle;"><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(230, 126, 34);">Feature</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(230, 126, 34);">Bluetooth Low Energy (LE)</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(230, 126, 34);">Bluetooth Basic Rate/Enhanced Data Rate (BR/EDR)</span></p></blockquote></td></tr><tr><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Optimized For...</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Short burst data transmission</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Continuous data streaming</span></p></blockquote></td></tr><tr><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Frequency Band</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">2.4 GHz ISM Band (2.402 - 2.480 GHz Utilized)</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">2.4 GHz ISM Band (2.402 - 2.480 GHz Utilized)</span></p></blockquote></td></tr><tr><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Channels</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">40 channels with 2 MHz spacing (3 advertising channels/37 data channels)</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">79 channels with 1 MHz spacing</span></p></blockquote></td></tr><tr><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Channel Usage</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Frequency-Hopping Spread Spectrum (FHSS)</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Frequency-Hopping Spread Spectrum (FHSS)</span></p></blockquote></td></tr><tr><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Modulation</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">GFSK</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">GFSK, π/4 DQPSK, 8DPSK</span></p></blockquote></td></tr><tr><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Power Consumption</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">~0.01x to 0.5x of reference (depending on use case)</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">1 (reference value)</span></p></blockquote></td></tr><tr><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Data Rate</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">LE 2M PHY: 2 Mb/s LE 1M PHY: 1 Mb/s LE Coded PHY (S=2): 500 Kb/s LE Coded PHY (S=8): 125 Kb/s</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">EDR PHY (8DPSK): 3 Mb/s EDR PHY (π/4 DQPSK): 2 Mb/s BR PHY (GFSK): 1 Mb/s</span></p></blockquote></td></tr><tr><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Max Tx Power*</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Class 1: 100 mW (+20 dBm) Class 1.5: 10 mW (+10 dBm) Class 2: 2.5 mW (+4 dBm) Class 3: 1 mW (0 dBm)</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Class 1: 100 mW (+20 dBm) Class 2: 2.5 mW (+4 dBm) Class 3: 1 mW (0 dBm)</span></p></blockquote></td></tr><tr><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Network Topologies</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Point-to-Point (including piconet) Broadcast Mesh</span></p></blockquote></td><td style="text-align:center;vertical-align:middle;"><blockquote style="margin-left:40px;border:none;"><p style="text-align:left;"><span style="font-size:18px;color:rgb(0, 0, 0);">Point-to-Point (including piconet)</span></p></blockquote></td></tr></tbody></table><br/></div><div style="color:inherit;"><br/></div><div style="color:inherit;"><h2 style="text-align:left;">Espressif and BLE Integration</h2></div></div></div><div style="line-height:1.2;"><div style="line-height:1.2;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;"><a href="https://www.campuscomponent.com/brand-details/espressif">Espressif</a>, a leading provider of wireless systems-on-chip (SoCs), has played a significant role in providing integrated BLE into its development boards and controllers. The integration of BLE into Espressif's systems has enabled developers to create intricate IoT solutions with enhanced connectivity and power efficiency.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-family:Roboto, sans-serif;"><br/></span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">Espressif's ESP32 series is known for its robust BLE capabilities. The ESP32 SoC combines Wi-Fi and BLE functionalities, providing developers with a powerful and flexible platform for building connected devices.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;"><br/></span></p><h2 style="text-align:left;">Applications of Bluetooth Low Energy (BLE)</h2><div><br/></div><div><h3 style="text-align:left;">Wearable Technology</h3></div><p style="text-align:justify;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">BLE has become a main protocol in the development of wearable devices, powering smartwatches, fitness trackers, and health monitoring devices. Its low power consumption is applied in ensuring these devices can operate for extended periods without frequent recharging.</span></p><p style="text-align:justify;"><br/></p><h3 style="text-align:left;">Healthcare Devices</h3><p style="text-align:justify;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">BLE finds maximum use in healthcare applications, connecting medical devices to smartphones for real-time monitoring. This includes devices like blood glucose monitors, heart rate monitors, and temperature sensors.</span></p><p style="text-align:justify;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;"><br/></span></p><h3 style="text-align:left;">Smart Home System</h3><p style="text-align:justify;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">BLE is a key enabler of smart home ecosystems. From smart bulbs and thermostats to door locks and security systems, BLE provides seamless communication between devices, enhancing the overall smart home experience.</span></p><p style="text-align:justify;line-height:1.2;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;"><br/></span></p><h3 style="text-align:left;">Asset Tracking</h3><p style="text-align:justify;margin-bottom:10pt;line-height:1.2;"><span style="color:rgb(0, 0, 0);"><span style="font-family:Roboto, sans-serif;">BLE is used for asset tracking applications, and businesses to monitor the location of assets within a limited space. This is valuable in industries such as logistics, where real-time tracking can streamline operations.</span></span></p><p style="text-align:justify;margin-bottom:10pt;line-height:1.2;"><span style="color:rgb(0, 0, 0);"><span style="font-family:Roboto, sans-serif;"><br/></span></span></p><h2 style="text-align:left;">Conclusion</h2><div><div style="line-height:1.2;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">In conclusion, Bluetooth Low Energy (BLE) has evolved as a main technology in the development of Internet of Things, it is transforming how devices communicate with each other. Its low power consumption and diverse applications make BLE an important addition in the Internet of Things (IoT). As technology continues to advance, the role of BLE is set to expand, driving innovation and connectivity across a wide range of industries.&nbsp;</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-family:Roboto, sans-serif;">If you are looking for&nbsp;<span style="font-size:12pt;"><a href="https://www.campuscomponent.com/categories/ble_module/2208614000002321109"><span style="font-size:11pt;">BLE modules</span></a></span>&nbsp;or&nbsp;<span style="font-size:12pt;"><a href="https://www.campuscomponent.com/categories/bluetooth/2208614000002321095"><span style="font-size:11pt;">Bluetooth modules</span></a></span>, or different&nbsp;<span style="font-size:12pt;"><a href="https://www.campuscomponent.com/categories/developement_board_programmers/2208614000002321147"><span style="font-size:11pt;">microcontrollers</span></a></span>&nbsp;from brands such as Espressif to implement BLE in your project reach out&nbsp;to the&nbsp;<span style="font-size:12pt;"><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">best electronic components online store</span></a></span>&nbsp;at Campus Component&nbsp;today!<br/></span></p></div></div></div></div></div>
</div><div data-element-id="elm_mDhLm5jJQ6q__V0VFIxiOA" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_mDhLm5jJQ6q__V0VFIxiOA"].zpelem-button{ border-radius:1px; } </style><div class="zpbutton-container zpbutton-align-center"><style type="text/css"></style><a role="button" class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="https://www.campuscomponent.com/categories/bluetooth/2208614000002321095" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Fri, 26 Jan 2024 09:51:35 +0000</pubDate></item><item><title><![CDATA[Smart Notice Board with ESP32-C6 & Dot Matrix LED Display]]></title><link>https://www.campuscomponent.com/blogs/post/smart-notice-board-with-esp32-c6-dot-matrix-led-display</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/Smart Notice Board with ESP32-C6 - Dot Matrix LED Display.jpg"/>Transform your traditional notice board into a Smart Notice Board using ESP32-C6 and Dot Matrix LED display. Explore the project overview, material requirements, and code implementation. Get started now!]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_hkBu2sCFQDi6DfG_9X0jcw" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_bwCVH92UTaal7wNphVSUXw" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_o8FF2VoiSiOsaaf4EpvEOQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_xPLvyXszTkm5dW518lZC-A" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_xPLvyXszTkm5dW518lZC-A"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_7Mch3OUFT2CyKH970B1LLg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_7Mch3OUFT2CyKH970B1LLg"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img src="/Smart%20Notice%20Board%20with%20ESP32-C6%20-%20Dot%20Matrix%20LED%20Display.jpg" style="width:995.02px !important;height:560px !important;max-width:100% !important;"><span style="font-size:12pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">In today's fast-paced world, communication is key. Traditional notice boards are getting a tech-savvy upgrade with the integration of ESP32-C6 and dot matrix LED displays. In this blog post, we'll create a Smart Notice Board that combines the power of ESP32-C6 with the dot matrix LED display. Get ready to transform your notice board into an intelligent, interactive board!</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">The traditional methods of writing the notice on paper, and having a person deliver the information to the respective groups, are prone to errors. The person delivering could deliver it to the wrong group, or tamper with the information being sent, etc.</span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">With the electronics industry moving at a fast pace, we are able to solve many such problems with digital replacements. Our project aims at eliminating the use of paper in offices, schools &amp; colleges, and other institutions which are used for the purpose of notice boards. It also minimizes the risk of errors, by replacing paper with Dot Matrix LED displays.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">In this tutorial, we will understand how to make a Web Controlled </span><span style="font-size:12pt;font-weight:700;">Smart Notice Board</span><span style="font-size:12pt;"> with </span><span style="font-size:12pt;font-weight:700;">ESP32-C6</span><span style="font-size:12pt;"> &amp; </span><span style="font-size:12pt;font-weight:700;">Dot Matrix LED Display</span><span style="font-size:12pt;">.</span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Project Overview</span></h2><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">In this project, the ESP32-C6 WiFi Module can be interfaced with an 8-in-1 MAX7219 Dot Matrix LED Display. The ESP32-C6 connects to a WiFi Network and generates a Web page. We can access the web page using the local IP Address of ESP32-C6. Using the Web Dashboard, we can send any message and display it on Dot Matrix LED Display.</span></p><p><span style="color:inherit;"><span><br></span></span></p><p style="text-align:left;"><span style="font-size:12pt;font-weight:700;color:rgb(0, 0, 0);">Material Requirements:</span></p><p></p><div align="left"><table><colgroup><col width="12"><col width="519"><col width="7"></colgroup><tbody><tr><td style="vertical-align:top;"><p><span style="font-size:12pt;color:rgb(0, 0, 0);">1</span></p></td><td style="vertical-align:top;"><p><span style="font-size:12pt;color:rgb(0, 0, 0);">)</span><a href="https://www.campuscomponent.com/products/esp32-c6-wroom-1-n8-wi-3362-d/2208614000040080145"><span style="font-size:12pt;"> ESP32-C6 Module</span></a></p><p><span style="font-size:12pt;"><span style="width:199px;"><img src="https://lh7-us.googleusercontent.com/h_O0M2hyTsbmDl95fEOUJ1wbDXQ1j2Xh_XvuwoRwjZUqzc92cqxnVVROhgwUrCK_wdkImMrkuIXOPnXQWl52_wA4WJbRWQaHdEu9P_shjtDQ_M4fsaeGaMq3ppb8HS54a2EWascefALOaetK_ArdeQ" width="199" height="144" style="width:288.7px !important;height:209px !important;max-width:100% !important;" alt="ESP-32-C6-WROOM-1"></span></span></p></td><td style="vertical-align:top;"><br></td></tr><tr><td style="vertical-align:top;"><p><span style="font-size:12pt;color:rgb(0, 0, 0);">2</span></p></td><td style="vertical-align:top;"><p><span style="font-size:12pt;"><span style="color:rgb(0, 0, 0);">)</span></span><a href="https://www.campuscomponent.com/products/max7219-dot-matrix-module-for-arduino/2208614000001835920"><span style="font-size:12pt;">8-in-1 MAX7219 Dot Matrix LED Display</span></a></p><p><span style="font-size:12pt;"><span style="width:142px;"><img alt="8x1-LED-Matrix" src="https://lh7-us.googleusercontent.com/Dqz1VSn7hAAyg1I-I22dlXUI4hLHN-vQYpmtWUCb6SV2PsFQwCEawfAXZUNo86sKmgvD8jfXG-k42V3bfbyhZwAcE8GgsWdTKBUXs92w2GTWpqcaaqt643jKs8A123N7A-jwzITkYul5NZRjcVM-uA" width="142" height="106" style="width:230.44px !important;height:172px !important;max-width:100% !important;"></span></span></p><br></td><td style="vertical-align:top;"><br></td></tr><tr><td style="vertical-align:top;"><p><span style="font-size:12pt;color:rgb(0, 0, 0);">3</span></p></td><td style="vertical-align:top;"><p><span style="font-size:12pt;"><span style="color:rgb(0, 0, 0);">)</span></span><a href="https://www.campuscomponent.com/products/g620e643da/2208614000003458013"><span style="font-size:12pt;">Jumper Wires</span></a></p><p><span style="font-size:12pt;"><span style="width:234px;"><img src="https://lh7-us.googleusercontent.com/UF8iZiDQ8mI1zeH9VxZmUA-lYrKx4ELqSKN_F6FYIhzbmlELOSI7HJCfIpUcYk0S0xFxMoNcjaqSsfFNJnIH583W7uPMXq3XN6d_KN7IczHtMp3le2hCXzahPa-O3Cpt1RD_7Gu76Sn_st1KbUHzgw" width="234" height="175" style="width:278.22px !important;height:208px !important;max-width:100% !important;" alt="jumper wire "></span></span></p><br></td><td style="vertical-align:top;"><br></td></tr><tr><td style="vertical-align:top;"><p><span style="font-size:12pt;color:rgb(0, 0, 0);">4</span></p></td><td style="vertical-align:top;" class="zp-selected-cell"><p><span style="font-size:12pt;color:rgb(0, 0, 0);">) </span><a href="https://www.campuscomponent.com/products/400-points-solderless-breadboard-te-3219-d/2208614000036099356"><span style="font-size:12pt;">Breadboard</span></a></p><p><span style="font-size:12pt;"><span style="width:232px;"><img src="https://lh7-us.googleusercontent.com/97wCbqxTN1DngCWGbxEozLjMNtRZmYMOX8k3tJT-UEGjX8EXy3UK6LPmj5Q-_YAwqK3JxAK9DsW5EKKPk_0TOUM_JgVN51Rz1sZZko-g1cFe0ziDuStJKBMs-hGBYOiRKu-LngclCJLibX4wJoGcJg" width="232" height="228" alt="breadboard"></span></span></p><h3 style="margin-bottom:4pt;"><span style="color:rgb(0, 0, 0);font-size:14pt;text-align:center;">Lets Understand the Features of Dot Matrix LED Display</span><br></h3><ul><li style="font-size:12pt;"><p><span style="font-size:12pt;color:rgb(0, 0, 0);">LED matrices come in various styles: single color, dual color, multi-color, and RGB.</span></p></li><li style="font-size:12pt;"><p style="margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">They also come in various dimensions: 5 x 7, 8 x 8, 16 x 16, 8 x 32, 32 x 32, etc.</span></p></li></ul><p><span style="font-size:12pt;"><span style="width:404px;color:rgb(0, 0, 0);"><img src="https://lh7-us.googleusercontent.com/CzmNK65bRaeyLk8YtUBGjOS7le1l3s2gn-s74iYl0hcfSfaGW7vcfBytKNmi99eoO2CAqdpp6047vy_QIHGZtNXgb44nIfMTNH_zFVfnC4bixuCowz3VYZGpZgRJwhBwqnbzVJVr6kvAv8QUMx_i1w" width="404" height="164" style="width:495.02px !important;height:201px !important;max-width:100% !important;"></span></span></p><ul><li style="font-size:12pt;"><p><span style="font-size:12pt;color:rgb(0, 0, 0);">This specific 8×64 LED Matrix Display is a cluster of 8 single modules that are internally connected.</span></p></li><li style="font-size:12pt;"><p style="margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">These modules can be separated because each one has the same Maxim MAX7219 chip and the same power and data connection.</span></p></li></ul><h2 style="margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Smart Notice Board with ESP32-C6 &amp; Dot Matrix LED Display Interface</span></h2><p><span style="font-size:12pt;color:rgb(0, 0, 0);">Make the connections of ESP32-C6 with the DOT Matrix LED display as shown in the schematic below</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:12pt;"><span style="width:515px;color:rgb(0, 0, 0);"><img src="https://lh7-us.googleusercontent.com/jlS6Rkl6GKmcvI6g2q-SbmhmfEK4vzNKy5gCpP77zAf69uaBbWyFAzVpIzHUfhNv3nif24oKW_lpU5YpadRzerjgiEsa2IU1ZJioWHdcFDSuFVCS3oqg7MJVxioelmpk4_ESSb6vBn7brINlPLZo1Q" width="515" height="282"></span></span></p><p><span style="font-size:12pt;font-weight:700;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:12pt;font-weight:700;color:rgb(0, 0, 0);">Connecting the Dot Matrix Display to the NodeMCU:</span></p><ul><li style="font-size:12pt;"><p><span style="font-size:12pt;color:rgb(0, 0, 0);">Power:&nbsp;Connect the VCC pin of the Dot Matrix Display to the 3.3V pin of the NodeMCU.</span></p></li><li style="font-size:12pt;"><p style="margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Ground:&nbsp;Connect the GND pin of the Dot Matrix Display to the GND pin of the NodeMCU.</span></p></li></ul><p><span style="font-size:12pt;font-weight:700;color:rgb(0, 0, 0);">SPI Interface:</span></p><ul><li style="font-size:12pt;"><p><span style="font-size:12pt;color:rgb(0, 0, 0);">Use the NodeMCU's default SPI GPIO pins.</span></p></li><li style="font-size:12pt;"><p><span style="font-size:12pt;color:rgb(0, 0, 0);">Connect the DIN pin of the MAX7219 to the NodeMCU D7 pin.</span></p></li><li style="font-size:12pt;"><p><span style="font-size:12pt;color:rgb(0, 0, 0);">Connect the CS pin of the MAX7219 to the NodeMCU D8 pin.</span></p></li><li style="font-size:12pt;"><p style="margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Connect the CLK pin of the MAX7219 to the NodeMCU D5 pin.</span></p></li></ul><div><h2 style="margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Source Code/Program</span></h2><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;You will require this 2 Libraries to successfully run the project</span></p><ul><li style="font-size:12pt;"><p><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">MD_MAX72xx Library:&nbsp;</span><a href="https://github.com/MajicDesigns/MD_MAX72XX"><span style="font-size:12pt;">Download</span></a></span></p></li><li style="font-size:12pt;"><p style="margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">MD_Parola Library:&nbsp;</span><a href="https://github.com/MajicDesigns/MD_Parola"><span style="font-size:12pt;">Download</span></a></span></p></li></ul><p><span style="font-size:12pt;color:rgb(0, 0, 0);">Add this library to the Arduino IDE, and then call it in the main program. Upload the following code to the ESP32-C6 board.</span></p><h3 style="margin-bottom:4pt;"><span style="font-size:14pt;color:rgb(0, 0, 0);">Main Code</span></h3><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#include &lt;ESP8266WiFi.h&gt;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#include &lt;MD_Parola.h&gt;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#include &lt;MD_MAX72xx.h&gt;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#include &lt;SPI.h&gt;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">// Turn on debug statements to the serial output</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#define&nbsp;DEBUG&nbsp;0</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#if&nbsp;DEBUG</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#define PRINT(s, x) { Serial.print(F(s)); Serial.print(x); }</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#define PRINTS(x) Serial.print(F(x))</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#define PRINTX(x) Serial.println(x, HEX)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#else</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#define PRINT(s, x)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#define PRINTS(x)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#define PRINTX(x)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#endif</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;#define HARDWARE_TYPE MD_MAX72XX::FC16_HW</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#define MAX_DEVICES 8</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#define CS_PIN&nbsp;15 // or SS</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">// HARDWARE SPI</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">// WiFi login parameters - network name and password</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">const char* ssid = &quot;campus&quot;;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">const char* password = &quot;component&quot;;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">// WiFi Server object and parameters</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">WiFiServer server(80);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">// Scrolling parameters</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">uint8_t frameDelay = 25;&nbsp;// default frame delay value</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">textEffect_t&nbsp;scrollEffect = PA_SCROLL_LEFT;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">// Global message buffers shared by Wifi and Scrolling functions</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#define BUF_SIZE&nbsp;512</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">char curMessage[BUF_SIZE];</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">char newMessage[BUF_SIZE];</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">bool newMessageAvailable = false;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">const char WebResponse[] = &quot;HTTP/1.1 200 OK\nContent-Type: text/html\n\n&quot;;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">const char WebPage[] =</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;!DOCTYPE html&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;html&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;head&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;title&gt;MajicDesigns Test Page&lt;/title&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;script&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;strLine = \&quot;\&quot;;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;function SendData()&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;{&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&nbsp;nocache = \&quot;/&amp;nocache=\&quot; + Math.random() * 1000000;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&nbsp;var request = new XMLHttpRequest();&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&nbsp;strLine = \&quot;&amp;MSG=\&quot; + document.getElementById(\&quot;data_form\&quot;).Message.value;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&nbsp;strLine = strLine + \&quot;/&amp;SD=\&quot; + document.getElementById(\&quot;data_form\&quot;).ScrollType.value;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&nbsp;strLine = strLine + \&quot;/&amp;I=\&quot; + document.getElementById(\&quot;data_form\&quot;).Invert.value;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&nbsp;strLine = strLine + \&quot;/&amp;SP=\&quot; + document.getElementById(\&quot;data_form\&quot;).Speed.value;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&nbsp;request.open(\&quot;GET\&quot;, strLine + nocache, false);&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&nbsp;request.send(null);&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;}&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;/script&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;/head&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;body&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;p&gt;&lt;b&gt;Smart Notice Board&lt;/b&gt;&lt;/p&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;formdata_form\&quot;&quot; name=&quot;\&quot;frmText\&quot;&quot;&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;label&gt;Message:&lt;br&gt;&lt;input type=&quot;\&quot;text\&quot;&quot; name=&quot;\&quot;Messa&quot;ge\&quot; maxlength=&quot;\&quot;255\&quot;&quot;&gt;&lt;/label&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;br&gt;&lt;br&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;input type = \&quot;radio\&quot; name = \&quot;Invert\&quot; value = \&quot;0\&quot; checked&gt; Normal&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;input type = \&quot;radio\&quot; name = \&quot;Invert\&quot; value = \&quot;1\&quot;&gt; Inverse&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;br&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;input type = \&quot;radio\&quot; name = \&quot;ScrollType\&quot; value = \&quot;L\&quot; checked&gt; Left Scroll&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;input type = \&quot;radio\&quot; name = \&quot;ScrollType\&quot; value = \&quot;R\&quot;&gt; Right Scroll&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;br&gt;&lt;br&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;label&gt;Speed:&lt;br&gt;Fast&lt;input type=&quot;\&quot;ran&quot;ge\&quot; name=&quot;\&quot;Speed\&quot;min=\&quot;10\&quot;&quot; max=&quot;\&quot;200\&quot;&quot;&gt;Slow&quot;\</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;br&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;/form&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;br&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;input type=&quot;\&quot;submit\&quot;&quot; value=&quot;\&quot;Send&quot; Data\&quot;SendData()\&quot;&quot;&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;/body&gt;&quot; \</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&quot;&lt;/html&gt;&quot;;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">const char *err2Str(wl_status_t code)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;switch (code)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;case WL_IDLE_STATUS:&nbsp;return(&quot;IDLE&quot;);&nbsp; break; // WiFi is in process of changing between statuses</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;case WL_NO_SSID_AVAIL:&nbsp;return(&quot;NO_SSID_AVAIL&quot;);&nbsp;break; // case configured SSID cannot be reached</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;case WL_CONNECTED:&nbsp;return(&quot;CONNECTED&quot;);&nbsp;break; // successful connection is established</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;case WL_CONNECT_FAILED: return(&quot;CONNECT_FAILED&quot;); break; // password is incorrect</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;case WL_DISCONNECTED:&nbsp; return(&quot;CONNECT_FAILED&quot;); break; // module is not configured in station mode</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;default: return(&quot;??&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">uint8_t htoi(char c)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;c = toupper(c);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if ((c &gt;= '0') &amp;&amp; (c &lt;= '9')) return(c - '0');</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if ((c &gt;= 'A') &amp;&amp; (c &lt;= 'F')) return(c - 'A' + 0xa);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;return(0);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">void getData(char *szMesg, uint16_t len)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">// Message may contain data for:</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">// New text (/&amp;MSG=)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">// Scroll direction (/&amp;SD=)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">// Invert (/&amp;I=)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">// Speed (/&amp;SP=)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;char *pStart, *pEnd;&nbsp;// pointer to start and end of text</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;// check text message</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;pStart = strstr(szMesg, &quot;/&amp;MSG=&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if (pStart != NULL)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;char *psz = newMessage;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;pStart += 6;&nbsp;// skip to start of data</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;pEnd = strstr(pStart, &quot;/&amp;&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if (pEnd != NULL)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;while (pStart != pEnd)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if ((*pStart == '%') &amp;&amp; isxdigit(*(pStart + 1)))</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;// replace %xx hex code with the ASCII character</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;char c = 0;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;pStart++;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;c += (htoi(*pStart++) &lt;&lt; 4);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;c += htoi(*pStart++);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;*psz++ = c;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;else</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;*psz++ = *pStart++;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;*psz = '\0'; // terminate the string</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;newMessageAvailable = (strlen(newMessage) != 0);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINT(&quot;\nNew Msg: &quot;, newMessage);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;// check scroll direction</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;pStart = strstr(szMesg, &quot;/&amp;SD=&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if (pStart != NULL)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;pStart += 5;&nbsp;// skip to start of data</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINT(&quot;\nScroll direction: &quot;, *pStart);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;scrollEffect = (*pStart == 'R' ? PA_SCROLL_RIGHT : PA_SCROLL_LEFT);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;P.setTextEffect(scrollEffect, scrollEffect);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;P.displayReset();</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;// check invert</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;pStart = strstr(szMesg, &quot;/&amp;I=&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if (pStart != NULL)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;pStart += 4;&nbsp;// skip to start of data</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINT(&quot;\nInvert mode: &quot;, *pStart);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;P.setInvert(*pStart == '1');</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;// check speed</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;pStart = strstr(szMesg, &quot;/&amp;SP=&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if (pStart != NULL)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;pStart += 5;&nbsp;// skip to start of data</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;int16_t speed = atoi(pStart);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINT(&quot;\nSpeed: &quot;, P.getSpeed());</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;P.setSpeed(speed);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;frameDelay = speed;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">void handleWiFi(void)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;static enum { S_IDLE, S_WAIT_CONN, S_READ, S_EXTRACT, S_RESPONSE, S_DISCONN } state = S_IDLE;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;static char szBuf[1024];</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;static uint16_t idxBuf = 0;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;static WiFiClient client;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;static uint32_t timeStart;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;switch (state)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;case S_IDLE:&nbsp; // initialise</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINTS(&quot;\nS_IDLE&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;idxBuf = 0;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;state = S_WAIT_CONN;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;break;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;case S_WAIT_CONN:&nbsp; // waiting for connection</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;client = server.available();</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if (!client) break;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if (!client.connected()) break;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#if DEBUG</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;char szTxt[20];</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;sprintf(szTxt, &quot;%03d:%03d:%03d:%03d&quot;, client.remoteIP()[0], client.remoteIP()[1], client.remoteIP()[2], client.remoteIP()[3]);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINT(&quot;\nNew client @ &quot;, szTxt);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">#endif</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;timeStart = millis();</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;state = S_READ;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;break;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;case S_READ: // get the first line of data</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINTS(&quot;\nS_READ &quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;while (client.available())</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;char c = client.read();</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if ((c == '\r') || (c == '\n'))</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;szBuf[idxBuf] = '\0';</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;client.flush();</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINT(&quot;\nRecv: &quot;, szBuf);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;state = S_EXTRACT;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;else</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;szBuf[idxBuf++] = (char)c;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if (millis() - timeStart &gt; 1000)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINTS(&quot;\nWait timeout&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;state = S_DISCONN;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;break;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;case S_EXTRACT: // extract data</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINTS(&quot;\nS_EXTRACT&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;// Extract the string from the message if there is one</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;getData(szBuf, BUF_SIZE);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;state = S_RESPONSE;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;break;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;case S_RESPONSE: // send the response to the client</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINTS(&quot;\nS_RESPONSE&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;// Return the response to the client (web page)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;client.print(WebResponse);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;client.print(WebPage);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;state = S_DISCONN;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;break;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;case S_DISCONN: // disconnect client</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINTS(&quot;\nS_DISCONN&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;client.flush();</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;client.stop();</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;state = S_IDLE;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;break;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;default:&nbsp;state = S_IDLE;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">void setup()</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;Serial.begin(57600);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINTS(&quot;\n[MD_Parola WiFi Message Display]\nType a message for the scrolling display from your internet browser&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;P.begin();</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;P.setIntensity(0);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;P.displayClear();</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;P.displaySuspend(false);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;P.displayScroll(curMessage, PA_LEFT, scrollEffect, frameDelay);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;curMessage[0] = newMessage[0] = '\0';</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;// Connect to and initialise WiFi network</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINT(&quot;\nConnecting to &quot;, ssid);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;WiFi.begin(ssid, password);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;while (WiFi.status() != WL_CONNECTED)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINT(&quot;\n&quot;, err2Str(WiFi.status()));</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;delay(500);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINTS(&quot;\nWiFi connected&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;// Start the server</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;server.begin();</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINTS(&quot;\nServer started&quot;);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;// Set up first message as the IP address</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;sprintf(curMessage, &quot;%03d:%03d:%03d:%03d&quot;, WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], WiFi.localIP()[3]);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;PRINT(&quot;\nAssigned IP &quot;, curMessage);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">void loop()</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;handleWiFi();</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if (P.displayAnimate())</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;if (newMessageAvailable)</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;strcpy(curMessage, newMessage);</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;newMessageAvailable = false;</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;P.displayReset();</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">}</span></p><h2 style="margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Testing the ESP8266 Smart Notice Board</span></h2><p><span style="font-size:12pt;color:rgb(0, 0, 0);">After uploading the code, the ESP8266 will connect to the WiFi Network using the WiFi Credentials. The Dot Matrix LED Display will show the IP Address after a successful connection.&nbsp;</span></p><p style="color:inherit;"><span style="font-size:12pt;"><span style="width:624px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img src="https://lh7-us.googleusercontent.com/-yMQp1PMznXduGon-vgALUK15lnxYv1Ei6iEs0VGLMBwMBJfW23e36Ek4DI0kMJuDnfm04TOx2dda7wvv7T-WAduB0qOPCck18qrSYJgFGllW7lJW2AVzY1_i_ikBwvQvQO6UtuFzEvYsawOMZPcXQ" width="624" height="182"></span></span></p><p style="color:inherit;"><span style="font-size:12pt;"><br></span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">Open your Web Browser and enter the IP Address. The browser will display the following page.</span></p><p style="color:inherit;"><span style="font-size:12pt;"><span style="width:624px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img src="https://lh7-us.googleusercontent.com/ZA_NBpDkUK49cJmKBWQ97FxA8j5s4uGpFywB35M4XX3MkNeci6mueaKfttuWUI8jwORKjsk2W9RhcsQ02pMhSrKrrsy3w0yu6WssY0HIJSVHxCdwRc0BbX-szFJFmZHXHomz7Yk4_5AG_5f1E2zwKw" width="624" height="341"></span></span></p><p style="color:inherit;"><span style="font-size:12pt;"><br></span></p><p><span style="font-size:12pt;color:rgb(0, 0, 0);">From the Web Page enter any message that you want to display on DoT Matrix Display as a Notice. Then hit the send button. The Dot Matrix will show the new message in a few seconds.</span></p><p style="color:inherit;"><span style="font-size:12pt;"><span style="width:624px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img src="https://lh7-us.googleusercontent.com/GwHRnRJtuds-kcx3QGTYqANuOUD_KGlBxJT4d6wuXK9RclLeNfVX8ARqMG1ESVfEN390I2i7efV_YlRmD8HMctRTzQrMXOYAtq4eluiW6PMGfhdzkBpRC3pN-a9qQ5wUWkKaIMbIvScn0OQ860AlYQ" width="624" height="202"></span></span></p><h2 style="margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Conclusion</span></h2><p><span style="font-size:12pt;color:rgb(0, 0, 0);">In conclusion, building a Smart Notice Board with ESP32-C6 and dot matrix LED display opens up new ways for dynamic communication. This tutorial empowers enthusiasts to work on this exciting project, combining hardware, programming, and creativity. Elevate your notice board game and embrace the future of interactive communication.&nbsp;</span></p><span style="color:rgb(0, 0, 0);"><br></span><p><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">If you are looking for different types of DOT matrix, LED display or </span><a href="https://www.campuscomponent.com/categories/lcd_led_display/2208614000002321137"><span style="font-size:12pt;">LCD display</span></a><span style="font-size:12pt;"> and electronic components and different microcontrollers from Espressif, </span><a href="https://www.campuscomponent.com/brand-details/arduino"><span style="font-size:12pt;">Arduino</span></a><span style="font-size:12pt;">, and many more, reach out to </span><a href="https://www.campuscomponent.com/"><span style="font-size:12pt;">electronics components suppliers in india</span></a><span style="font-size:12pt;"> - Campus Component&nbsp;today!&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span></span></p></div></td><td style="vertical-align:top;"><br></td></tr></tbody></table></div>
</div></div><div data-element-id="elm_mey0XdRHSS62c4qNteKmQw" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_mey0XdRHSS62c4qNteKmQw"].zpelem-button{ border-radius:1px; } </style><div class="zpbutton-container zpbutton-align-center"><style type="text/css"></style><a role="button" class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="https://www.campuscomponent.com/categories/wifi_module/2208614000002321101" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Fri, 22 Dec 2023 06:36:14 +0000</pubDate></item><item><title><![CDATA[How to Perform HTTP GET Request using GSM Module]]></title><link>https://www.campuscomponent.com/blogs/post/how-to-perform-http-get-request-using-gsm-module</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/How to Perform HTTP GET Request using GSM Module.png"/>A step-by-step guide on performing HTTP GET requests using the powerful A7672S GSM module. Explore the seamless integration of GSM technology into your electronic projects.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_lSU16oWpS72L-yNsqYtIkA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_K6MqxjXNSPSykMRRBofeMw" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_XIWOmFm-SbacVKyOoi5eRQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"> [data-element-id="elm_XIWOmFm-SbacVKyOoi5eRQ"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_Hh8NYVG4T2m0qn-sjEVzoA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_Hh8NYVG4T2m0qn-sjEVzoA"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_J49N9u8YRvWr6Bghgsf58Q" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_J49N9u8YRvWr6Bghgsf58Q"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img src="/How%20to%20Perform%20HTTP%20GET%20Request%20using%20GSM%20Module.png" style="width:754.26px !important;height:461px !important;max-width:100% !important;" alt="How to Perform HTTP GET Request using GSM Module"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;"><br></span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">With the use of GSM data can be sent to a web server via HTTP using </span><span style="font-size:11pt;font-weight:700;">POST/GET</span><span style="font-size:11pt;">. This allows us to connect any Embedded or IOT applications and other sensors to the Internet at a reasonable price if Ethernet, LoRa or WiFi is not available at the site. In This article we will learn how to send a HTTP request with the </span><span style="font-size:11pt;font-weight:700;">A7672S using AT commands</span><span style="font-size:11pt;">.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">The AS7672 GSM module is a powerful tool that enables seamless integration of Global System for Mobile Communications (GSM) technology into electronic projects. In this blog post, we'll deep dive into the step-by-step process of performing HTTP GET requests using the A7672S GSM module, unlocking a world of possibilities for your </span><span style="font-size:11pt;font-weight:700;">IoT </span><span style="font-size:11pt;">(Internet of Things) applications.</span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Project Overview</span></h2><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">In this project the GSM module i.e </span><span style="font-size:11pt;font-weight:700;">A7672S</span><span style="font-size:11pt;"> is interfaced with Microcontroller, and the server connection is established by the AT commands passed by microcontroller to the GSM module. By performing GET requests we can get the information stored on our server and also download files, or images, etc.</span></span></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14pt;color:rgb(0, 0, 0);">Hardware Requirements</span></h3><div align="left"><table style="text-align:justify;"><colgroup><col width="382"><col width="0"></colgroup><tbody><tr><td style="vertical-align:top;"><p><span style="font-size:11pt;font-weight:700;">1. </span><a href="https://www.campuscomponent.com/products/a7672s-without-gnss-/2208614000011177314"><span style="font-size:11pt;">A7672S 4G GSM Module</span></a></p><p style="margin-left:36pt;"><span style="font-size:11pt;"><span style="width:331px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img alt="How to Perform HTTP GET Request using GSM Module" src="https://lh7-us.googleusercontent.com/ojjtPnYecUEd4WN6rPCXjwVL01-ztdccsWOHJE3D57rfNZXAWlhW3d_jrHKKZxE1-8YakptNE09yuDSfCrX8KNFffb8cRyCD9mNN2q7pfWdfYckDt59we4_gN6z3vyzf-y-hWkz7Y7B6ukOOnhcaFg" width="331" height="155"></span></span></p><p><span style="font-size:11pt;">2. </span><a href="https://www.campuscomponent.com/products/espressif-esp32-devkitc-32d-development-board/2208614000001841024"><span style="font-size:11pt;">ESP32 DEV Module</span></a></p><p style="margin-left:36pt;margin-bottom:10pt;"><span style="font-size:11pt;"><span style="width:158px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img alt="How to Perform HTTP GET Request using GSM Module" src="https://lh7-us.googleusercontent.com/X28QOQ1ut7T-GB-qD8PKnaclejVNBINbLd1Xyz-4TyDks-oAectfDECLwWeKniqLKfVfz3yspIKqbmiCraE0iFOPkO8tGB2oEKV1RL_NTX6wD5049loJMmX_U_SgqaDTNl2ztuQjHygZGHdIE7Bv8A" width="158" height="197"></span></span></p></td><td style="vertical-align:top;"><ul><li style="font-size:11pt;"><br></li></ul></td></tr><tr><td style="vertical-align:top;"><br><br><p><span style="font-size:11pt;">3. </span><a href="https://www.campuscomponent.com/products/g620e643da/2208614000003458013"><span style="font-size:11pt;">Connecting Wires</span></a></p><p style="margin-left:36pt;"><span style="font-size:11pt;"><span style="width:279px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img alt="How to Perform HTTP GET Request using GSM Module" src="https://lh7-us.googleusercontent.com/txOh60U6R4BWsm_2WJSc7x85nwSsp2yyfaBn8yxFOSLsvJHXnakUMOCN2PlePF81ph86hA_-6x_Q1ZzQQELLDzW2D4VLp_RQZhOFk4wkkDWbT6P9UN-68im9igrA2J9vaOOMAHH65FoxSv-cYWTSvQ" width="279" height="209"></span></span></p><p><span style="font-size:11pt;">4. </span><a href="https://www.campuscomponent.com/products/400-points-solderless-breadboard-te-3219-d/2208614000036099356"><span style="font-size:11pt;">Breadboard</span></a></p><p style="margin-left:36pt;margin-bottom:10pt;"><span style="font-size:11pt;"><span style="width:264px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img alt="How to Perform HTTP GET Request using GSM Module" src="https://lh7-us.googleusercontent.com/YY462RGobiaoqc_tHm1pXbo9JKKqvfKutHSP8iswoD-fZgcyMT60XmusTeqiEk_5w3ZpxUtheiXVoyP_D5IvD-9wskDmHNkGXiltDWkueXNDIEi2Vh4YeZpj83dy2KzhmYa7Awo7j9TgeyUXz3LqIQ" width="264" height="259"></span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"></h2></td><td style="text-align:justify;vertical-align:top;"><span style="color:rgb(0, 0, 0);"><br></span></td></tr></tbody></table></div><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">SIM7672S is the LTE Cat 1 module which supports wireless communication modes of LTE-FDD/GSM/GPRS/EDGE.It supports maximum 10 Mbps downlink rate and 5 Mbps uplink rate.&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Meanwhile A7672S integrates abundant industrial standard interfaces with powerful expansibility, such as UART, USB, I2C and GPIO, which makes it perfectly suitable for main IOT applications such as telematics, surveillance devices, industrial routers, and remote diagnostics etc.</span></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14pt;color:rgb(0, 0, 0);">Hardware Connection</span></h3><ol><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the A7672S to ESP32 via UART pins i.e RX pin to TX and TX pin to Rx.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect a proper power supply to ensure the module turns on.</span></p></li></ol><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">After successfully making the connections we will code the ESP32 so the whole process gets automated.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Copy the following code and paste in Arduino IDE and select ESP32 Dev Module, further compile the code and upload it:</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">1. Initialize the GSM Module:</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Write a simple Arduino sketch to initialize the GSM module. This includes configuring the necessary parameters such as baud rate, communication pins, and other settings</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;SoftwareSerial.h&gt;&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">SoftwareSerial gsmSerial(7, 8); // RX, TX&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void setup()</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">{ Serial.begin(9600);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">gsmSerial.begin(9600); // Initialize the GSM module&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">gsmSerial.println(&quot;AT&quot;);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">delay(1000);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">while(gsmSerial.available())&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">{ Serial.write(gsmSerial.read()); } }&nbsp;</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">2. Configure Internet Settings:</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Configure the APN (Access Point Name) settings for your cellular network provider. This information is crucial for establishing an internet connection through the GSM module.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void setup() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Set the APN for your cellular network provider gsmSerial.println(&quot;AT+CGDCONT=1,\&quot;IP\&quot;,\&quot;your_apn\&quot;&quot;);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">delay(1000);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">while(gsmSerial.available())&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">{ Serial.write(gsmSerial.read()); } }&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//Replace &quot;your_apn&quot; with the correct APN for your cellular network provider.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">3. Perform HTTP GET Request:</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Now, it's time to send an HTTP GET request. This example sends a request to a server with an endpoint &quot;/data&quot; and displays the response.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void setup()&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">{&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Perform HTTP GET request&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">gsmSerial.println(&quot;AT+HTTPINIT&quot;);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">delay(1000);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">while(gsmSerial.available())&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">{ Serial.write(gsmSerial.read()); } gsmSerial.println(&quot;AT+HTTPPARA=\&quot;URL\&quot;,\&quot;http://your_server.com/data\&quot;&quot;);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">delay(1000);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">while(gsmSerial.available())&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">{ Serial.write(gsmSerial.read()); }&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">gsmSerial.println(&quot;AT+HTTPACTION=0&quot;);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">delay(10000); // Adjust delay based on server response time&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">while(gsmSerial.available())&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">{ Serial.write(gsmSerial.read()); }&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">gsmSerial.println(&quot;AT+HTTPTERM&quot;);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">delay(1000);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">while(gsmSerial.available())&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">{ Serial.write(gsmSerial.read()); }&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//Replace &quot;http://your_server.com/data&quot; with the actual URL you want to request.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">After Successfully compiling and Uploading you will get the following response on Serial Monitor for the performed GET requests.</span></p><p><span style="font-size:11.5pt;font-weight:700;"><span style="width:624px;color:rgb(0, 0, 0);"><img src="https://lh7-us.googleusercontent.com/f18Y2kRQfpqFG4W8KrY78oK8dp7QF_1nyJP8IeyooduKPtwOAP-yLHd3PwJAdDsehwGPYEEtALAbLNhw8LLSE70a7xKr0q4uVXwYeIXgaxY6_rRXxkXOWiLxFajLMqhYaE40hyfyQ0C8pihAq1cwvA" width="624" height="255" alt="How to Perform HTTP GET Request using GSM Module"></span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Conclusion</span></h2><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">By following these steps, you can successfully perform HTTP GET requests using the A7672S GSM module. This opens up opportunities for creating IoT devices, remote monitoring systems, and much more. Experiment with different commands and explore the capabilities of the GSM module to your specific project requirements.</span></p><p></p><div style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">If you are looking to build project incorporating GSM module like SIM7672 and other electronic components from brands such as </span><a href="https://www.campuscomponent.com/brand-details/espressif"><span style="font-size:11pt;">Espressif</span></a><span style="font-size:11pt;"> reach out&nbsp;Campus Component -&nbsp;</span><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">best electronic components online store</span></a><span style="font-size:11pt;"> today!</span></span></div><p></p></div>
</div><div data-element-id="elm_oUu4eoH8Sq6D51ELK9yszw" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_oUu4eoH8Sq6D51ELK9yszw"].zpelem-button{ border-radius:1px; } </style><div class="zpbutton-container zpbutton-align-center"><style type="text/css"></style><a role="button" class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="https://www.campuscomponent.com/categories/wireless_module/2208614000002321087" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Fri, 15 Dec 2023 12:32:36 +0000</pubDate></item><item><title><![CDATA[Bluetooth Enabled Smart Bulb using ESP32 WROOM 32E Module]]></title><link>https://www.campuscomponent.com/blogs/post/Building-a-Bluetooth-Enabled-Smart-Bulb-using-ESP32-Wroom-32E-Module</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/Bluetooth Enabled Smart Bulb using ESP32 WROOM 32E Module.png"/>Explore the world of smart home technology with our step-by-step tutorial on creating a Bluetooth-enabled smart bulb using the ESP32 Wroom-32E module. Control your home lighting effortlessly through your smartphone.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_pTtJsmiATr-zzqWkZp0m2w" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_KM_7xQK5Rsya43jGGhk_jA" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_WWRSZGxRRfGrZ8Xg8YkLKA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_4Ha-S3q_Qnq_NYbc5eY-iQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_4Ha-S3q_Qnq_NYbc5eY-iQ"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"><br></h2></div>
<div data-element-id="elm_KE3UVHfNT1OWDlru789xGA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_KE3UVHfNT1OWDlru789xGA"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img src="/Bluetooth%20Enabled%20Smart%20Bulb%20using%20ESP32%20WROOM%2032E%20Module.png" alt="Bluetooth Enabled Smart Bulb using ESP32 WROOM 32E Module"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;"><br></span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;"><br></span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">In the ever-evolving landscape of smart home technology and IOT, One great application is Bluetooth-enabled smart bulb using the </span><span style="font-size:11pt;font-weight:700;">ESP32 Wroom-32E module</span><span style="font-size:11pt;">.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">In this article we will see a tutorial to build a Bluetooth enabled Smart Bulb using ESP32 Wroom 32E Module. This innovative project allows you to control your home lighting system effortlessly via your smartphone. In this blog post, we'll explore the key components, functionalities, and step-by-step guide to building your own wireless bulb.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">An&nbsp;ESP32&nbsp;microcontroller can be used to control a light&nbsp;bulb&nbsp;over&nbsp;Bluetooth&nbsp;by using a relay to switch the power to the bulb on and off. The&nbsp;ESP32&nbsp;can be programmed to listen for&nbsp;Bluetooth&nbsp;commands and use its digital output pin to control the&nbsp;relay.</span></p><p><span style="font-size:11pt;"><span style="width:624px;"><img src="https://lh7-us.googleusercontent.com/EfMo_xp4qYaqj4Id5zHgfhVSPLPFSGgeZTE2nB6tzxMvOJIw4AbTUTqXm1xOzT4PhN09kmYgZ0z_d_JCtoGrBGUsWmCanjq6DLyokYuI4aLgoftKyCkaZtszZXJxUHTytFk2Eiizt1s8gUp_XiO_Ag" width="624" height="245" alt="Bluetooth Enabled Smart Bulb using ESP32 WROOM 32E Module"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Let’s now discuss the construction requirements for this project:</span></p><h2 style="text-align:left;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Components Needed For This Project</span></h2><ol><li style="font-size:11pt;font-weight:700;"><p style="text-align:left;margin-bottom:10pt;"><a href="https://www.campuscomponent.com/products/esp-32-wroom-32-e-16mb-wi-2691-d/2208614000020823359"><span style="font-size:11pt;">ESP32 Wroom-32E Module</span></a></p></li></ol><p><span style="font-size:11pt;font-weight:700;"><span style="width:115px;"><img src="https://lh7-us.googleusercontent.com/YLn47-QTT_9BMGCaVt51B2j_nwwLlyUjVJXd9G8cw6doMnhCp8odocD4Nh81-WwYWUFXzWK1wPvEyVLuUg7hKpFo-YChPBG7IyQxwPx8NKYjDTnpMuPFimrBb_oIWG84etexXcZ9xCEVNBN3TOQo-Q" width="115" height="223" alt="Bluetooth Enabled Smart Bulb using ESP32 WROOM 32E Module"></span></span></p><ol start="2"><li style="font-size:11pt;font-weight:700;"><p style="text-align:left;"><a href="https://www.campuscomponent.com/products/f5af46a966/2208614000001837386"><span style="font-size:11pt;">LED Bulb</span></a></p></li></ol><p style="margin-left:36pt;"><span style="font-size:11pt;"><span style="width:109px;"><img src="https://lh7-us.googleusercontent.com/URfOtfHS_TrHhiwz1ACUddEjKxuCQ_cFI4YwGgUCgPIsDE_NzMyGI2AR_ib48qkNjFtE0IePVCNSILhVsh9XX3MY6QH-JExCrr_H4YPongsp1tnFdIkyB0ZhsNTSLeFbw2ciIsVu6EYNm66g4jWBOA" width="109" height="219" alt="Bluetooth Enabled Smart Bulb using ESP32 WROOM 32E Module"></span></span></p><p><span style="color:inherit;"><span><br></span></span></p><ol start="3"><li style="font-size:11pt;font-weight:700;"><p style="text-align:left;"><a href="https://www.campuscomponent.com/products/2-channel-relay-module-with-lightcoupling-5v/2208614000001861995"><span style="font-size:11pt;">Relay Module</span></a></p></li></ol><p style="margin-left:36pt;"><span style="font-size:11pt;"><span style="width:239px;"><img src="https://lh7-us.googleusercontent.com/67Rfc5Wsp4kBSluGu_d6Bu2pGjYcrT80vEdiule-_6TXjHPz6cYUERfIYPSg7XHzdwfZpQMHjU3GfU9NEbTGQdiAhjhxYxdiZ94tX9fe3fo0o-Ac4xZNjeYLMC2sC8ZEGm-I13Q1zsVMwgNsRi2AWw" width="239" height="165" alt="Bluetooth Enabled Smart Bulb using ESP32 WROOM 32E Module"></span></span></p><p><span style="color:inherit;"><span><br></span></span></p><ol start="4"><li style="font-size:11pt;font-weight:700;"><p style="text-align:left;"><a href="https://www.campuscomponent.com/products/g620e643da/2208614000003458013"><span style="font-size:11pt;">Jumper Wires</span></a></p></li></ol><p><span style="color:inherit;"><span><br></span></span></p><p style="margin-left:36pt;"><span style="font-size:11pt;"><span style="width:225px;"><img src="https://lh7-us.googleusercontent.com/-RA0zF3yAAOVHAkoasIY56xOLfBsRhEbDGXYst2h_KfkvyWtIsoji8RU0tq0X2bYAF6qduhK1oICRvhMEwnb_gYsEwhXaqCA_-S6JbgUCieIEH_uOj1eXGJGXaVwezY4JwgIiwWxu0ebLWwFslaahw" width="225" height="225" alt="Bluetooth Enabled Smart Bulb using ESP32 WROOM 32E Module"></span></span></p><p><span style="color:inherit;"><span><br><br><br><br></span></span></p><ol start="5"><li style="font-size:11pt;font-weight:700;"><p style="text-align:left;"><a href="https://www.campuscomponent.com/products/400-points-solderless-breadboard-te-3219-d/2208614000036099356"><span style="font-size:11pt;">Breadboard</span></a></p></li></ol><p><span style="color:inherit;"><span><br></span></span></p><p style="margin-left:36pt;"><span style="font-size:11pt;"><span style="width:239px;"><img src="https://lh7-us.googleusercontent.com/fV1DRBAlkoumsNWunLmmPCP5eLBoo36tBkDrOmqWa2qZ5h-wcQ0-YwXgYkMtLnDxVqHDWDzcqEdiOQRHUiSdgRPbqrNYkY_mXjIFOcOxpj_cJzUbgD4llA3ekd7Vr_9_ju3WOKZh102XQ4oVgyUksg" width="239" height="148" alt="Bluetooth Enabled Smart Bulb using ESP32 WROOM 32E Module"></span></span></p><p><span style="color:inherit;"><span><br></span></span></p><ol start="6"><li style="font-size:11pt;"><p style="text-align:left;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">And, Bluetooth enabled Smartphone</span></p></li></ol><p style="text-align:left;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Building the Circuit:</span></p><ul><li style="font-size:11pt;"><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the (-) pin of the relay to the GND pin of the ESP32 board</span></p></li><li style="font-size:11pt;"><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the (+) pin of the relay to the 3.3V pin of the ESP32 board</span></p></li><li style="font-size:11pt;"><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the (S) pin of the relay to the GPIO23 pin of the ESP32 board</span></p></li><li style="font-size:11pt;"><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the (ON) pin of the relay to one of the lamp terminals</span></p></li><li style="font-size:11pt;"><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the (COM) pin of the relay to the electrical source</span></p></li><li style="font-size:11pt;"><p style="text-align:left;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the other terminal of the lamp to the electrical source.</span></p></li></ul><p><span style="font-size:11pt;"><span style="width:528px;"><img src="https://lh7-us.googleusercontent.com/cshnYGemDTtkPyai7E-mtUzU7GiI250jUhKDGxRAr1WGlok32g427VUQ1I6YhksIn0fZ7MWf69z9yDFWZSMHKeDH4zRR_DNrbQRdZfTDQYS9PdxAIZHME-P6mVIyDd01qqw4ftyyE6LeYwn_LnnInQ" width="528" height="485" alt="Bluetooth Enabled Smart Bulb using ESP32 WROOM 32E Module"></span></span></p><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Complete code:</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &quot;BluetoothSerial.h&quot;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#endif</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">BluetoothSerial SerialBT;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">int received;// received value will be stored in this variable</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">char receivedChar;// received value will be stored as CHAR in this variable</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const char turnON ='a';</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const char turnOFF ='b';</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const int LEDpin = 23;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void setup() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.begin(115200);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;SerialBT.begin(&quot;Campus_Component&quot;); //Bluetooth device name</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;The device started, now you can pair it with bluetooth!&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;To turn ON send: a&quot;);//print on serial monitor&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;To turn OFF send: b&quot;); //print on serial monitor&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;pinMode(LEDpin, OUTPUT);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void loop() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;receivedChar =(char)SerialBT.read();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (Serial.available()) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;SerialBT.write(Serial.read());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (SerialBT.available()) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;SerialBT.print(&quot;Received:&quot;);// write on BT app</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;SerialBT.println(receivedChar);// write on BT app&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print (&quot;Received:&quot;);//print on serial monitor</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(receivedChar);//print on serial monitor&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;//SerialBT.println(receivedChar);//print on the app&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;//SerialBT.write(receivedChar); //print on serial monitor</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if(receivedChar == turnON)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;SerialBT.println(&quot;LED ON:&quot;);// write on BT app</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;LED ON:&quot;);//write on serial monitor</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;digitalWrite(LEDpin, HIGH);// turn the LED ON</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if(receivedChar == turnOFF)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;{</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;SerialBT.println(&quot;LED OFF:&quot;);// write on BT app</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;LED OFF:&quot;);//write on serial monitor</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;digitalWrite(LEDpin, LOW);// turn the LED off&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;delay(20);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">After Compiling successfully the above code in Arduino IDE&nbsp; upload it to ESP32 Wroom 32E module</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Working Process</span></h2><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">You program your ESP32 microcontroller using Arduino IDE or another compatible environment.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The code includes configurations for Bluetooth&nbsp; communication.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">In code, we define Bluetooth characteristics. For example,&nbsp; &quot;LED Control&quot; to represent the state of the LED (on/off).</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Here we will use a Bluetooth Terminal app on a smartphone.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><img src="https://lh7-us.googleusercontent.com/RNLPzWt0KVPwzgnb1nkB-YnsCMsyzsgkse8Yq61QfQBEdO7HzXMnzUd00RaoVj2fdgxq7GguQ36CJ91jZAcfZp4m96RQ96RO9DLeG3mp7oASb8googDDkbRvjr13yEKOfr8V7AjGxqNg4N_Ri39IbQ" width="166" height="296" style="font-size:11pt;text-align:center;width:187px !important;height:333.38px !important;max-width:100% !important;" alt="Bluetooth Enabled Smart Bulb using ESP32 WROOM 32E Module"></p></li></ul><p style="text-align:justify;margin-left:36pt;"><br></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The app discovers nearby Bluetooth devices, including your ESP32, and establishes a connection.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">In the app after pairing with ESP32, we will send “</span><span style="font-size:11pt;font-weight:700;">turnON</span><span style="font-size:11pt;">” and “</span><span style="font-size:11pt;font-weight:700;">turnoff</span><span style="font-size:11pt;">”.</span></span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">When a user sends the functions in the app to control the LED, the app sends a command over Bluetooth to the corresponding characteristic on the ESP32.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The ESP32 receives the Bluetooth command.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">ESP32 firmware processes the command and updates the GPIO pin connected to the LED based on the received command.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">For example, if the command is “turnON”, the code sets the GPIO pin high to turn on the LED.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The state of the LED is now controlled by the ESP32 in response to Bluetooth commands from the smartphone app.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">If the user sends “turnoff”, the app sends a command to the ESP32, which updates the GPIO pin to turn off the LED.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">You can now test the setup by interacting with the smartphone app and observing the corresponding changes in the LED's state.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">That’s it you finally made an IoT project where we can control the Bulb wirelessly using ESP32’s Bluetooth.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Conclusion</span></h2><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">In this blog post, we've learned how to create a Bluetooth-enabled smart bulb using the ESP32 Wroom 32E module. With the right components, programming skills, and a passion for innovation, you can build more applications as needed.&nbsp;</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">We can make different projects using ESP32 Wroom 32E Bluetooth module, eg. in smart agriculture, smart homes, and many applications related to large industries.If you are looking for electronic components and different microcontrollers from Espressif, Arduino, and many more, reach out to </span><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">electronics components suppliers in india</span></a><span style="font-size:11pt;">- Campus Component&nbsp;today!</span></span></p><p><span style="color:inherit;"></span></p><div><span style="font-size:11pt;"><br></span></div></div>
</div><div data-element-id="elm_EWBJHuMqTHuwWs3rTLDJvQ" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_EWBJHuMqTHuwWs3rTLDJvQ"].zpelem-button{ border-radius:1px; } </style><div class="zpbutton-container zpbutton-align-center"><style type="text/css"></style><a role="button" class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="javascript:;" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Wed, 06 Dec 2023 07:19:20 +0000</pubDate></item><item><title><![CDATA[How To Do OTA Firmware Update For ESP32?]]></title><link>https://www.campuscomponent.com/blogs/post/how-to-do-ota-firmware-update-for-esp32</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/How To Do OTA Firmware Update For ESP32.jpeg"/>In this blog post, we will explore the process of performing OTA firmware updates over ESP32, ESP32 is a popular microcontroller-based development board with built-in Wi-Fi and Bluetooth capabilities.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm__OEDflAIRua-vu5mhtaqrQ" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_381wANuhSoyMEOqGA0Jk4w" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_qtRg8I1BTdi102WQZ6mRng" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"> [data-element-id="elm_qtRg8I1BTdi102WQZ6mRng"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_QyW-jacUS6-A6NEIh3Z5XQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_QyW-jacUS6-A6NEIh3Z5XQ"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_C4lDzF-pSzOM8AtmCtUcIQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_C4lDzF-pSzOM8AtmCtUcIQ"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img src="/How%20To%20Do%20OTA%20Firmware%20Update%20For%20ESP32.jpeg" style="width:914.34px !important;height:461px !important;max-width:100% !important;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;font-weight:700;"><br></span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;font-weight:700;">Over-The-Air (OTA)</span><span style="font-size:12pt;"> firmware updates are a crucial aspect of embedded systems, allowing developers to remotely update software on devices without physical access. One of the best things about </span><span style="font-size:12pt;font-weight:700;">ESP32</span><span style="font-size:12pt;"> is that its firmware can be updated wirelessly. This kind of programming is called </span><span style="font-size:12pt;font-weight:700;">“Over-The-Air” (OTA).</span><span style="font-size:12pt;"> In this blog post, we will explore the process of performing OTA firmware updates over ESP32, ESP32 is a popular </span><a href="https://www.campuscomponent.com/categories/wifi_development_board/2208614000002321117"><span style="font-size:12pt;">microcontroller-based development board</span></a><span style="font-size:12pt;"> with built-in Wi-Fi and Bluetooth capabilities.&nbsp;</span></span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Follow this step-by-step guide to ensure a seamless and efficient OTA update process for your ESP32-based devices.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16px;color:rgb(0, 0, 0);">What is OTA Programming in ESP32?</span></h2><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">OTA programming allows for updating/uploading new programs to the </span><span style="font-size:12pt;font-weight:700;">ESP-WROOM-32</span><span style="font-size:12pt;"> over Wi-Fi without the need for a </span><a href="https://www.campuscomponent.com/categories/micro_usb/2208614000002955267"><span style="font-size:12pt;">USB connection</span></a><span style="font-size:12pt;"> to a computer.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">It provides a wireless method to perform program updates on the </span><a href="https://www.campuscomponent.com/categories/wifi_module/2208614000002321101"><span style="font-size:12pt;font-weight:700;">ESP32 module</span></a><span style="font-size:12pt;">.</span></span></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:16px;color:rgb(0, 0, 0);">Benefits of OTA Programming</span></h3><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;font-weight:700;">Convenience:</span><span style="font-size:12pt;"> OTA programming proves advantageous when physical access to the ESP module is not feasible or practical.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;font-weight:700;">Time-saving:</span><span style="font-size:12pt;"> It reduces the time required to update each ESP module during maintenance, as updates can be performed remotely.</span></span></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">Advantages of OTA Programming</span></h3><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;font-weight:700;">Centralized Updates:</span><span style="font-size:12pt;"> OTA programming enables a single central location to send updates to multiple ESP32 modules connected to the same network.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;font-weight:700;">Scalability: </span><span style="font-size:12pt;">The ability to update multiple ESPs simultaneously streamlines the update process for large-scale deployments.</span></span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">*The only requirement is to include OTA code in every code you want to do OTA to enable OTA functionality for more future updates.</span></p><h2 style="text-align:justify;"><span style="font-size:16px;font-weight:400;color:rgb(0, 0, 0);">There are 3 Simple Steps for Implementing Basic OTA with the ESP32</span></h2><h3 style="text-align:justify;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">1. Writing Main Code with Basic OTA Function</span></h3><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">In the first step we will write a main code with a function of Basic OTA.&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:12pt;font-weight:700;color:rgb(0, 0, 0);">*Refer the below code:</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;WiFi.h&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;ESPmDNS.h&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;WiFiUdp.h&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;ArduinoOTA.h&gt;</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const char* ssid = &quot;..........&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const char* password = &quot;..........&quot;;</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void setup() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.begin(115200);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;Booting&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;WiFi.mode(WIFI_STA);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;WiFi.begin(ssid, password); // change to your SSID and Password</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;while (WiFi.waitForConnectResult() != WL_CONNECTED) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;Connection Failed! Rebooting...&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;delay(5000);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;ESP.restart();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Port defaults to 3232</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// ArduinoOTA.setPort(3232);</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Hostname defaults to esp3232-[MAC]</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// ArduinoOTA.setHostname(&quot;myesp32&quot;);</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// No authentication by default</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// ArduinoOTA.setPassword(&quot;admin&quot;);</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Password can be set with it's md5 value as well</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// MD5(admin) = 21232f297a57a5a743894a0e4a801fc3</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// ArduinoOTA.setPasswordHash(&quot;21232f297a57a5a743894a0e4a801fc3&quot;);</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;ArduinoOTA</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.onStart([]() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;String type;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (ArduinoOTA.getCommand() == U_FLASH)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;type = &quot;sketch&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else // U_SPIFFS</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;type = &quot;filesystem&quot;;</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;Start updating &quot; + type);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;})</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.onEnd([]() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;\nEnd&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;})</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.onProgress([](unsigned int progress, unsigned int total) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.printf(&quot;Progress: %u%%\r&quot;, (progress / (total / 100)));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;})</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.onError([](ota_error_t error) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.printf(&quot;Error[%u]: &quot;, error);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (error == OTA_AUTH_ERROR) Serial.println(&quot;Auth Failed&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else if (error == OTA_BEGIN_ERROR) Serial.println(&quot;Begin Failed&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else if (error == OTA_CONNECT_ERROR) Serial.println(&quot;Connect Failed&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else if (error == OTA_RECEIVE_ERROR) Serial.println(&quot;Receive Failed&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else if (error == OTA_END_ERROR) Serial.println(&quot;End Failed&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;});</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;ArduinoOTA.begin();</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;Ready&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(&quot;IP address: &quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(WiFi.localIP());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void loop() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;ArduinoOTA.handle(</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><div style="text-align:justify;"><span><div><span style="color:rgb(0, 0, 0);font-weight:700;">2. Uploading Code with Basic OTA Firmware Serially</span><span><br></span></div></span></div><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Due to the absence of OTA upgrade capability in the ESP32's factory image, it is necessary to initially load the OTA firmware onto the ESP32 using a serial interface. That’s why It is required to first upload the firmware serially in order to perform subsequent updates over-the-air.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">The ESP32 add-on for the Arduino IDE includes an OTA library as well as a </span><span style="font-size:12pt;font-weight:700;">BasicOTA</span><span style="font-size:12pt;"> example. Simply navigate to&nbsp;</span><span style="font-size:12pt;font-weight:700;">File</span><span style="font-size:12pt;">&nbsp;&gt;&nbsp;</span><span style="font-size:12pt;font-weight:700;">Examples</span><span style="font-size:12pt;">&nbsp;&gt;&nbsp;</span><span style="font-size:12pt;font-weight:700;">ArduinoOTA</span><span style="font-size:12pt;">&nbsp;&gt;&nbsp;</span><span style="font-size:12pt;font-weight:700;">BasicOTA</span><span style="font-size:12pt;">.</span></span></p><p style="text-align:justify;"><span style="font-size:10.5pt;"><span style="width:507px;color:rgb(0, 0, 0);">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img src="https://lh6.googleusercontent.com/kWs0ZHV89j4ieIjoTqdDg3k8XT3J9-TPCDkg10Fv-eebNau3wX374mpBUmYJlt-PRsfaTTxk6-UluKCCHAUeec44xqdpSi7ft1i5OR0rpYM3Me5KxyWZysUnBcEUFzanjsfOPn4rkAVUwAzXFiRk2A" width="507" height="535"></span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Next, launch the Serial Monitor with a baud rate of 115200 and press the EN button on the ESP32. Assuming everything is functioning properly, you will observe the dynamic IP address assigned by your router. Take note of this IP address for future reference.</span></p><p style="text-align:justify;"><span style="font-size:9pt;"><span style="width:462px;color:rgb(0, 0, 0);">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img src="https://lh5.googleusercontent.com/EnKQVj1cHqnmDE_3F88Mvu_jlYQwkfqnVTmFC1KGA91oO_mPQd0h7qtIhsc066bfKU-chpo4C_NRCbNJR5X_0bP2_RT6riviwoPVHI9dPZnRrKXnMZ1wdyypAaPRy-x4JIAYk3oxo4GyNYoB0eWv6Q" width="462" height="364"></span></span></p><h3 style="text-align:justify;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">3. Uploading New Sketch Over-the-Air i.e OTA</span></h3><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Now, it's time to perform an over-the-air upload of a new sketch.</span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Keep in mind that including the OTA code in each sketch is crucial. Failure to do so will result in the loss of OTA capability, preventing you from performing future over-the-air uploads.&nbsp;</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">To ensure OTA functionality, it is advised to modify the previous code to incorporate your new code. As an illustration, we will integrate a basic Blink sketch into the existing Basic OTA code.</span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">*Refer Below Code:</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;WiFi.h&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;ESPmDNS.h&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;WiFiUdp.h&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;ArduinoOTA.h&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const char* ssid = &quot;..........&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const char* password = &quot;..........&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//variabls for blinking an LED with Millis</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const int led = 2; // ESP32 Pin to which onboard LED is connected</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">unsigned long previousMillis = 0;&nbsp; // will store last time LED was updated</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const long interval = 1000;&nbsp; // interval at which to blink (milliseconds)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">int ledState = LOW;&nbsp; // ledState used to set the LED</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void setup() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">pinMode(led, OUTPUT);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.begin(115200);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;Booting&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;WiFi.mode(WIFI_STA);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;WiFi.begin(ssid, password);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;while (WiFi.waitForConnectResult() != WL_CONNECTED) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;Connection Failed! Rebooting...&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;delay(5000);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;ESP.restart();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Port defaults to 3232</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// ArduinoOTA.setPort(3232);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Hostname defaults to esp3232-[MAC]</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// ArduinoOTA.setHostname(&quot;myesp32&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// No authentication by default</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// ArduinoOTA.setPassword(&quot;admin&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Password can be set with it's md5 value as well</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// MD5(admin) = 21232f297a57a5a743894a0e4a801fc3</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// ArduinoOTA.setPasswordHash(&quot;21232f297a57a5a743894a0e4a801fc3&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;ArduinoOTA</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.onStart([]() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;String type;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (ArduinoOTA.getCommand() == U_FLASH)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;type = &quot;sketch&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else // U_SPIFFS</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;type = &quot;filesystem&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;Start updating &quot; + type);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;})</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.onEnd([]() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;\nEnd&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;})</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.onProgress([](unsigned int progress, unsigned int total) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.printf(&quot;Progress: %u%%\r&quot;, (progress / (total / 100)));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;})</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.onError([](ota_error_t error) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.printf(&quot;Error[%u]: &quot;, error);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (error == OTA_AUTH_ERROR) Serial.println(&quot;Auth Failed&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else if (error == OTA_BEGIN_ERROR) Serial.println(&quot;Begin Failed&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else if (error == OTA_CONNECT_ERROR) Serial.println(&quot;Connect Failed&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else if (error == OTA_RECEIVE_ERROR) Serial.println(&quot;Receive Failed&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else if (error == OTA_END_ERROR) Serial.println(&quot;End Failed&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;});</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;ArduinoOTA.begin();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;Ready&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(&quot;IP address: &quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(WiFi.localIP());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void loop() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;ArduinoOTA.handle();&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;//loop to blink without delay</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;unsigned long currentMillis = millis();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (currentMillis - previousMillis &gt;= interval) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// save the last time you blinked the LED</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;previousMillis = currentMillis;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// if the LED is off turn it on and vice-versa:</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;ledState = not(ledState);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// set the LED with the ledState of the variable:</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;digitalWrite(led,&nbsp; ledState);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}</span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">* It's important to note that the delay() function has not been utilized to control the LED blinking. This can result in missed OTA requests, potentially causing interruptions in the program execution.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">After copying the above sketch to your </span><span style="font-size:12pt;font-weight:700;">Arduino IDE</span><span style="font-size:12pt;">, navigate to&nbsp;</span><span style="font-size:12pt;font-weight:700;">Tools</span><span style="font-size:12pt;">&nbsp;&gt;&nbsp;</span><span style="font-size:12pt;font-weight:700;">Port</span><span style="font-size:12pt;">&nbsp;option. Look for:&nbsp;</span><span style="font-size:12pt;font-weight:700;">esp32-xxxxxx at your_esp_ip_address</span><span style="font-size:12pt;">. If you are unable to locate it, just restart your IDE.</span></span></p><p style="text-align:justify;"><span style="font-size:12pt;"><span style="width:545px;color:rgb(0, 0, 0);">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img src="https://lh5.googleusercontent.com/d94bOgqKPTD4LqztgJL3l-wPjxsf9fYS5G3P7KNwFd8pib7RRZCtDi2JnVSoNdeXqx4y1gFrMDZWTEhg4JNOY-s6f6WWLrfDDiSGmoxMy6TtbQiW-ydUJ7H5OPyEhIC2EwlLPNOC1Hw1I86AbWRH4g" width="545" height="464"></span></span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Select the appropriate port and click on the Upload button. The new sketch will be swiftly uploaded within a few seconds. As a result, the on-board LED will initiate its blinking pattern.</span></p><p style="text-align:justify;"><span style="font-size:18pt;"><span style="width:420px;color:rgb(0, 0, 0);">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img src="https://lh4.googleusercontent.com/1lolm11kPouREOSD_Amu0AW3Cbq05a47bFlssC9rEHZlJ1is5zXZqsPJUIcldiweeqvbPaXXlfbNYZedyHsad8vaMAqm182ukPxlw9zfG3LexDjwjQNj1RkFfPK8BuISodJ_bVE3Xm_co-pACVWqrw" width="420" height="255" style="width:537.15px !important;height:326px !important;max-width:100% !important;"></span></span></p><h2 style="text-align:justify;"><span style="font-size:16px;color:rgb(0, 0, 0);">Applications of Firmware OTA using ESP32</span></h2><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Firmware OTA is the most required application for the deployed IoT devices. The requirement of devices having OTA enabled is increasing day-by-day.</span></p><p style="text-align:justify;margin-bottom:14pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">There are several applications where the OTA is in much need such as:</span></p><ol><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Industrial Automation</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Home Automation</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Wearable Devices</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;margin-bottom:14pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Remote Sensing and Monitoring</span></p></li></ol><h2 style="text-align:justify;"><span style="font-size:16px;font-weight:700;color:rgb(0, 0, 0);">Conclusion</span></h2><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">OTA updates not only save time and resources but also provide a path to enhance features, fix bugs, and improve security without physical access to the devices. So, embrace the power of OTA updates and keep your ESP32-based devices up to date effortlessly!</span></p><p></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">If you are looking for ESP32, WiFi or </span><a href="https://www.campuscomponent.com/categories/bluetooth/2208614000002321095"><span style="font-size:12pt;">Bluetooth modules</span></a><span style="font-size:12pt;">, or </span><a href="https://www.espressif.com/sites/default/files/documentation/esp8685_datasheet_en.pdf"><span style="font-size:12pt;">different microcontrollers</span></a><span style="font-size:12pt;"> from brands such as Espressif and Ai-Thinker to implement above project or you are looking for microcontrollers and different sensors or any project guidance reach out&nbsp;to us at </span><a href="https://www.campuscomponent.com/"><span style="font-size:12pt;">Campus Component</span></a><span style="font-size:12pt;">&nbsp;today!</span></span></p><div><h2 style="text-align:justify;"><span style="font-size:16px;color:rgb(0, 0, 0);">Related Blogs&nbsp;</span></h2><div style="text-align:left;"><div><span style="color:rgb(0, 0, 0);">1. <a href="https://www.campuscomponent.com/blogs/post/all-about-esp8685-exploring-it-s-cutting-edge-capabilities" title="All about ESP8685: Exploring It's Cutting-Edge Capabilities&nbsp;" target="_blank" rel="">All about ESP8685: Exploring It's Cutting-Edge Capabilities&nbsp;</a></span></div></div></div></div>
</div><div data-element-id="elm_puxDVFZZSreHQHpxCYxcTA" data-element-type="button" class="zpelement zpelem-button "><style></style><div class="zpbutton-container zpbutton-align-center"><style type="text/css"></style><a role="button" class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md " href="javascript:;" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 07 Aug 2023 12:03:01 +0000</pubDate></item><item><title><![CDATA[All About ESP8685: Exploring It’s Cutting-Edge Capabilities]]></title><link>https://www.campuscomponent.com/blogs/post/all-about-esp8685-exploring-it-s-cutting-edge-capabilities</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/All About ESP8685 Exploring It-s Cutting-Edge Capabilities.jpeg"/>In this blog post, we'll discuss in depth details of the ESP8685, exploring its features, advantages, and its potential impact on the IoT.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_pmhEahdTTNyCsC0cjcneIw" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_uq0QBqnTRnucPLr7E-y0SA" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_E-A5Ge56T1KwrO-A_AqbGQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm__SXdocv4QNWGhDDVB4IWGw" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm__SXdocv4QNWGhDDVB4IWGw"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_7BvljniWTDCsla4ngzvDhA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_7BvljniWTDCsla4ngzvDhA"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-size:14px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img src="/All%20About%20ESP8685%20Exploring%20It-s%20Cutting-Edge%20Capabilities.jpeg" style="width:651px !important;height:651px !important;max-width:100% !important;"><br></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-size:14px;"><br></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-size:14px;">In the rapid development of Embedded systems and IoT (Internet of Things), the <a href="https://www.campuscomponent.com/products/esp8266_esp-12f/2208614000001839407">ESP8266</a> series of Wi-Fi modules has become popular for its ease of use and affordability. Recently Espressif launched its successor, i.e., the ESP8685 Wi-Fi module, which is a powerful upgrade to revolutionize the world of connected devices. In this blog post, we'll discuss in depth details of the ESP8685, exploring its features, advantages, and its potential impact on the IoT.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">What is ESP8685?</span></h2><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-size:14px;"><a href="https://www.campuscomponent.com/products/esp8685-wroom-01-h4-wi-3357-d/2208614000039983224">ESP8685</a> is an ultra-low-power and highly-integrated MCU-based SoC solution that supports 2.4 GHz <a href="https://www.campuscomponent.com/categories/wifi_module/2208614000002321101">Wi-Fi and Bluetooth</a>® Low Energy (Bluetooth LE). It is a powerful and versatile chip that can be used in a wide variety of applications, including smart home devices, industrial automation, and wearables and all types of IoT application. The block diagram of ESP8685 is shown below.</span></p><p style="text-align:justify;"><span style="font-size:12pt;"><span style="width:513px;color:rgb(0, 0, 0);">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img src="https://lh6.googleusercontent.com/9EF08bi_szsTYeDb2CBRF-UsijFq15WG6D1WEPACi5sCZsCU8H31oQWlzSMV2J0rf5X4FesSE7_lHhE_ibzX-u-qW5tWOLNBeEs1YOfDkCa5MwV-joeQYkNUp69bstpaLO36CexJm0x64vACuCyTxQ" width="513" height="513"></span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">Pin Layout of ESP8685:</span></h2><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Below diagram shows the Pin Definition of ESP8685</span></p><p style="text-align:justify;"><span style="font-size:11pt;"><span style="width:624px;color:rgb(0, 0, 0);">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img src="https://lh4.googleusercontent.com/BrcqY2J2YnafSJuAvpaurRnianRy33VAf0kOpUr-RjR3VeTtFreIUfIL2dt5uZs_Leu6H6o2zqNYEYvK2bvaxIj8XvkbH62_9f_f6a5XIA2FG1P19P2z4ANKHOMn4ssX8wsPUaqTPfrbuCm85NqrrA" width="624" height="498"></span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-size:14px;">It comes with Ultra Low Power SoC with RISC-V Single-Core CPU Supporting IEEE 802.11b/g/n (2.4 GHz WiFi) and Bluetooth® 5 (LE) 2MB(<span style="font-weight:700;">ESP8685H2</span>) or 4MB(<span style="font-weight:700;">ESP8685H4</span>) flash in the 4×4mm QFN package.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-size:14px;">Refer <a href="https://www.espressif.com/sites/default/files/documentation/esp8685_datasheet_en.pdf">ESP8685 datasheet</a> for more details on Architecture.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:14px;font-weight:400;color:rgb(0, 0, 0);">Let’s See the Features of ESP8685:</span></h2><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14px;color:rgb(0, 0, 0);font-weight:700;">WIFI</span></h3><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">1) ESP8685 has IEEE 802.11b/g/n-compliant WiFi.</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">2) It Supports 20MHz, 40MHz bandwidth in the 2.4 GHz band.</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">3) 1T1R mode with data rate up to 150 Mbps&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">4) Wi-Fi Multimedia (WMM).</span></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14px;color:rgb(0, 0, 0);font-weight:700;">CPU and Memory</span></h3><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;1) 32-bit RISC-V single-core processor, up to 160MHz..</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;2) Core Mark® score:–1 core at160 MHz, 407.22 Core Mark, 2.55 Core Mark/MHz.</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;3) 384KB ROM.</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;4) 400KB SRAM (16KB for cache).</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;5) 8KB SRAM in RTC.</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;6) Access to flash accelerated by cache&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;7) Supports flash In-Circuit Programming (ICP).</span></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14px;color:rgb(0, 0, 0);font-weight:700;">Advanced Peripheral Interfaces</span></h3><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">1) 15 × programmable GPIOs&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">2) Digital interfaces:</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– 3× SPI (SPI0 and SPI1 are used to connect the SiP flash. Only SPI2 is available).</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– 2×UART</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– 1×I2C</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– 1×I2S</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Remote control peripheral, with 2 transmit channels and 2 receive channels</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– LED PWM controller, with up to 6 channels</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Full-speed USB Serial/JTAG controller</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– General DMA controller (GDMA), with 3 transmit channels and 3 receive channels</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– 1×TWAI®controller compatible with ISO 11898-1(CAN Specification 2.0)&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">3) Analog interfaces:</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">–2×12-bit SAR ADCs, up to 6 channels</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">–1× temperature sensor</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">4) Timers:</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">–2×54-bit general-purpose timers</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">–3×watchdog timers</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">–1×52-bit system timer</span></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14px;color:rgb(0, 0, 0);font-weight:700;">Low Power Management</span></h3><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">•Power Management Unit with four power modes.</span></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14px;color:rgb(0, 0, 0);font-weight:700;">Security</span></h3><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">1) Secure boot&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">2) Flash encryption&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">3) 4096-bit OTP, up to 1792 bits for use&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">4) Cryptographic hardware acceleration:</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">–AES-128/256 (FIPSPUB197)&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">5) Permission Control&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">6) SHA Accelerator (FIPSPUB180-4)&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">7) RSA Accelerator&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">8) Random Number Generator (RNG)&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">9) HMAC&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">10) Digital signature</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">Applications of ESP8685</span></h2><p style="text-align:justify;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">• Smart Home</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Light control</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Smart button</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Smart plug</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Indoor positioning.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">• Industrial Automation</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Industrial robot</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Mesh network</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Human machine interface (HMI)</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Industrial field bus.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">• Health Care</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Health monitor</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Baby monitor.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">• Consumer Electronics</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Smart watch and bracelet</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Over-the-top (OTT) devices</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Wi-Fi speaker</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Logger toys and proximity sensing toys.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">• Smart Agriculture</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Smart greenhouse</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Smart irrigation</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Agriculture robot.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">• Retail and Catering</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– POS machines</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Service robot.</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">• Audio Device</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Internet music players</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Live streaming devices</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">– Internet radio players.</span></p><p style="text-align:justify;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">• Generic Low-power IoT Sensor Hubs&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">• Generic Low-power IoT Data Loggers</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">Conclusion</span></h2><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-size:14px;">ESP8685 combines advanced features, low power consumption, and affordability. Its robust connectivity, powerful processing, offer developers endless possibilities for creating innovative smart applications. If you are looking for a Wi-Fi and Bluetooth LE-enabled chip with ultra-low power consumption from <a href="https://www.campuscomponent.com/collections/espressif-sysytem/2208614000035290009">Espressif</a>, ESP8685 Wifi Module is a great option to consider.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-size:14px;"></span></p><div><h2 style="margin-bottom:6pt;text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Related Blogs</span></h2><div style="text-align:left;"><div><div><span style="color:rgb(0, 0, 0);font-size:14px;">1. </span><span><span style="color:rgb(0, 0, 0);font-size:14px;"><a href="/shop-now#https%3A//www.campuscomponent.com/blogs/post/zigbee-vs.-wi-fi-which-is-better-for-iot-applications" title="Zigbee vs. Wi-Fi: Which is better&nbsp;For IoT Applications?" target="_blank" rel="">Zigbee vs. Wi-Fi: Which is </a></span><span style="color:rgb(202, 151, 0);font-size:14px;"><a href="/shop-now#https%3A//www.campuscomponent.com/blogs/post/zigbee-vs.-wi-fi-which-is-better-for-iot-applications" title="Zigbee vs. Wi-Fi: Which is better&nbsp;For IoT Applications?" target="_blank" rel="">better</a></span><span style="color:rgb(0, 0, 0);font-size:14px;"><a href="/shop-now#https%3A//www.campuscomponent.com/blogs/post/zigbee-vs.-wi-fi-which-is-better-for-iot-applications" title="Zigbee vs. Wi-Fi: Which is better&nbsp;For IoT Applications?" target="_blank" rel="">&nbsp;For IoT Applications?</a></span></span></div></div><div><div><span style="font-size:14px;color:rgb(0, 0, 0);">2. <a href="https://www.campuscomponent.com/blogs/post/know-about-esp8266-wifi-module-pin-configuration" title="Know about ESP8266 WiFi Module with applications&nbsp;" target="_blank" rel="">Know about ESP8266 WiFi Module with applications&nbsp;</a></span></div></div></div></div></div>
</div><div data-element-id="elm_OTMaB7sXTsqkIFlWcwh_oQ" data-element-type="button" class="zpelement zpelem-button "><style></style><div class="zpbutton-container zpbutton-align-center"><style type="text/css"></style><a role="button" class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md " href="javascript:;" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 07 Aug 2023 10:27:11 +0000</pubDate></item><item><title><![CDATA[10 Wireless technology trends this year]]></title><link>https://www.campuscomponent.com/blogs/post/10-wireless-technology-trends-this-year</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/10 Wireless technology trends this year.jpeg"/>Wireless technology has revolutionized the way we communicate, connect, and interact with the world around us. With each passing year, advancements in ]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_QipMq_OIScqWbjillUkRbw" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_EPl9Bce6Q5O6OnrDvg6Alg" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_KC5fsG9gRh2WUiK9kEjrYw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_tnFUMg7STDu5Nj3A9BOuAA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_tnFUMg7STDu5Nj3A9BOuAA"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_mzqU4a-WReiLmYpSPu8lHA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_mzqU4a-WReiLmYpSPu8lHA"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);font-size:11pt;">Wireless technology has revolutionized the way we communicate, connect, and interact with the world around us. With each passing year, advancements in wireless technology continue to shape our lives and open up new possibilities. In this blog, we will explore the top 10 wireless technology trends of the year 2023. Let's dive in!</span></p><p style="text-align:justify;margin-bottom:10pt;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img src="/10%20Wireless%20technology%20trends%20this%20year.jpeg"><span style="color:rgb(0, 0, 0);font-size:11pt;"><br></span></p><ol><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">5G Integration</span></p></li></ol><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The rollout of 5G networks is gaining momentum, promising faster speeds, lower latency, and increased capacity. This technology will enable more efficient and reliable communication between devices, clearing the way for enhanced IoT applications, smart cities, autonomous vehicles, and immersive experiences.</span></p><ol start="2"><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">IoT and Industrial Automation</span></p></li></ol><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The convergence of IoT and industrial automation is transforming traditional industries. Wireless technologies empower smart factories, intelligent supply chains, and connected machinery, improving productivity, reducing downtime, and enabling predictive maintenance.</span></p><ol start="3"><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Wearable Technology Advancements</span></p></li></ol><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Wearable devices like smartwatches, fitness trackers, and health monitors continue to evolve. Wireless connectivity enables seamless integration with other devices, providing real-time health monitoring, activity tracking, and personalized experiences. Furthermore, advancements in battery life and miniaturization enhance the practicality and adoption of wearable technology.</span></p><ol start="4"><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Embedded Systems for Smart Homes</span></p></li></ol><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Smart homes are becoming increasingly popular, with embedded systems playing a crucial role. Wireless technology enables the integration of home appliances, lighting, security systems, and entertainment devices into a unified ecosystem. This trend enhances convenience, energy efficiency, and overall home automation.</span></p><ol start="5"><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Wireless Charging Solutions</span></p></li></ol><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The convenience of wireless charging continues to improve, offering a cable-free and hassle-free experience. The development of technologies such as magnetic resonance and radio frequency enables wireless charging for various devices, including smartphones, wearables, and electric vehicles. Expect to see further advancements in charging efficiency and range.</span></p><ol start="6"><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Wi-Fi 6 and Wi-Fi 6E</span></p></li></ol><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Wi-Fi 6 and the recently introduced Wi-Fi 6E standard provide faster speeds, increased capacity, and reduced congestion in wireless networks. These technologies are designed to accommodate the growing number of connected devices and deliver a seamless wireless experience in homes, offices, and public spaces.</span></p><ol start="7"><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Bluetooth Low Energy (BLE) for IoT</span></p></li></ol><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Bluetooth Low Energy (BLE) has gained traction in the IoT ecosystem due to its low power consumption and compatibility with a wide range of devices. This wireless technology enables efficient communication between IoT devices, such as smart sensors, wearables, and home automation systems, extending battery life and expanding the possibilities of IoT applications.</span></p><ol start="8"><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Advanced Wireless Security Measures</span></p></li></ol><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">As wireless technology continues to proliferate, the need for robust security measures becomes paramount. Encrypted wireless protocols, biometric authentication, and secure firmware updates are some of the advancements that ensure the confidentiality, integrity, and availability of wireless communication.</span></p><ol start="9"><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Wireless Sensor Networks in Agriculture</span></p></li></ol><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Wireless sensor networks are transforming the agriculture industry by providing real-time data on soil moisture, temperature, and crop health. These networks enable precise monitoring, automation, and optimization of agricultural processes, leading to improved yields, reduced costs, and sustainable farming practices.</span></p><ol start="10"><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;font-weight:400;">&nbsp;</span><span style="font-size:11pt;">Vehicle-to-everything (V2X)</span></span></p></li></ol><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">V2X is a technology that allows vehicles to communicate with each other, as well as with infrastructure, such as traffic lights and road signs. This allows vehicles to share information about their location, speed, and intentions, which can help to prevent accidents.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">In order to leverage these wireless technology trends, it is essential to have reliable and high-quality wireless modules. Brands like </span><span style="font-size:11pt;font-weight:700;">SIMCOM, Espressif, Allystar, Digi, and HopeRF</span><span style="font-size:11pt;"> are prominent players in the wireless module market. These brands offer a wide range of wireless modules catering to various applications and requirements.</span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">If you are looking for reliable and cutting-edge wireless modules, you can explore the product offerings from these brands. Campus Component is a trusted platform that provides a comprehensive selection of wireless modules from renowned brands. You can visit our </span><a href="https://www.campuscomponent.com/categories/wireless_module/2208614000002321087"><span style="font-size:11pt;">website</span></a><span style="font-size:11pt;"> to explore their range of products and find the perfect wireless module for your project.</span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Read Also:&nbsp;&nbsp;</span></span><a href="https://www.campuscomponent.com/blogs/post/how-wireless-charging-works" style="text-align:center;font-weight:bold;">Wireless Charging; Types, Benefits, Applications, and How Does it Works</a></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Conclusion</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">The wireless technologies are evolving at a rapid pace, and this year brings forth exciting trends with a focus on IoT, embedded systems, and electronics. </span><span style="font-size:12pt;">It&nbsp;is&nbsp;estimated&nbsp;that&nbsp;there&nbsp;will&nbsp;be&nbsp;more&nbsp;than&nbsp;7&nbsp;billion&nbsp;wireless&nbsp;devices&nbsp;in&nbsp;use&nbsp;worldwide.</span><span style="font-size:11pt;"> From the expansion of 5G and the integration of edge computing to the advancements in wearable technology and wireless charging solutions, the possibilities are endless. By embracing these trends and leveraging reliable wireless modules from trusted brands, you can unlock the full potential of wireless technology in your projects and applications.</span></span></p><p style="text-align:justify;margin-bottom:9pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">For more details on&nbsp; best in class electronic components </span><span style="font-size:12pt;">reach out&nbsp;to us at </span><a href="https://www.campuscomponent.com/"><span style="font-size:12pt;">Campus Component</span></a><span style="font-size:12pt;">&nbsp;today</span></span></p></div>
</div><div data-element-id="elm_UguzaKveSpisZcuWtSCkYw" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_UguzaKveSpisZcuWtSCkYw"].zpelem-button{ border-radius:1px; } </style><div class="zpbutton-container zpbutton-align-center"><style type="text/css"></style><a role="button" class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="https://www.campuscomponent.com/categories/wireless_module/2208614000002321087" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Tue, 13 Jun 2023 09:20:48 +0000</pubDate></item><item><title><![CDATA[How to Interface HC-05 Bluetooth Module With Arduino Uno ]]></title><link>https://www.campuscomponent.com/blogs/post/how-to-interface-hc-05-bluetooth-module-with-arduino-uno</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/How to Interface HC-05 Bluetooth Module With Arduino Uno.jfif"/>Let see how to Interface HC-05 Bluetooth Module With Arduino Uno with Campus Component !!]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_nLN5HbqDTP-0Cd6yhIlksA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_xbB1wnDFRrO15FY0Dz2vTA" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_M-cTIUImTlaBVqTNgpd_2A" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_bi3M-9rnSgek8obAn3yy9w" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_bi3M-9rnSgek8obAn3yy9w"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_iEi87hmORQ-Gim8ASNCz5Q" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_iEi87hmORQ-Gim8ASNCz5Q"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);"><img src="/How%20to%20Interface%20HC-05%20Bluetooth%20Module%20With%20Arduino%20Uno.jfif" style="width:1094.48px !important;height:616px !important;max-width:100% !important;" alt="How to Interface HC-05 Bluetooth Module With Arduino Uno "><br></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">In this blog, you will get to know how to interface&nbsp;<span style="font-weight:700;">the HC-05 Bluetooth module with Arduino UNO</span>. Upon completing the project you will be able to send messages to Arduino and can receive a message back from Arduino. Through this, you are able to establish a communication platform between the Arduino and your Smartphone.&nbsp;</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">As the used&nbsp;<span style="font-weight:700;">Internet of Things(IoT)</span>&nbsp;is increasing due to rapid research and development which is unlocking the huge potential of connected devices. The Internet of Things (IoT) describes the network of physical objects i.e “things” that are embedded with sensors, software, and other technologies for the purpose of connecting and exchanging data with other devices and systems over the internet. And the HC-05 Bluetooth module is the basic low-distance communication device through which we can even build industrial projects.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">Before going to build this project let us see the applications we can build with HC-05 Bluetooth Module:</span></p><ol><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Wireless speakers and headphones</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Wireless mouse and keyboard</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Car or Home stereo system</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Smart door locks</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Smart home automation</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Swarm robots and robotics</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">And various IoT based projects</span></p></li></ol><p style="text-align:justify;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">Let’s now understand what is Bluetooth technology and the HC-05 Bluetooth module:</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);"><span style="font-weight:700;">Bluetooth</span>&nbsp;is a short-range wireless technology standard that is used for the transfer of data between fixed devices over short distances and personal area networks. Bluetooth is a communication protocol that provides cheaper communication in PAN (Personal Area Network). It provides a maximum data rate of 1Mb/S, working in a nominal range of 100 meters with 2.4 GHz frequency.</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">HC-05 Bluetooth module:</span></p><p style="margin-bottom:10pt;"><span style="font-size:12pt;"><span style="width:370px;"><img alt="How to Interface HC-05 Bluetooth Module With Arduino Uno " src="https://lh4.googleusercontent.com/_BJp6suYnZs8sshBT_nq1dVXkONIDFdBDyQ9PFKXUTYt-l1VQzaRaQ4gnIjvm2gRu1MJeFY2fRaVjqVis54_0VmdkUEE0IZhR1JCHgwTfsI-lFwxbkiYyB2oQgLIHhVK15TSpKyUm9fQimWBFBDREg" width="370" height="216" style="width:560.08px !important;height:327px !important;max-width:100% !important;"></span></span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">HC-05 is a class-2 Bluetooth module with Serial Port, which can configure as either Master or slave. a Drop-in replacement for wired serial connections, and transparent usage. We can use it simply for a serial port replacement for connection between MCU, PC to your embedded project and etc.</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">HC-05 Bluetooth module Specification:</span></p><ul><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Bluetooth protocol: Bluetooth Specification v2.0+EDR</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Frequency: 2.4GHz ISM band</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Modulation: GFSK(Gaussian Frequency Shift Keying)</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Emission power: ≤4dBm, Class 2</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Sensitivity: ≤-84dBm at 0.1% BER</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Speed: Asynchronous: 2.1Mbps(Max) / 160 kbps, Synchronous: 1Mbps/1Mbps</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Security: Authentication and encryption</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Profiles: Bluetooth serial port</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Power supply: +3.3VDC 50mA</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Working temperature: -20 ~ +75 Centigrade</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Dimension: 26.9mm x 13mm x 2.2 mm</span></p></li></ul><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Due to these features, the Bluetooth HC-05 module is majorly used all the way from IoT-grade projects to industrial ones.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">Click here to check HC-05 module Details</span></p><p></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">What is Arduino UNO?</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;"><span style="width:455px;color:rgb(0, 0, 0);">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img src="https://lh4.googleusercontent.com/wgL3edHfULRM6sEcX__ct65KdiszowlRDJXkBaNF9pBeG0b8pGdVOtMyLJLKDQ-Rgfn0pHGI00sXikagAxs24fA-zpsF24cF-Px1S9hsrdqXQH-O7noXmgaVI-hkQ-mgBdQAmTu1FD1Pwzq4CyTeHg" width="455" height="321" alt="How to Interface HC-05 Bluetooth Module With Arduino Uno "></span></span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);"><span style="font-weight:700;">Arduino UNO</span>&nbsp;is a microcontroller board based on the&nbsp;<span style="font-weight:700;">ATmega328P</span>. It has 14 digital input/output pins, 6 can be used as PWM outputs, 6 analog inputs, a 16 MHz ceramic resonator, a USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller for IoT projects with Arduino IDE code editor.</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">· The operating voltage is 5V</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">· The recommended input voltage will range from 7v to 12V</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">· The input voltage ranges from 6v to 20V</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">· Digital input/output pins are 14</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">· Analog i/p pins are 6</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">· DC Current for each input/output pin is 40 mA</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">· DC Current for 3.3V Pin is 50 mA</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">· Flash Memory is 32 KB</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">· SRAM is 2 KB</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">· EEPROM is 1 KB</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">· CLK Speed is 16 MHz</span></p><p></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">Let’s now begin to build our project, where we will interface <span style="font-weight:700;">HC-05 Bluetooth Module With&nbsp;</span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">Arduino Uno:</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">Requirements:</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">HC-05 Bluetooth module, Arduino UNO, Jumper wires, 1K and 2K single resistors, Arduino IDE</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">Interfacing Diagram &nbsp;of HC-05 with Arduino:</span></p><h1 style="text-align:justify;"><span style="font-size:12pt;font-weight:700;"><span style="width:580px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img src="https://lh3.googleusercontent.com/YqKSy6X6Pbp5tyAgrF1rxJQ8WwwwAVF6x6GlxBbnHMggDKHe048o326oSCgIG_doxzdnCeT1BqzORKGykgEPCv8vWmaMQ_f8nQEZWtPqW1_lItH5B8CTIwRp44f0KjTRQMZ0K_PZGzmpeoNhJ3cX0w" width="580" height="353" alt="How to Interface HC-05 Bluetooth Module With Arduino Uno "></span></span></h1><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">After the successful connection of Arduino UNO and HC-05 Bluetooth module as shown in the above image, we will upload the firmware to the Arduino UNO.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">In this project, we will send data from our Smartphone via Bluetooth to the Arduino Uno and display it on the Serial Monitor of the PC.</span></p><p></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">Let's start Coding:</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Open your Arduino IDE software on your PC and connect Arduino to your USB port. After connecting the Arduino UNO board to the PC select an appropriate port and copy/paste the following code into the Arduino IDE editor.</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">#include&lt;SoftwareSerial.h&gt;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">/* Create object named bt of the class SoftwareSerial */&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">SoftwareSerial bt(2,3); /* (Rx,Tx) */</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">voidsetup(){</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;bt.begin(9600);/* Define baud rate for software serial communication */</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;Serial.begin(9600);/* Define baud rate for serial communication */</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">}</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">voidloop(){</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;if (bt.available())/* If data is available on serial port */</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;{</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;Serial.write(bt.read());/* Print character received on to the serial monitor */</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">&nbsp;}</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">}</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">After writing, upload the code to the Arduino UNO Board.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">For test Purpose download and install the app <a href="https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal"><span style="font-weight:700;">Bluetooth Terminal</span></a> which is available on Playstore. We will use this app to connect our smartphone to the HC-05 Bluetooth module.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;"><span style="width:220px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img src="https://lh5.googleusercontent.com/oWzr6kens35la26Mx9XEsbaXuwV0JNL2gza4U0VvLF0o-xLIEvM-6lbsKRC7n6_zomUGfQe7Tlv397ejiNNsQ1atfmRWEfYhxg32C8U-jNqIHbdyfOKP50mIO0aTcC02yhzpb3I-Rae9zTPpwpxxLA" width="220" height="427" style="width:185px !important;height:359.1px !important;max-width:100% !important;" alt="How to Interface HC-05 Bluetooth Module With Arduino Uno "></span></span></p><p style="text-align:justify;"><span style="font-size:14px;font-weight:700;color:rgb(0, 0, 0);">Conclusion:</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Using the above process you can use the HC-05 Bluetooth module for communication purposes as per your requirements.</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">Once you successfully complete this project using Arduino UNO board, then you can easily try with other microcontrollers like <span style="font-weight:700;">Arduino</span><span style="font-weight:700;">Mega,UNO,NANO,Atmega328p,Arduino uno R3</span> as per your need. At <span style="font-weight:700;">Campus Component</span> we are also providing Arduino cable and Arduino shield as per your project requirements</span></p><p style="text-align:justify;"><span style="font-size:14px;color:rgb(0, 0, 0);">We can make different projects using the HC-05 Bluetooth module and Arduino UNO, eg. in smart agriculture, smart homes, smart sound systems and many applications related to large industries.</span></p><p style="text-align:justify;margin-bottom:9pt;"><span style="font-size:14px;color:rgb(0, 0, 0);">If you are looking for electronic components and different microcontrollers, reach out&nbsp;<a href="https://www.campuscomponent.com/">Campus Component</a>&nbsp;today!<br></span></p></div>
</div><div data-element-id="elm_8_7-b3ahTNCzEudHvmKNbQ" data-element-type="button" class="zpelement zpelem-button "><style></style><div class="zpbutton-container zpbutton-align-center"><style type="text/css"></style><a role="button" class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md " href="javascript:;" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 20 Mar 2023 12:25:41 +0000</pubDate></item></channel></rss>