<?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/tag/wirelesscommunication/feed" rel="self" type="application/rss+xml"/><title>Campus - Blog #wirelesscommunication</title><description>Campus - Blog #wirelesscommunication</description><link>https://www.campuscomponent.com/blogs/tag/wirelesscommunication</link><lastBuildDate>Sat, 16 May 2026 04:49:05 -0700</lastBuildDate><generator>http://zoho.com/sites/</generator><item><title><![CDATA[A Complete Guide on Interfacing Nextion Display with ESP32]]></title><link>https://www.campuscomponent.com/blogs/post/introduction-of-how-to-use-adc-functions-of-nuvoton-microcontroller1</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/A complete guide on Interfacing NExtion display with ESP32 .jpg"/>Explore the seamless integration of Nextion Display with ESP32 in this comprehensive guide. Learn how to set up the display, download essential resources, and effortlessly interface it with your ESP32 microcontroller.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_TEv-yYmiTeqvBeTCNstigA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_1MrlmlT-RRmrH3bN1U8JKg" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_TIRRfBlxQTWGVaN3CKn0HQ" 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_TIRRfBlxQTWGVaN3CKn0HQ"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_oyr9bIynTAmV0r61dl5BRQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_oyr9bIynTAmV0r61dl5BRQ"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_PeUq28uwQtOjr85VQYtHlQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_PeUq28uwQtOjr85VQYtHlQ"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;"><img src="/A%20complete%20guide%20on%20Interfacing%20NExtion%20display%20with%20ESP32%20.jpg" style="width:1099px !important;height:629px !important;max-width:100% !important;" alt="A Complete Guide on Interfacing Nextion Display with ESP32"><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 this article we will interface </span><span style="font-size:11pt;font-weight:700;">Nextion Display</span><span style="font-size:11pt;"> with </span><span style="font-size:11pt;font-weight:700;">ESP32</span><span style="font-size:11pt;">, we will see how to configure the display for the first time, download the needed resources, and how to integrate it with the ESP32 microcontroller board.&nbsp;The Nextion display is a powerful Human Machine Interface (HMI) solution that lets you create interactive graphical user interfaces (GUIs) for your embedded projects. When combined with the ESP32 microcontroller, you can develop user-friendly interfaces for various applications, including IoT devices, automation projects, and data visualization dashboards.<br><br></span></span></p><h2 style="text-align:left;">Hardware &amp; Software Requirements to Interface Nextion Display with ESP32</h2><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Hardware:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><a href="https://www.campuscomponent.com/products/espressif-esp32-devkitc-32d-development-board/2208614000001841024"><span style="font-size:11pt;color:rgb(0, 0, 0);">ESP32 Dev Board (e.g.,&nbsp;ESP32-WROOM-32)</span></a></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><a href="https://www.campuscomponent.com/products/nx8048k070-011c-7-0-capacitive-touch-display-with-enclosure-lc-3373-d/2208614000040315492"><span style="font-size:11pt;color:rgb(0, 0, 0);">Nextion Display</span></a></p></li><li style="font-size:11pt;"><p style="text-align:justify;margin-bottom:10pt;"><a href="https://www.campuscomponent.com/products/g620e643da/2208614000003458013"><span style="font-size:11pt;color:rgb(0, 0, 0);">Jumper wires</span></a></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Software:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Nextion Editor</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);">Arduino IDE&nbsp;</span></p></li></ul><h2 style="text-align:left;">Nextion Display Setup</h2><div><br></div><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Nextion Editor is a development software used for visual building of graphic interface for embedded/IOT/GUI-intensive devices with various types of TFT displays and Touch Panels. Using this software, we can start creating user interfaces for TFT based devices in a faster and easier way.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">You can download Nextion Editor from this link</span></p><p style="text-align:justify;"><a href="https://nextion.itead.cc/resources/download/nextion-editor/"><span style="font-size:11pt;color:rgb(0, 0, 0);">https://nextion.itead.cc/resources/download/nextion-editor/</span></a></p><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">After downloading the editor install the nextion editor .</span></p><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);"><br></span></p><h2 style="text-align:left;">Nextion Editor General Overview</h2><div><br></div><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Here’s a quick overview of the different sections of the Nextion Editor.</span></p><p><span style="font-size:11pt;"><span style="width:488px;"><img alt="A Complete Guide on Interfacing Nextion Display with ESP32" src="https://lh7-us.googleusercontent.com/Oej_r9m0qnSPpK0SOMugIhWZ1k75u1zlhgwbx49NEbKcWzZW7SNh1V2jMOJNlkOC_3hRmZoaqs53a7Tk7q4D4yEn84negDvqlTUBxiZ_mbf8o16e4T-8fvUSZ7u3jUIsCQxbDO7XfdESKsCkquUkzw" width="488" height="294"></span></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);">Main Menu</span></p></li><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Canvas&nbsp;</span><span style="font-size:11pt;font-weight:400;">– this is where you add your components to build the User Interface.</span></span></p></li><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Toolbox</span><span style="font-size:11pt;font-weight:400;">&nbsp;– this is where you have a wide variety of components you can add to the user interface, like pictures, progress bar, buttons, sliders, and much more.</span></span></p></li><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Picture/Fonts list</span><span style="font-size:11pt;font-weight:400;">&nbsp;– this shows the fonts and pictures imported to your projects. Here you can also add new fonts and pictures.</span></span></p></li><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Page&nbsp;area</span><span style="font-size:11pt;font-weight:400;">&nbsp;– you can manage your pages here, like add more pages, copy and delete pages.</span></span></p></li><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Attributes area</span><span style="font-size:11pt;font-weight:400;">&nbsp;– this part shows your component’s attributes. You can edit the component’s attributes here.</span></span></p></li><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Compiler&nbsp;output window</span><span style="font-size:11pt;font-weight:400;">&nbsp;– this will show any errors occurred during compiling.</span></span></p></li><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;">Event window</span><span style="font-size:11pt;font-weight:400;">&nbsp;– here you can add code to be run when an event is met.</span></span></p></li></ol><div style="text-align:justify;"><span style="color:rgb(0, 0, 0);font-size:14.6667px;"><br></span></div><h2 style="text-align:left;">Interfacing ESP32 with Nextion Display</h2><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the Nextion display to 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);">Connect the TX pin of the Nextion display to the RX pin of the ESP32 (e.g.,&nbsp;ESP32 Tx0 to Nextion Rx).</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the RX pin of the Nextion display to the TX pin of the ESP32 (e.g.,&nbsp;ESP32 Rx0 to Nextion Tx).</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);">Use the jumper wires to connect the GND pins of both devices.</span></p></li></ul><p><span style="font-size:11pt;"><span style="width:491px;"><img alt="A Complete Guide on Interfacing Nextion Display with ESP32" src="https://lh7-us.googleusercontent.com/LzoNqBamFdEGy8oaYMZk4LIrgSme0DzsiBTNlHhH8XFTykzmASOv_7095qfGJCh-K_yso2XPaVMsYF940hbbJ0VRUCQhLjAn4OaanwXrz2FavBXNeHZfO0FSaQtqMF3Wav6XuImbCLmi5myeFTMaog" width="491" height="143" style="width:806.64px !important;height:235px !important;max-width:100% !important;"></span></span></p><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Configure the Nextion display:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Open the Nextion Editor and create a new project.</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 model of your Nextion display.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Design your desired interface using the built-in components like buttons,&nbsp;text boxes,&nbsp;images,&nbsp;and progress bars.</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);">Assign unique IDs to each component for interaction with the ESP32 code.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Example User Interface designed in Nextion Editor:</span></p><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:624px;"><img alt="A Complete Guide on Interfacing Nextion Display with ESP32" src="https://lh7-us.googleusercontent.com/MhHW5poATv_prAt60nsNv_Q7YvzHvp0xC02Acqq4JRNzccCXDoLSs2gtfT-jYgnheDEhAfBdM5rKJPucQg1DHEYRBam6CXqORCs-j_DogqQ40n1drbBmQx4yiE00TZi34NZs0igQFePgoDPG73uk1A" width="624" height="333"></span></span></p><p><span style="font-size:11pt;"><span style="width:624px;"><br></span></span></p><p><span style="font-size:11pt;"><span style="width:624px;"><br></span></span></p><p><span style="font-size:11pt;"><span style="width:624px;"><img alt="A Complete Guide on Interfacing Nextion Display with ESP32" src="https://lh7-us.googleusercontent.com/w-vqm-lQifDAlp1RJ_Pm8nRX97BzVSo01HSwcqUDN0VkgsWzALIbG4vMm_3DS7Tn7ek4480vNT8K4uBlur0yH7CKiQcIeyWzMH5FsWpOfYA2T7DhD7pkGfnflnfG13BE6hM9xhRj24YpuadQVEX4Jg" width="624" height="320"></span></span></p><p><span style="font-size:11pt;"><span style="width:624px;"><br></span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The above image shows the connection diagram of ESP 32 wifi four relay board with the nextion display.From the ESP 32 board J1 and J2 connect 5v and Ground(G) to the nextion display as show below.Connect Tx of nextion to the Rx0 of the ESP32 board and Rx of nextion to the Tx0 of the ESP32 board .This will establish Uart communication.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Example Code to Show Temperature, Humidity and State of Button on Nextion Display</span></h2><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &quot;Nextion.h&quot;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &quot;DHT.h&quot;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#define DHTPIN 4 &nbsp; &nbsp; // what digital pin we're connected to</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Uncomment whatever type you're using!</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#define DHTTYPE DHT11 &nbsp; // DHT 11</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//#define DHTTYPE DHT22 &nbsp; // DHT 22&nbsp; (AM2302), AM2321</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//#define DHTTYPE DHT21 &nbsp; // DHT 21 (AM2301)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Initialize DHT sensor.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">DHT dht(DHTPIN, DHTTYPE);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// LED pins</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const int led1 = 8;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const int led2 = 9;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Declare your Nextion objects - Example (page id = 0, component id = 1, component name = &quot;b0&quot;)&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">NexText tState = NexText(0, 4, &quot;tState&quot;);&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">NexButton bOn = NexButton(0, 2, &quot;bOn&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">NexButton bOff = NexButton(0, 3, &quot;bOff&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">NexSlider h0 = NexSlider(0, 5, &quot;h0&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">NexText tSlider = NexText(0, 6, &quot;tSlider&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">NexText tTempC = NexText(1, 5, &quot;tTempC&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">NexText tTempF = NexText(1, 4, &quot;tTempF&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">NexProgressBar jHumidity = NexProgressBar(1, 8, &quot;jHumidity&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">NexText tHumidity = NexText(1, 9, &quot;tHumidity&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">NexButton bUpdate = NexButton(1,10, &quot;bUpdate&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Register a button object to the touch event list.&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">NexTouch *nex_listen_list[] = {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;&amp;bOn,</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;&amp;bOff,</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;&amp;h0,</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;&amp;bUpdate,</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;NULL</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);">&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:11pt;color:rgb(0, 0, 0);">&nbsp;* Button bOn component pop callback function.&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;* When the ON button is released, the LED turns on and the state text changes.&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);">void bOnPopCallback(void *ptr) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;tState.setText(&quot;State: on&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;digitalWrite(led1, HIGH);</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);">/*</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;* Button bOff component pop callback function.&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;* When the OFF button is released, the LED turns off and the state text changes.&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);">void bOffPopCallback(void *ptr) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;tState.setText(&quot;State: off&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;digitalWrite(led1, LOW);</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);">/*</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;* Slider h0 component pop callback function.&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;* When the slider is released, the LED brightness changes and the slider text changes.&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);">void h0PopCallback(void *ptr) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;uint32_t number = 0;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;char temp[10] = {0};</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// change text with the current slider value</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;h0.getValue(&amp;number);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;utoa(number, temp, 10);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;tSlider.setText(temp);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// change LED brightness</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;analogWrite(led2, number);&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:11pt;color:rgb(0, 0, 0);">/*</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;* Button bUpdate component pop callback function.&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;* When the UPDATE button is released, the temperature and humidity readings are updated.&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);">void bUpdatePopCallback(void *ptr) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Reading temperature or humidity takes about 250 milliseconds!</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;float h = dht.readHumidity();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Read temperature as Celsius (the default)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;float t = dht.readTemperature();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Read temperature as Fahrenheit (isFahrenheit = true)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;float f = dht.readTemperature(true);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Check if any reads failed and exit early (to try again).</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (isnan(h) || isnan(t) || isnan(f)) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;return;</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;// Update temperature in Celsius</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;static char temperatureCTemp[6];</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;dtostrf(t, 6, 2, temperatureCTemp);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;tTempC.setText(temperatureCTemp);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Update humidity percentage text and progress bar</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;char hTemp[10] = {0};&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;utoa(int(h), hTemp, 10);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;tHumidity.setText(hTemp);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;jHumidity.setValue(int(h));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Update temperature in Fahrenheit</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;static char temperatureFTemp[6];</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;dtostrf(f, 6, 2, temperatureFTemp);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;tTempF.setText(temperatureFTemp);</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 setup(void) {&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;dht.begin();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.begin(9600);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// You might need to change NexConfig.h file in your ITEADLIB_Arduino_Nextion folder</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Set the baudrate which is for debug and communicate with Nextion screen</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;nexInit();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Register the pop event callback function of the components</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;bOn.attachPop(bOnPopCallback, &amp;bOn);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;bOff.attachPop(bOffPopCallback, &amp;bOff);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;h0.attachPop(h0PopCallback);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;bUpdate.attachPop(bUpdatePopCallback, &amp;bUpdate);</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;// Set LEDs as outputs</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;pinMode(led1, OUTPUT);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;pinMode(led2, 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(void) {&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;* When a pop or push event occured every time,</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;* the corresponding component[right page id and component id] in touch event list will be asked.</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;nexLoop(nex_listen_list);</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="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;"><span style="font-size:11pt;"><span style="width:407px;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;<img alt="A Complete Guide on Interfacing Nextion Display with ESP32" src="https://lh7-us.googleusercontent.com/j6wbLjW6_bm1ogwrENs8kTIEl9oVTJHDIvdgadLe4eRmfT0vQ3dfK3SGHp9fjswNbT3QZVXQYMRgi-UZTW3rp1bSarMtxnuOBQChCGOfguQgiRc2PGXPw6AoqDxAhLZOz8wjw-rXvdXjhPJAA6NdQg" width="407" height="245"></span></span></p><p style="text-align:justify;"><span style="font-size:11pt;"><span style="width:407px;color:rgb(0, 0, 0);"><br></span></span></p><p style="text-align:justify;"><span style="font-size:11pt;"><span style="width:445px;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 alt="A Complete Guide on Interfacing Nextion Display with ESP32" src="https://lh7-us.googleusercontent.com/nSgKtrrMdeHQLqmvpJvfxwA1utK5w8T7K0eHq9vBPSTZWg-r9gD__UqLMMl0v_66917cpVHtEREr8gcm71qt0xYupO_ZCMGnkjnYtvLftzwND6owQNkBNp6rpYfX8_vVhhj7QbJxk43ktKlCfq8F3w" width="445" height="273"></span></span></p><p style="text-align:justify;"><span style="font-size:11pt;"><span style="width:445px;color:rgb(0, 0, 0);"><br></span></span></p><h3 style="text-align:left;">Working of the Project</h3><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Once the hardware is connected and the software is programmed, the ESP32 communicates with the Nextion display through serial communication. The ESP32 sends commands to the display, telling it what to display and how to respond to user input. The Nextion display then updates its GUI and sends back any user interactions to the ESP32 for further processing.</span></p><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);"><span style="font-size:18px;font-weight:bold;">You May Also Like To Read:</span>&nbsp;</span><a href="https://www.campuscomponent.com/blogs/post/at-commands-call-and-sms-using-a7672s-4g-gsm-with-nuvoton-microcontroller" style="text-align:center;font-weight:bold;"><span style="font-size:18px;">AT Commands, Call and SMS Using A7672S 4G GSM with Nuvoton Microcontroller</span></a></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><h2 style="text-align:left;">Conclusion</h2><div><br></div><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">In this post we have seen the interfacing of Nextion display with ESP32, following the above tutorial you can explore multiple dimensions of Nextion Display and as well of ESP32. Nextion is a great display that makes the process of creating user interfaces simple and easy.&nbsp;Campus Component offer a diverse range of components to fuel your innovation. If you're ready to elevate your projects with the seamless synergy of Nextion Displays and ESP32, and many other electronic components, visit Campus Component today and </span><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">buy electronic components online in India</span></a><span style="font-size:11pt;">.</span></span></p></div>
</div><div data-element-id="elm_rA3d7mFpRFizpMV_ORuT6w" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_rA3d7mFpRFizpMV_ORuT6w"].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="/shop-now#https://www.campuscomponent.com/categories/lcd_led_display/2208614000002321137?pf=1284391000027022219_Brand_Nextion" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Fri, 12 Jan 2024 05:50:54 +0000</pubDate></item><item><title><![CDATA[IoT Based Smart Kitchen Automation & Monitoring with ESP8685]]></title><link>https://www.campuscomponent.com/blogs/post/iot-based-smart-kitchen-automation-monitoring-with-esp8685</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/IOT Based Smart Kitchen Automation and Monitoring With ESP8685.jpg"/>Explore the step-by-step guide on creating a smart kitchen with IoT automation and monitoring using ESP8685. Learn how to connect multiple kitchen loads, control them remotely, and enhance safety.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_EpaE2JHhSpm1cH5sv6s5-w" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_9QvdVCXpQCenhyJHw-KVTw" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_8H9X_ltLTSSqEAhf-iCqqg" 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_8H9X_ltLTSSqEAhf-iCqqg"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_wt2U_7H2TEaRFIKcxVPC1Q" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_wt2U_7H2TEaRFIKcxVPC1Q"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_8gVVQ8hsSIyZ4k1r9IiQpQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_8gVVQ8hsSIyZ4k1r9IiQpQ"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;"><img src="/IOT%20Based%20Smart%20Kitchen%20Automation%20and%20Monitoring%20With%20ESP8685.jpg" style="width:1096.05px !important;height:839px !important;max-width:100% !important;"><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);font-size:11pt;">In this blog, we will build an </span><span style="color:rgb(0, 0, 0);font-size:11pt;font-weight:700;">IOT based smart kitchen</span><span style="color:rgb(0, 0, 0);font-size:11pt;"> using </span><span style="color:rgb(0, 0, 0);font-size:11pt;font-weight:700;">ESP8685</span><span style="color:rgb(0, 0, 0);font-size:11pt;">. Our purpose from this project is to automate the basic Kitchen loads and real time monitor them using ESP8685. A home's kitchen holds significant importance, serving as a central hub for daily activities. Ensuring safety remains paramount during any kitchen-related tasks. Swift identification and resolution of issues such as gas leaks, uncontrolled fires, high temperatures, and excessive moisture are critical. Additionally, the remote monitoring and control of kitchen appliances such as lighting, refrigerators, ovens, etc., become imperative. The primary objective of this blog is to develop a prototype for a Smart Kitchen leveraging IoT (Internet of Things) technologies.</span><br></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;">In this project we will control a kitchen load through a relay connected to </span><span style="font-size:11pt;font-weight:700;">ESP8685</span><span style="font-size:11pt;">, so you can connect multiple loads in the kitchen like refrigerator, water purifier, ventilation system, kitchen lights, etc.&nbsp;</span></span></p><p><span style="font-size:11pt;"><span style="width:415px;"><img src="https://lh7-us.googleusercontent.com/6ZV21xg108W_mJPFWCNncsU7G6V5Ppc4GJp38a8HcQeo_eFKy7oS2eJdSfbyVxkNEKBykp8Ta9CKRxslzYlnUVe4jc47qbk0haNuNYi5uYyte1-WMzbRz-MDUM3pOKwq53mXbcdbKQfhMYEZ_qCvmQ" width="415" height="234"></span></span></p><p><span style="font-size:11pt;"><span style="width:415px;"><br></span></span></p><p><span style="font-size:11pt;"><span style="width:415px;"><br></span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">We’ll take a look at how to connect the relay to the ESP8685 and build a web server to control a relay remotely (or as many relays as you want).</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16px;font-weight:400;color:rgb(0, 0, 0);">Hardware Requirements and Software Requirements</span></h2><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Hardware Requirements:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><a href="https://www.campuscomponent.com/products/esp8685-wroom-01-h4-wi-3357-d/2208614000039983224"><span style="font-size:11pt;">ESP8685 Microcontroller Module</span></a></p></li></ul><p style="margin-left:36pt;"><span style="font-size:11pt;"><span style="width:126px;"><img src="https://lh7-us.googleusercontent.com/sjSPs0CGY1E-PzhzbvEQBPvtKYqpKN9yR3WNjSO7enNfOcgHQhsgR36Xlrdi0h_o8svnFKqqHrtckS_cSEJAr86pJER6-soRcrtjGXbZF4l4XnWCGVUefk9tAthv3w9O3c2x5qiqpvHbhrJcMoX1vg" width="126" height="188" style="width:179px !important;height:266.97px !important;max-width:100% !important;"></span></span></p><ul><li style="font-size:11pt;"><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;">5V-2 Channel Relay Module</span></a></p></li></ul><p style="margin-left:36pt;"><span style="font-size:11pt;"><span style="width:261px;"><img alt="2 channel relay module" src="https://lh7-us.googleusercontent.com/5eu3vg_Mfb-NWQUl-bvYwv9S-FIu3O83D-WUHDEqsALymZok4FecHiT1aSZm1JTPzCiAvTQ7nRheDlEYnITSmFlyJeZZS_BxVdHBJMOvWAhaKuGvKscxxvCtJ_C_9cpgqTNu3-3bRdVj5xhxDtmTZg" width="261" height="196" style="width:302.23px !important;height:227px !important;max-width:100% !important;"></span></span></p><p style="margin-left:36pt;"><span style="font-size:11pt;"><span style="width:261px;"><br></span></span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><a href="https://www.campuscomponent.com/products/g620e643da/2208614000003458013"><span style="font-size:11pt;color:rgb(0, 0, 0);">Jumper Wires</span></a></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);">Bulb as Load</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Software Requirements:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Arduino IDE</span></p></li></ul><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:18px;font-weight:400;color:rgb(0, 0, 0);">Wiring a Relay Module to the ESP32</span></h2><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the relay module to the ESP8685 as shown in the following diagram. The diagram shows wiring for a 2-channel relay module,</span></p><p><span style="font-size:11pt;"><span style="width:411px;"><img src="https://lh7-us.googleusercontent.com/0ilkJq6ac_2h3niCy0hPQkrCJltuPTatXuDCLQgggCiHqZwt27u8MwhylVjWuXHwEorqHmNnV-LoH7h5R5vn1ito318cRIbOhYijjLpDcPH8naCL7hnnDMpC2rO0zjm0Ez4nwKNySn6Ve04g3pn_FA" width="411" height="265" style="width:527.1px !important;height:340px !important;max-width:100% !important;"></span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">We’re connecting the IN1 pin to&nbsp;GPIO 26, you can use any other suitable GPIO. Here we are using Lamp, for trial, after proper testing you can connect multiple kitchen loads with multiple relays.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">After successful connection, upload the following code in ESP8685. Through this we will send a LOW signal to let the current flow, and a HIGH signal to stop the current flow. Also we will control this relay with help of ESP8685 web server.</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);">Code:</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &quot;WiFi.h&quot;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &quot;ESPAsyncWebServer.h&quot;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Set to true to define Relay as Normally Open (NO)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#define RELAY_NO&nbsp; &nbsp; true</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Set number of relays</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#define NUM_RELAYS&nbsp; 5</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Assign each GPIO to a relay</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">int relayGPIOs[NUM_RELAYS] = {2, 26, 27, 25, 33};</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Replace with your network credentials</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const char* ssid = &quot;CampusComponent&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const char* password = &quot;CampusComponent&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const char* PARAM_INPUT_1 = &quot;relay&quot;;&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const char* PARAM_INPUT_2 = &quot;state&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Create AsyncWebServer object on port 80</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AsyncWebServer server(80);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const char index_html[] PROGMEM = R&quot;rawliteral(</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&lt;!DOCTYPE HTML&gt;&lt;html&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&lt;head&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;&lt;style&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;html {font-family: Arial; display: inline-block; text-align: center;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;h2 {font-size: 3.0rem;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;p {font-size: 3.0rem;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;body {max-width: 600px; margin:0px auto; padding-bottom: 25px;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.switch {position: relative; display: inline-block; width: 120px; height: 68px}&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.switch input {display: none}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.slider {position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; border-radius: 34px}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.slider:before {position: absolute; content: &quot;&quot;; height: 52px; width: 52px; left: 8px; bottom: 8px; background-color: #fff; -webkit-transition: .4s; transition: .4s; border-radius: 68px}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;input:checked+.slider {background-color: #2196F3}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;input:checked+.slider:before {-webkit-transform: translateX(52px); -ms-transform: translateX(52px); transform: translateX(52px)}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;&lt;/style&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&lt;/head&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&lt;body&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;&lt;h2&gt;ESP Web Server&lt;/h2&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;%BUTTONPLACEHOLDER%</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&lt;script&gt;function toggleCheckbox(element) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;var xhr = new XMLHttpRequest();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if(element.checked){ xhr.open(&quot;GET&quot;, &quot;/update?relay=&quot;+element.id+&quot;&amp;state=1&quot;, true); }</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else { xhr.open(&quot;GET&quot;, &quot;/update?relay=&quot;+element.id+&quot;&amp;state=0&quot;, true); }</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;xhr.send();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}&lt;/script&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&lt;/body&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&lt;/html&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">)rawliteral&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Replaces placeholder with button section in your web page</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">String processor(const String&amp; var){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;//Serial.println(var);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if(var == &quot;BUTTONPLACEHOLDER&quot;){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;String buttons =&quot;&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;for(int i=&quot;1;&quot; i&lt;=NUM_RELAYS; i++){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;String relayStateValue = relayState(i);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;buttons+= &quot;&lt;h4&gt;Relay #&quot; + String(i) + &quot; - GPIO &quot; + relayGPIOs[i-1] + &quot;&lt;/h4&gt;&lt;labelswitch\&quot;&quot;&gt;&lt;input type=&quot;\&quot;checkbox\&quot;&quot;to&quot;ggleCheckbox(this)\&quot;&quot;&quot; + String(i) + &quot;\&quot; &quot;+ relayStateValue +&quot;&gt;&lt;spanslider\&quot;&quot;&gt;&lt;/span&gt;&lt;/label&gt;&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;return buttons;</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;return String();</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);">String relayState(int numRelay){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if(RELAY_NO){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if(digitalRead(relayGPIOs[numRelay-1])){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;return &quot;&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;else {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;return &quot;checked&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;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if(digitalRead(relayGPIOs[numRelay-1])){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;return &quot;checked&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;else {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;return &quot;&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;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;return &quot;&quot;;</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 setup(){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Serial port for debugging purposes</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;// Set all relays to off when the program starts - if set to Normally Open (NO), the relay is off when you set the relay to HIGH</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;for(int i=&quot;1;&quot; i&lt;=NUM_RELAYS; i++){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;pinMode(relayGPIOs[i-1], OUTPUT);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if(RELAY_NO){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;digitalWrite(relayGPIOs[i-1], HIGH);</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;else{</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;digitalWrite(relayGPIOs[i-1], LOW);</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;// Connect to Wi-Fi</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.status() != WL_CONNECTED) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;delay(1000);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(&quot;Connecting to WiFi..&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;// Print ESP32 Local IP Address</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);">&nbsp;// Route for root / web page</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;server.on(&quot;/&quot;, HTTP_GET, [](AsyncWebServerRequest *request){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;request-&gt;send_P(200, &quot;text/html&quot;, index_html, processor);</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;// Send a GET request to &lt;ESP_IP&gt;/update?relay=&lt;inputMessage&gt;&amp;state=&lt;inputMessage2&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;server.on(&quot;/update&quot;, HTTP_GET, [] (AsyncWebServerRequest *request) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;String inputMessage;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;String inputParam;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;String inputMessage2;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;String inputParam2;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// GET input1 value on &lt;ESP_IP&gt;/update?relay=&lt;inputMessage&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (request-&gt;hasParam(PARAM_INPUT_1) &amp; request-&gt;hasParam(PARAM_INPUT_2)) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;inputMessage = request-&gt;getParam(PARAM_INPUT_1)-&gt;value();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;inputParam = PARAM_INPUT_1;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;inputMessage2 = request-&gt;getParam(PARAM_INPUT_2)-&gt;value();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;inputParam2 = PARAM_INPUT_2;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if(RELAY_NO){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(&quot;NO &quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;digitalWrite(relayGPIOs[inputMessage.toInt()-1], !inputMessage2.toInt());</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;else{</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(&quot;NC &quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;digitalWrite(relayGPIOs[inputMessage.toInt()-1], inputMessage2.toInt());</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;else {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;inputMessage = &quot;No message sent&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;inputParam = &quot;none&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;Serial.println(inputMessage + inputMessage2);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;request-&gt;send(200, &quot;text/plain&quot;, &quot;OK&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;// Start server</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;server.begin();</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);">}</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);">After uploading the code to ESP8685 will try to connect to the WIFI, it will provide you with an IP address, after connecting with the IP on your smartphone, you will get a screen like this:</span></p><p><span style="font-size:11pt;"><span style="width:143px;"><img src="https://lh7-us.googleusercontent.com/5SgaWvIit0Dl4z_-3Dy0CSwhQzAcXUIr_ORww9vZE8_ElIKboqOPY3cJDiGoNrxVsSvDLn2gngZJZYfiyQNpIH7jMP7l2HqhW5wV8TVJb9FwSgOoebgVlo2kuTvkzXD5aeV8JA-o4M_L6oax6aOgDQ" width="143" height="289"></span></span></p><p><span style="color:inherit;"><br></span></p><p><span style="font-size:11pt;">Now for testing you can press any button for turning ON and OFF the relay.</span></p><p><span style="font-size:11pt;"><span style="width:468px;"><img src="https://lh7-us.googleusercontent.com/oWo1pB_eOCxhM10UsDkkYMkGUQhso12UfEeeu0dTD4s2DlsApT6aDhJGgFxgmErq8SBh03cXzqLpvSE0o7nzNXO59KgQsjmugaD-q0ZZh0-LQ0tRM6hYZxrCkwn4vL-oGkrRWdH-Gt4OKNqlxXgxUA" width="468" height="263"></span></span></p><p><span style="font-size:11pt;"><span style="width:468px;"><br></span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Now, you can use the onscreen buttons to control your Kitchen loads remotely using your smartphone, making your kitchen smart.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:18px;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;">This is how you can design your own&nbsp;</span><span style="font-size:11pt;font-weight:700;">IoT Based Smart Kitchen using ESP8685 with&nbsp;Automation&nbsp;&amp;&nbsp;Monitoring&nbsp;System using the ESP8685 web server</span><span style="font-size:11pt;">. Further in this project you can try to incorporate multiple relays and multiple loads from the kitchen. Also you can interface sensors like Gas sensors to detect gas leaks in the kitchen, to make the system more advanced.&nbsp;</span></span></p><p></p><div style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></div>
<p></p><p></p><p></p><div style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">If you are building a </span><span style="font-size:11pt;font-weight:700;">Smart IOT based Kitchen with automation and Monitoring</span><span style="font-size:11pt;">, We at </span><span style="font-size:11pt;font-weight:700;">CampusComponent</span><span style="font-size:11pt;">, provides a one-stop destination for all IoT modules and electronic&nbsp;</span><span style="font-size:11pt;">components from top brands, you can explore a wide range of cutting-edge components and solutions. Empower your projects with the quality </span><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">electronic components online</span></a><span style="font-size:11pt;"> available at Campus Component, your trusted partner in the world of electronics.</span></span></div>
</div></div><div data-element-id="elm_HOxEoJ3oQO-OVs9IXIJtVw" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_HOxEoJ3oQO-OVs9IXIJtVw"].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>Mon, 08 Jan 2024 09:14:28 +0000</pubDate></item><item><title><![CDATA[Getting Started and Interfacing GPS with ESP32]]></title><link>https://www.campuscomponent.com/blogs/post/getting-started-and-interfacing-gps-with-esp32</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/Getting Started And Interfacing GPS With ESP32.1.jpg"/>Learn to get GPS coordinates (longitude, latitude, altitude), speed and date-time. How to connect a GPS module to ESP32, and to program ESP32 step by step.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_dc3F3clySlySQwQecFlVNw" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_xB0r1puHTx-WCje2jYYmZQ" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_LOFeM4ZQR6mjYaq3usl0cQ" 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_LOFeM4ZQR6mjYaq3usl0cQ"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_5qKIMHE9SruB99b5XI4mdg" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_5qKIMHE9SruB99b5XI4mdg"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_zEzPbDSaQTeZS2LmITJcoQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_zEzPbDSaQTeZS2LmITJcoQ"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;"><img src="/Getting%20Started%20And%20Interfacing%20GPS%20With%20ESP32.1.jpg" style="text-align:center;width:1092.2px !important;height:774px !important;max-width:100% !important;" alt="Getting Started and Interfacing GPS with ESP32"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">If you are an embedded engineer working in the electronic industry, and somewhere in the project you are required to determine the moving object's position or calculate the altitude and velocity for a specific location. In such instances, the integration of a </span><a href="https://www.campuscomponent.com/categories/gps-module/2208614000033045001"><span style="font-size:11pt;">GPS module</span></a><span style="font-size:11pt;"> becomes invaluable.</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;">In this article you will understand how to get GPS coordinates(longitude, latitude, altitude), GPS speed, date-time information from the </span><span style="font-size:11pt;font-weight:700;">Allystar GEM1205 module</span><span style="font-size:11pt;">.</span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">So let’s get started!</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;">Hardware Requirements to Interface GPS with ESP 32</h2><ol><li style="font-size:11pt;"><h3 style="text-align:left;">ESP-Wroom 32 Dev Module</h3></li></ol><p style="text-align:justify;"><span style="font-size:11pt;"><span style="width:161px;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;<img src="https://lh7-us.googleusercontent.com/vppxFAb8HNq9DIhTyjmQik0-NB_HGJ5YoHaeM05PX9hCAu95tri24CsgLEFliJrnZh-tMwTkQdmoLeaBERG3EuA4dKtdZRaAZAvy2532YAVkPugZNiDQ5VzP4_kikw9R6dJk7EBdbXlN3-vMYIDN5g" width="161" height="200" style="width:197px !important;height:244.64px !important;max-width:100% !important;" alt="ESP 32"></span></span></p><ol start="2"><li style="font-size:11pt;"><h3 style="text-align:left;">Allystar GEM1205-2516AS0</h3></li></ol><p style="text-align:justify;"><span style="font-size:11pt;"><span style="width:261px;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;<img alt="GEM1205" src="https://lh7-us.googleusercontent.com/190sWdL-nkVgq9OpWjz8xLWkn421ykrg7Bd3dvynugw4QdyvonjYQwb4TOvnNc0zqPxUvt1cu_LeisB4MnGGY5kfPv1Zc5uVstIdZXiti5i5Zca4I_8BO4smjA7-RCBdJE_GYQQk46yvyUpAsWVv-w" width="261" height="266"></span></span></p><p></p><div style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></div><div style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></div><p></p><ol start="3"><li style="font-size:11pt;"><h3 style="text-align:left;">Jumper Wires</h3></li></ol><p style="text-align:justify;"><span style="font-size:11pt;"><span style="width:260px;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;<img src="https://lh7-us.googleusercontent.com/ImD_KmoWZGLE6JDuoFzjelA95Hpn-xzg8cYAcCFQzXREk9OgzvieV5--j07NJpPP4ak3rPB-klKU9X6qZOsFpnpZtBj1Nx3L6UGeZE2HM4l9GkHJ6rKFXI8-t4Bn4YpixjNB350zkBKPOMlcZ4KSWA" width="260" height="195" style="width:286.6px !important;height:215px !important;max-width:100% !important;" alt="Jumper wires "></span></span></p><ol start="4"><li style="font-size:11pt;"><h3 style="text-align:left;">Breadboard</h3></li></ol><p style="text-align:justify;"><span style="font-size:11pt;"><span style="width:204px;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;<img src="https://lh7-us.googleusercontent.com/2taFFYu3S21Zrex_LgoQo4YyrHAbWmW63VFvwnAUHHsZZHv0bCyTmDeJy1N2__Zc51PPfSPH2q47dYzPcmJS2rSg1aapj9Aa1XDH7KBuMKxlN-XUFSosiyrG2ti5_YbWbhdG1WwC9DlvVq0v5f-_xA" width="204" height="200" style="width:234.6px !important;height:230px !important;max-width:100% !important;" alt="Breadboard"></span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);"><br></span></h2><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Software Requirements</span></h2><ol><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Arduino IDE</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);">GPS Libraries</span></p></li></ol><h2 style="text-align:left;">Introduction to Allystar GEM1205 Module</h2><p style="text-align:justify;"><span style="font-size:11pt;"><span style="width:261px;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;<img alt="GEM1205" src="https://lh7-us.googleusercontent.com/190sWdL-nkVgq9OpWjz8xLWkn421ykrg7Bd3dvynugw4QdyvonjYQwb4TOvnNc0zqPxUvt1cu_LeisB4MnGGY5kfPv1Zc5uVstIdZXiti5i5Zca4I_8BO4smjA7-RCBdJE_GYQQk46yvyUpAsWVv-w" width="261" height="266" style="width:300px !important;height:305.78px !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;font-weight:700;">Allystar GEM1205</span><span style="font-size:11pt;"> is a high-performance dual-band (L1/L5) multi-system GNSS positioning module. It supports the global civil navigation systems, including GPS, IRNSS, BDS, GLONASS, Galileo, and QZSS. Embedded antennas ensure GEM1205 to work at L1 and L5 bands simultaneously to increase the number of visible satellites assisting by GPS, BDS, Galileo, and IRNSS signals, which makes this module achieve high positioning accuracy and short TTFF, especially in a rough urban environment.&nbsp;</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;">GEM1205 supports external active antennas featured with auto-detecting and auto-switching. With a compact body and high performance, GEM1205 is widely applied to tracking applications, like automotive, consumer, and industrial tracking.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;"><br></span></span></p><h3 style="text-align:left;">GEM1205-2516AS0 Specifications</h3><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Supports GPS, BDS, IRNSS, Galileo and QZSS systems covering L1 and L5 bands&nbsp;</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Supports AGPS/DGPS/SBAS (WAAS/EGNOS/MSAS/GAGAN)&nbsp;</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Built-in LNA &amp; SAW for better sensitivity&nbsp;</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Integrated with dual-feed (L1&amp;L5) antenna&nbsp;</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Supports Geo-Fence function&nbsp;</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Supports message broadcast service for IRNSS&nbsp;</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Ultra-low power consumption around 40mA in dual-band tracking mode&nbsp;</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Supports external active antenna featured with auto-detecting and auto-switching&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);">Compact size: 26.7mm*18.5mm*7.0mm</span></p></li></ul><h2 style="text-align:left;">Interfacing Allystar GEM1205 Module with ESP32</h2><div><br></div><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Make the connections according to the schematic shown below:</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <img src="/esp32-GPS-wiring1.jpg" style="width:478.74px !important;height:326px !important;max-width:100% !important;" alt="Getting Started and Interfacing GPS with ESP32"><br></p><p style="text-align:justify;"><br></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect ESP32’s 3V pin to Vcc of module and Ground to Ground.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect 34 pin to TXD of the module.</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 the 35 pin to the RXD of the module.</span></p></li></ul><h3 style="text-align:left;">ESP32 Code</h3><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">// After interfacing the </span><span style="font-size:11pt;font-weight:700;">Allystar GEM1205 module</span><span style="font-size:11pt;"> with ESP32&nbsp;upload the following code in ESP32.</span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;TinyGPS++.h&gt;</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">#define GPS_BAUDRATE 9600&nbsp; // The default baudrate of </span><span style="font-size:11pt;font-weight:700;">Allystar GEM1205 module</span><span style="font-size:11pt;"> is 9600</span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">TinyGPSPlus gps;&nbsp; // the TinyGPS++ object</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(9600);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial2.begin(GPS_BAUDRATE);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(F(&quot;ESP32 - GPS module&quot;));</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;if (Serial2.available() &gt; 0) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (gps.encode(Serial2.read())) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (gps.location.isValid()) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(F(&quot;- latitude: &quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(gps.location.lat());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(F(&quot;- longitude: &quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(gps.location.lng());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(F(&quot;- altitude: &quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (gps.altitude.isValid())</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(gps.altitude.meters());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(F(&quot;INVALID&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;} else {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(F(&quot;- location: INVALID&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;Serial.print(F(&quot;- speed: &quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (gps.speed.isValid()) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(gps.speed.kmph());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(F(&quot; km/h&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;} else {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(F(&quot;INVALID&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;Serial.print(F(&quot;- GPS date&amp;time: &quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (gps.date.isValid() &amp;&amp; gps.time.isValid()) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(gps.date.year());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(F(&quot;-&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(gps.date.month());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(F(&quot;-&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(gps.date.day());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(F(&quot; &quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(gps.time.hour());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(F(&quot;:&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(gps.time.minute());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.print(F(&quot;:&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(gps.time.second());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;} else {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(F(&quot;INVALID&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;Serial.println();</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;if (millis() &gt; 5000 &amp;&amp; gps.charsProcessed() &lt; 10)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial.println(F(&quot;No GPS data received: check wiring&quot;));</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);"><br></span></p><h2 style="text-align:left;">Applications Using Allystar GEM1205 Module with ESP32</h2><ol><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Real time location tracking</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Geofencing</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);">Outdoor navigation, etc and many more.</span></p></li></ol><h2 style="text-align:left;"><br></h2><h2 style="text-align:left;">Conclusion</h2><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">From the above tutorial on interfacing the </span><span style="font-size:11pt;font-weight:700;">Allystar GEM1205 module</span><span style="font-size:11pt;"> module with the ESP32, you now possess a valuable skill set to create diverse applications. As an embedded engineer in the electronic industry, the ability to determine object positions, calculate altitudes, and measure velocities becomes seamless with this integration.</span></span></p><p style="text-align:justify;margin-bottom:9pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">For your hardware needs, trusted brands like </span><span style="font-size:11pt;font-weight:700;">Allystar GEM1205 module</span><span style="font-size:11pt;"> and ESP32 microcontrollers can be found at Campus Component. If you are looking for electronic components by </span><a href="https://www.campuscomponent.com/brand-details/espressif"><span style="font-size:11pt;">Espressif</span></a><span style="font-size:11pt;"> and modules like GPS, GSM, reach out to the </span><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">Electronics components suppliers</span></a><span style="font-size:11pt;">-&nbsp;Campus Component&nbsp;today!</span></span></p></div>
</div><div data-element-id="elm__fToK8KBQi6KCZqW8XsyPQ" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm__fToK8KBQi6KCZqW8XsyPQ"].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>Wed, 03 Jan 2024 05:07:23 +0000</pubDate></item><item><title><![CDATA[Applications of Internet of Things in Electric Vehicle Chargers]]></title><link>https://www.campuscomponent.com/blogs/post/applications-of-internet-of-things-in-electric-vehicle-chargers</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/Applications of Internet of Things in Electric vehicle chargers.jpg"/>Explore the seamless integration of Internet of Things in electric vehicle chargers, enhancing efficiency, connectivity, and smart functionality for the future of sustainable transportation.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_oKgpnlYgTjy1KsXQSEzfFQ" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_bl_-ozU4THGJ0Zyufzx7dw" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_3ZXCZavWRnSQ4Xoj97PXDA" 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_1IQ43KSdSYWv9CFVPE_hyw" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_1IQ43KSdSYWv9CFVPE_hyw"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_4p_6_rgfR2KduuYw97dM4w" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_4p_6_rgfR2KduuYw97dM4w"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;"><img src="/Applications%20of%20Internet%20of%20Things%20in%20Electric%20vehicle%20chargers.jpg" alt="Applications of Internet of Things in Electric Vehicle Chargers"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;"><br></span></span></p><p style="text-align:justify;"><br></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">The application of </span><span style="font-size:11pt;font-weight:700;">Internet of Things(IOT)</span><span style="font-size:11pt;"> is becoming increasingly beneficial in our everyday lives. One area where the IOT is beginning to have a major impact is in Electric vehicles, Electric Vehicle Charging, and its Infrastructure. With the introduction of IOT technology, EV Charging Stations become more efficient and convenient not only for drivers but also for service workers.</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);">The application of IOT in electric vehicle charging infrastructure enables remote control and management, enabling charging stations to offer personalized services to EV drivers and communicate in real-time to unexpected events.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">In this special article, we will explore the diverse application of IOT in EV chargers and how this synergy is propelling the Electric Mobility Revolution.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Benefits of IoT in the EV Industry</span></h2><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The integration of IoT technology in EV charging stations has become a hot topic in the industry because of its multiple applications, generating massive interest among companies seeking to adopt innovative solutions. This technology offers a range of notable benefits:</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);">Improved User Experience:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Drivers gain access to real-time information about their vehicle’s charging status, battery range, and maintenance needs through smartphone apps or vehicle dashboards.</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);">Empowers users to plan journeys effectively, find nearby charging stations, and monitor vehicle performance.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Enhanced Efficiency:</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;">Real-time data collection by sensors in various vehicle components, including batteries, motors, and </span><a href="https://www.campuscomponent.com/products/ev-2-charging-gun-connector-cc-2825-d/2208614000025950134"><span style="font-size:11pt;">charging guns</span></a><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);">Analysis of data to identify patterns, anomalies, and areas for improvement.</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);">Optimization of vehicle systems and energy usage, leading to improved energy efficiency and accurate range estimation.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Minimized Downtime:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Sensors continuously collect and analyze data from vehicle components to identify potential issues or malfunctions.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Timely maintenance or repairs based on the analyzed data minimizes extended downtime.</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);">Proactive maintenance ensures EVs remain on the road for longer, reducing disruption to operations and enhancing productivity.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Cost-Efficient Operations:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">IoT sensors analyze data from various vehicle components to detect anomalies or signs of potential failures.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Proactive addressing of issues before they lead to breakdowns or major repairs.</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);">Reduction in downtime, minimized repair costs, and increased overall cost-effectiveness of EV operations.</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);">IoT Applications in Electric Vehicles</span></h2><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Vehicle Connectivity:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Real-time data collection through IoT technology regarding various vehicle performance parameters such as battery health, tire pressure, and engine condition.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Continuous monitoring and analysis of data to ensure optimal vehicle operation.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Early detection of potential issues using advanced analytics and machine learning.</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);">Predictive maintenance based on data analysis to reduce downtime and repair costs.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Predictive Maintenance:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Direct connectivity between EVs and charging stations through IoT, streamlining charging procedures and automating vehicle identification and billing.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Efficient charging processes and seamless payment procedures for EV owners.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">IoT facilitates communication between EVs and traffic management systems, enabling intelligent traffic management.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Real-time information exchange about traffic light changes to optimize speed, reduce stop times, and enhance road safety.</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);">Real-time data sharing about vehicle location and nearby facilities.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Energy Management:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Real-time data analytics through IoT to monitor and adjust energy usage in various vehicle components.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Fine-tuning energy consumption to extend the vehicle’s range efficiently.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Smart charging systems optimize the charging process, potentially reducing charging time.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">IoT systems detecting idle states and adjusting power usage to conserve energy.</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);">Improved range and convenience for EV owners through optimized energy consumption.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Fleet Management:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Real-time tracking of vehicle location and performance metrics using IoT technology.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Optimization of vehicle routing based on location, traffic conditions, and vehicle status.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Early identification of issues to prevent breakdowns and improve vehicle utilization.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Data-driven optimization of routing, minimizing unnecessary travel and reducing fuel consumption.</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);">Significant cost savings and environmental responsibility in fleet operations.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Personalized User Experience:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">IoT in electric vehicles provides custom in-car experiences for enhanced user satisfaction.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Automatic adjustment of user preferences such as music and climate settings.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Personalized driving environment promoting brand loyalty and positive word-of-mouth referrals.</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);">Increased user satisfaction crucial in the competitive EV market.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">EV Charging Management:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Remote monitoring and management of EV charging infrastructure through IoT.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Ensuring charging stations are available and functioning correctly when needed.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Real-time data on energy usage for accurate billing information and efficient energy management.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Dynamic load balancing to manage power demand effectively and prevent grid overloading.</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);">Integration of renewable energy sources for sustainable EV charging.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Battery Management:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Real-time monitoring of EV battery health and performance through IoT.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Tracking temperature, voltage, current, and charge level for optimal battery operation.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Predictive maintenance through advanced data analytics to identify potential issues.</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Optimization of the battery charging process, managing the charging rate for efficiency.</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);">Scheduled charging during off-peak hours to reduce charging costs.</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);">Challenges of Implementing IoT in Electric Vehicle Charging Stations</span></h2><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">High Implementation and Maintenance Costs:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Installation of the IoT system poses a significant financial challenge.</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);">Ongoing maintenance costs add to the overall expense, making implementation economically demanding.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Security Concerns:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Ensuring protection against hackers and potential security threats is a critical challenge.</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);">Establishing robust security measures becomes imperative to safeguard sensitive data and user information.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Reliability Issues:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Ensuring proper charging of batteries is paramount, requiring a reliable system.</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);">Challenges arise when the battery cannot be plugged in until fully charged, impacting the efficiency of the charging process.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Necessity for Regular System Updates:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Regular upgrades are essential for the charging station to accommodate the latest technologies.</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);">Ensuring compatibility and functionality with evolving technologies is a continual challenge.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;font-weight:700;color:rgb(0, 0, 0);">Lack of Flexibility:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The charging station's lack of flexibility hampers its adaptability to new technologies.</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);">Regular updates are crucial to maintaining compatibility and ensuring optimal performance.</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Addressing these challenges is necessary for the successful integration and sustained effectiveness of IoT in electric vehicle charging stations. Overcoming these obstacles will contribute to the seamless operation and evolution of smart charging infrastructure.</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="color:rgb(0, 0, 0);"><span style="font-size:11pt;font-weight:700;">IOT in EV charging infrastructure</span><span style="font-size:11pt;"> have applications from optimizing energy consumption and vehicle performance to enabling personalized driving experiences and real time monitoring of charging processes, the IoT enhances operational efficiencies and the overall user experience. However, its challenges, such as cybersecurity and flexibility should be taken care of. Electric vehicles are an innovative step towards better control over air pollution, and the </span><a href="https://www.campuscomponent.com/iot-solution"><span style="font-size:11pt;">IoT solution</span></a><span style="font-size:11pt;"> plays a critical part.</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;">We at Campus Component, provides a one-stop destination for all IoT modules and electronic components from top brands, you can explore a wide range of cutting-edge components and solutions. Empower your projects with quality electronic components available at </span><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">Campus Component</span></a></span><span style="font-size:11pt;"><span style="color:rgb(0, 0, 0);">, your trusted partner in the world of electronics.&quot;&nbsp;</span></span></p><p style="text-align:justify;"><span style="color:inherit;"></span></p><div><span style="font-size:11pt;"><br></span></div>
<p></p></div></div><div data-element-id="elm_jcoP92GjQ_WPXPJVGuVfsA" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_jcoP92GjQ_WPXPJVGuVfsA"].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>Wed, 27 Dec 2023 07:24:00 +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[AT Commands, Call and SMS using A7672S 4G GSM with Nuvoton Microcontroller]]></title><link>https://www.campuscomponent.com/blogs/post/at-commands-call-and-sms-using-a7672s-4g-gsm-with-nuvoton-microcontroller</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/AT Commands- Call and SMS using A7672S 4G GSM with Nuvoton Microcontroller.jpg"/>Learn to send AT commands, make calls, and send SMS effortlessly with our comprehensive tutorial on integrating 4G GSM communication using A7672S and Nuvoton MS51FB 8051 microcontroller.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_BPdzEqqGSY6nosDDx74v2Q" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_VzfbQlCmScyVbqTX-U7-ww" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_zibtq4dyQEGfNlYbPMClMQ" 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_uCSdvVs-RZKnqMWHQaugUQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_uCSdvVs-RZKnqMWHQaugUQ"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_9Sz5O9Y8Seyzm3AWeCV7DQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_9Sz5O9Y8Seyzm3AWeCV7DQ"].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;<img src="/AT%20Commands-%20Call%20and%20SMS%20using%20A7672S%204G%20GSM%20with%20Nuvoton%20Microcontroller.jpg" style="width:947.86px !important;height:502px !important;max-width:100% !important;" alt="AT Commands, Call and SMS using A7672S 4G GSM with Nuvoton Microcontroller"><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 embedded systems and IOT, the integration of 4G GSM communication has become important for diverse applications. This article aims to provide a detailed tutorial on utilizing AT commands of the </span><span style="font-size:11pt;font-weight:700;">A7672S 4G GSM</span><span style="font-size:11pt;"> module with </span><span style="font-size:11pt;font-weight:700;">Nuvoton </span><span style="font-size:11pt;">microcontroller. In this tutorial we will interface A7672S 4G GSM module with </span><span style="font-size:11pt;font-weight:700;">Nuvoton MS51FB 8051</span><span style="font-size:11pt;"> and perform basic&nbsp; AT commands, Calling and sending SMS.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;"><br/></span></span></p><h2 style="text-align:left;">Hardware Requirements</h2><div><li><h3 style="text-align:justify;">Nuvoton MS51FB 8051</h3></li></div><p><span style="font-size:11pt;"><span style="width:239px;"><img alt="AT Commands, Call and SMS using A7672S 4G GSM with Nuvoton Microcontroller" src="https://lh7-us.googleusercontent.com/g5URZUQ4h6Uuz9ow4m67Y8xrNBDtGuS_G0UlBKyRK1j8aZWxpsumRUASt_wEFiP-ZNot8bxHv3lcCT9tMyWo6oBivDyfOEzB9bwx3xLs3gpcZ0D4XhcsXsDESJzy9atfkKd8qGVwr4ix3CTqwwGQ4Q" width="239" height="193" style="width:307.2px !important;height:248px !important;max-width:100% !important;"></span></span></p><p><span style="font-size:11pt;"><span style="width:239px;"><br/></span></span></p><li><h3 style="text-align:left;">SIMCOM A7672S 4G GSM Module with SIM Card</h3></li><li><div><br/></div></li><p style="text-align:left;"><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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &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="AT Commands, Call and SMS using A7672S 4G GSM with Nuvoton Microcontroller" src="https://lh7-us.googleusercontent.com/Yy72jxNujofsdGWX6mMt2l8zDxJA90wovg2m5aty7rBR8HP4EPei2GteQ35MzXfflba6PkooUAS96IKqMT98IDmTMgutAgZzq5jbnB9Yng9p7_Lid22WNpCpZ_Iu5ZXj_-czpaU3TAmH-Vzu09iUPg" width="331" height="155" style="width:418.74px !important;height:196px !important;max-width:100% !important;"></span></span></p><p><span style="color:inherit;"><span><br/><br/></span></span></p><li><h3 style="text-align:left;">Connecting Wires</h3></li><p><span style="color:inherit;"><span><br/></span></span></p><p><span style="font-size:11pt;"><span style="width:245px;"><img src="https://lh7-us.googleusercontent.com/9w4nFA-PK0ewCgH0nIvJdg97cQCO3OzhIh28LJFG0rkUcQj7m7NpMzgH5M4V88HyTu9zeTrgOpPEIL0E1cVHj47LkfKvXh4dTS2xG9J-UcG8c0qU0pxgFoIj10hR9cFAfDilqV-ox9dttTmlyZ7QHw" width="245" height="184" alt="AT Commands, Call and SMS using A7672S 4G GSM with Nuvoton Microcontroller" style="width:308.84px !important;height:232px !important;max-width:100% !important;"></span></span></p><p><span style="color:inherit;"><span><br/><br/></span></span></p><li><h3 style="text-align:left;">Bread Board</h3></li><p><span style="color:inherit;"><span><br/></span></span></p><p><span style="font-size:11pt;"><span style="width:213px;"><img alt="AT Commands, Call and SMS using A7672S 4G GSM with Nuvoton Microcontroller" src="https://lh7-us.googleusercontent.com/jx3Ht76fqf9H1awtCKnrnRPXTe2vIFRnC9R3Brclgd-G_iBb4uO1lq7axIA7Z5Rma1Y68CNG_STekT8Mv76SDtpQs754InvA4iu9Ik7eb_UT7SqtX8eiynpZdFr6SGtxxv6588DnVQbXQHCPBXKfRA" width="213" height="209" style="width:266.04px !important;height:261px !important;max-width:100% !important;"></span></span></p><h2></h2><h2 style="text-align:left;">Interfacing Nuvoton Microcontroller with SIM7672 4G GSM Module</h2><div><br/></div><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">GSM modules, such as the A7672S, come with a </span><span style="font-size:11pt;font-weight:700;">USART </span><span style="font-size:11pt;">adapter that can be directly connected to a computer via a </span><span style="font-size:11pt;font-weight:700;">MAX232 </span><span style="font-size:11pt;">module or via the Tx and Rx pins to a Nuvoton MS51FB 8051 .&nbsp;&nbsp;</span></span><span style="color:rgb(0, 0, 0);font-size:11pt;">Other pins, such as </span><span style="color:rgb(0, 0, 0);font-size:11pt;font-weight:700;">MIC+, MIC-, SP+, SP-,</span><span style="color:rgb(0, 0, 0);font-size:11pt;"> and so on, can be used to connect a microphone or a speaker. A 12V adapter can be used to power the module through a standard DC barrel connector.</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;">After completing the aforementioned steps, place the </span><span style="font-size:11pt;font-weight:700;">SIM card</span><span style="font-size:11pt;"> into the module's slot and turn it on; a power LED will light up.&nbsp;</span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">After a few moments, you should notice a red (or any other color) LED flashing once every three seconds. This indicates that your Module was successful in connecting to your SIM card.</span></p><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);">You can also take reference from the circuit diagram given below to interface A7672S GSM module with Nuvoton MS51FB 8051:-</span></p><p></p><div style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;font-weight:700;">Also you can check </span><a href="https://www.campuscomponent.com/blogs/post/how-to-interface-4g-gsm-modem-with-microcontroller#:%7E:text=You%20can%20connect%20sim%20A7672x%2CRx%20pins%20to%20a%20Microcontroller."><span style="font-size:11pt;font-weight:700;">here</span></a><span style="font-size:11pt;font-weight:700;">.</span></span></div><div style="text-align:justify;"><span style="font-size:14.6667px;font-weight:700;color:rgb(0, 0, 0);"><br/></span></div><p></p><p style="text-align:justify;"><span style="font-size:11pt;"><span style="width:535px;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://lh7-us.googleusercontent.com/7xAJxCfQneG9_2OH-NhTIJ3VC-GAs9x_ip5sJAg6AHObbpsDqltdBwYkR3-Wo_tk1hGJiTvJ-jloZFLqkB9kiyTp7d7J-WDEFW9jIjXlo1gI-tG6MxARZfe8OLT3A-3oKKnh4a6CJPNFZ8a9we7BjA" width="535" height="257" style="width:591.16px !important;height:284px !important;max-width:100% !important;"></span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><br/></h2><div><h3 style="text-align:left;">How to Send AT Commands</h3></div><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">After successfully interfacing the NUVOTON MS51FB 8051 with A7672S, upload the following code, so that you will be able to send A7672S AT commands using the Nuvoton controller and perform any Network Operations.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br/></span></p><h3 style="text-align:left;">Code</h3><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &quot;NuMicro.h&quot;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#define UART_PORT&nbsp; &nbsp; UART0</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#define UART_BAUDRATE 115200</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void UART0_Init() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;/* Enable peripheral clock */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;CLK_EnableModuleClock(UART0_MODULE);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;/* Select UART clock source */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART_MASK, CLK_CLKDIV_UART(1));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;/* Reset IP */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;SYS_ResetModule(UART0_RST);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;/* Configure UART0 and set UART0 Baudrate */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;UART_Open(UART_PORT, UART_BAUDRATE);</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 SendATCommand(const char *command) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;/* Send AT command through UART */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;int i;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;for (i = 0; command[i] != '\0'; i++) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;UART_WRITE(UART_PORT, command[i]);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;while (UART_IS_TX_EMPTY(UART_PORT) == 0);</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:11pt;color:rgb(0, 0, 0);">int main() {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;/* Unlock protected registers */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;SYS_UnlockReg();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;/* Init System, peripheral clock and multi-function I/O */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;SYS_Init();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;/* Initialize UART0 for communication with SIM7672 */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;UART0_Init();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;/* Enable interrupt and set priority */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;NVIC_EnableIRQ(UART0_IRQn);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;NVIC_SetPriority(UART0_IRQn, (1 &lt;&lt; __NVIC_PRIO_BITS) - 2);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;/* Lock protected registers */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;SYS_LockReg();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;/* Example: Sending AT command &quot;AT\r\n&quot; */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;SendATCommand(&quot;AT\r\n&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;while (1) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;// Your main code here</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="color:rgb(0, 0, 0);"><span style="font-size:11pt;">In this code, the </span><span style="font-size:11pt;font-weight:700;">UART0_Init</span><span style="font-size:11pt;"> function initializes the </span><span style="font-size:11pt;font-weight:700;">UART0</span><span style="font-size:11pt;"> module, and the </span><span style="font-size:11pt;font-weight:700;">SendATCommand</span><span style="font-size:11pt;"> function sends the specified AT command through </span><span style="font-size:11pt;font-weight:700;">UART</span><span style="font-size:11pt;">. The main function demonstrates sending the </span><span style="font-size:11pt;font-weight:700;">&quot;AT\r\n&quot;</span><span style="font-size:11pt;"> command, which is a basic AT command to test communication.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">AT commands are sent to the modem as plain text over a serial (UART) connection comprising two wires, one for </span><span style="font-size:11pt;font-weight:700;">receive (RX)</span><span style="font-size:11pt;"> and one for </span><span style="font-size:11pt;font-weight:700;">transmit (TX)</span><span style="font-size:11pt;">, or via USB.</span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Now let’s start by sending the AT commands and understand their use.</span></p><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);"><br/></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><span style="font-weight:bold;font-size:18px;">You May Also Like To Read :</span>&nbsp; &nbsp;</span><a href="https://www.campuscomponent.com/blogs/post/difference-between-8051-and-avr-microcontrollers" style="text-align:center;"><span style="font-size:18px;font-weight:bold;">Difference Between 8051 Vs AVR Microcontrollers</span></a></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);"><br/></span></h2><h2 style="text-align:left;">Basic A7672S AT Commands</h2><h2 style="text-align:left;"><span style="font-size:24px;font-weight:normal;text-align:center;">AT - Attention Command</span></h2><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT command</span><span style="color:rgb(0, 0, 0);font-size:11pt;">, fundamental command to check if the module is responsive.</span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;"><br/></span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;">AT+CGMI</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT+CGMI&nbsp;</span><span style="color:rgb(0, 0, 0);font-size:11pt;">retrieve the manufacturer information of the SIM7600X module.</span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;"><br/></span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;">AT+CSQ</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT+CSQ&nbsp;</span><span style="color:rgb(0, 0, 0);font-size:11pt;">Check the signal quality to gauge the network connection strength.</span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;"><br/></span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;">AT+CREG</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT+CREG&nbsp;</span><span style="color:rgb(0, 0, 0);font-size:11pt;">Check the network registration status to ensure the module is connected to a cellular network.</span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;"><br/></span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;">AT+CGATT</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT+CGATT,&nbsp;</span><span style="color:rgb(0, 0, 0);font-size:11pt;">Determine whether the module is attached or detached from the GPRS network.</span></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14pt;color:rgb(0, 0, 0);"><br/></span></h3><h2 style="text-align:left;">SMS Handling Commands</h2><div style="text-align:left;"><span style="color:rgb(54, 66, 83);font-size:24px;">AT+CMGF</span></div><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT+CMGF=1&nbsp;</span><span style="color:rgb(0, 0, 0);font-size:11pt;">Configure the SMS message format. Setting it to 1 enables text mode.</span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;"><br/></span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;">AT+CMGS</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT+CMGS=&quot;+123456789&quot;&nbsp;</span><span style="color:rgb(0, 0, 0);font-size:11pt;">send an SMS to the specified phone number. Replace &quot;+123456789&quot; with the recipient's phone number.</span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;"><br/></span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;">AT+CMGL</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT+CMGL=&quot;ALL&quot;&nbsp;&nbsp;</span><span style="color:rgb(0, 0, 0);font-size:11pt;">List all SMS messages stored on the SIM card, providing details such as sender, timestamp, and message content.</span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;"><br/></span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;">AT+CMGR</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">AT+CMGR=1&nbsp;</span><span style="color:rgb(0, 0, 0);font-size:11pt;">Read a specific SMS message by index. Replace 1 with the index of the desired message.</span></p><h3 style="text-align:justify;margin-bottom:4pt;"><br/></h3><div><h2 style="text-align:left;">Call Handling Commands</h2><h2 style="text-align:left;"><span style="font-size:24px;font-weight:normal;text-align:center;">ATD</span></h2></div><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">```ATD+123456789;``` Initiate a call to the specified phone number. Replace &quot;+123456789&quot; with the recipient's phone number.&nbsp;</span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;"><br/></span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;">ATH</span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">```ATH``` Terminate an ongoing call.&nbsp;</span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;"><br/></span></p><p style="text-align:justify;"><span style="color:rgb(54, 66, 83);font-size:24px;text-align:center;">ATA</span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">```ATA``` Answer an incoming call.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);"><br/></span></h2><h2 style="text-align:left;">Conclusion</h2><div><br/></div><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Finally we have successfully performed AT commands operations through </span><span style="font-size:11pt;font-weight:700;">NUVOTON MS51FB 8051</span><span style="font-size:11pt;"> and </span><span style="font-size:11pt;font-weight:700;">A7672S 4G GSM</span><span style="font-size:11pt;"> module, we also covered a wide range of functionalities from basic module information retrieval to advanced features like SMS handling,and call management. Further you should&nbsp; refer to the Sim7672 module documentation for more AT commands for specific details and further optimizations.</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;">If you're an IoT developer and need reliable electronic components, including the </span><span style="font-size:11pt;font-weight:700;">A7672S</span><span style="font-size:11pt;"> module, and other </span><span style="font-size:11pt;font-weight:700;">GSM</span><span style="font-size:11pt;"> modules from </span><a href="https://www.campuscomponent.com/brand-details/simcom"><span style="font-size:11pt;">SIMCOM</span></a><span style="font-size:11pt;">, consider exploring options at Campus Component. Also you can get a wide range of microcontrollers from </span><span style="font-size:11pt;font-weight:700;">Nuvoton</span><span style="font-size:11pt;">. If you are looking for Best in standard GSM modems and </span><a href="https://www.campuscomponent.com/categories/developement_board_programmers/2208614000002321147"><span style="font-size:11pt;">Microcontrollers</span></a><span style="font-size:11pt;"> and other </span><span style="font-size:11pt;font-weight:700;">electronic components</span><span style="font-size:11pt;">, reach out&nbsp;to Campus Component- </span><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">electronic component supplier</span></a><span style="font-size:11pt;">&nbsp;today!</span></span></p></div>
</div><div data-element-id="elm_rj-5qgd4RFSNxpxlHstTiQ" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_rj-5qgd4RFSNxpxlHstTiQ"].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>Wed, 20 Dec 2023 05:10:53 +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[Top 5 IoT Trends - What IoT Holds for Future]]></title><link>https://www.campuscomponent.com/blogs/post/top-5-iot-trends-what-iot-holds-for-future</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/Top 5 IoT Trends - What IoT Holds for Future.jpeg"/>In this blog, we will explore top IOT trends that are shaping the future and unlocking the potential of this technology.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_Q5Z6ZXdaTd2vMfVAvV8IMQ" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_Fe3LKmIbSG24gx0T26VdYA" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_aDzI8EPuTYuRNVLH1higNg" 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_30UUmgg9T6GXvFZ-X1W1gw" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_30UUmgg9T6GXvFZ-X1W1gw"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_mMkLw2KfQeSXS8Rk0NIL8w" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_mMkLw2KfQeSXS8Rk0NIL8w"].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;<img src="/Top%205%20IoT%20Trends%20-%20What%20IoT%20Holds%20for%20Future.jpeg"><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;">The </span><span style="font-size:11pt;font-weight:700;">Internet of Things (IoT)</span><span style="font-size:11pt;"> is rapidly changing the world around us from smart homes to self-driving cars, IOT devices are becoming increasingly common in our everyday lives. With the ability of connecting a wide range of devices and sensors to the internet, IOT has transformed industries like transportation, healthcare, defense, and many more. With increasing connectivity of devices IOT has paved the way for innovative applications and opened up new possibilities. In this blog, we will explore top IOT trends that are shaping the future and unlocking the potential of this technology.</span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="color:rgb(0, 0, 0);font-size:16px;">Let’s Look at Some of the Current IoT Trends Ahead</span></h2><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">1. IoT in Healthcare</span></h3><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">During the COVID-19 pandemic, there was a significant increase in the use of online healthcare consultations due to safety concerns. Higher-risk patients turned to virtual consultations, digital diagnostics, and remote treatment from the comfort of their homes.The healthcare field emerged as a leading sector in the Internet of Things (IoT) during the crisis, and it may be referred to as the Internet of Medical Things (IoMT) in the future.&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;">IoT-enabled applications, such as </span><span style="font-size:11pt;font-weight:700;">wearables </span><span style="font-size:11pt;">and </span><span style="font-size:11pt;font-weight:700;">connected devices</span><span style="font-size:11pt;">, can track patients' vitals throughout the day, providing valuable data-driven insights.</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);">IoT devices like wearables are preferred tools in healthcare branches such as elderly care or assisted living, as they enable constant monitoring of patients' health and safety. They also assist people with heart disease by monitoring vitals efficiently and improving their quality of life.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">IoT has greatly benefited the healthcare sector by enabling remote patient monitoring and facilitating the development of innovative solutions like wearable technology, smart hospitals, and telemedicine.</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);">The opportunities offered by IoT devices in healthcare are vast, including personalized medicine, real-time monitoring, and remote treatment. IoT devices continue to evolve and have become an integral part of our digitized world. They play a crucial role in healthcare, not only for convenience and speed but also in saving lives.</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 terms </span><span style="font-size:11pt;font-weight:700;">&quot;Internet of Healthcare Things&quot; (IoHT)</span><span style="font-size:11pt;"> or </span><span style="font-size:11pt;font-weight:700;">&quot;Internet of Medical Things&quot; (IoMT)</span><span style="font-size:11pt;"> are used to describe smart healthcare gadgets and the interconnected systems utilized in healthcare information technology.</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);">The IoMT has diverse applications across healthcare domains such as:</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;font-weight:700;">Remote Patient Monitoring</span><span style="font-size:11pt;">: Allowing patients with chronic diseases to connect with healthcare providers.</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;font-weight:700;">Telemedicine:</span><span style="font-size:11pt;"> Where doctors receive IoMT data to make informed decisions, including personalized medication prescriptions.</span></span></p></li></ul><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);">Other applications of IoMT include medication adherence, where electronic pillboxes ensure timely medication intake, and emergency response systems that automatically notify emergency rooms of alarming changes detected by wearable gadgets. IoMT also supports preventive healthcare by empowering individuals to take charge of their health and receive early alerts about potential issues.</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);">Recent developments in the IoMT, such as wearable technology, advanced hospital design, and real-time health data analytics, are revolutionizing the healthcare sector by enabling remote monitoring and enhancing patient experience.</span></p><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">2. IoT in Logistics</span></h3><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">There are several applications and rapid development of IOT in Logistics as this is the most growing field in future:</span></p><h4 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Shipment Tracking and Monitoring</span></h4><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Wireless tech Devices such as </span><a href="https://www.campuscomponent.com/categories/rfid/2208614000002321103"><span style="font-size:11pt;font-weight:700;">Radio-frequency identification (RFID)</span></a><span style="font-size:11pt;">tags, </span><span style="font-size:11pt;font-weight:700;">eSIM, GSM, GPRS and </span><a href="https://www.campuscomponent.com/categories/gps_antenna/2208614000002321069"><span style="font-size:11pt;font-weight:700;">Global positioning system (GPS)</span></a><span style="font-size:11pt;font-weight:700;">, </span><a href="https://www.campuscomponent.com/categories/sensors/2208614000002321239"><span style="font-size:11pt;font-weight:700;">sensors</span></a><span style="font-size:11pt;">- provides logistics companies the ability to track shipments' location and to monitor container temperature, relative humidity and other real-time conditions. With IoT technology with the help of AI algorithms can process this data to assist route management and improve security, which will be predicting emerging issues, such as maintenance, to prevent problems.</span></span></p><h4 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Inventory Management</span></h4><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">IoT technology is used to automate inventory management. For example, logistics companies can place RFID tags on items stored in warehouses to track the products' location and inventory levels in real time. This helps the inventory manager to efficiently keep the track of stocked items and levels.</span></p><h4 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Fleet Management</span></h4><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">IOT enabled fleet management offers real-time vehicle location, vehicle current status and speed. This way, businesses can optimize routes and scheduling, helping improve fleet performance. These solutions can help reduce fuel costs and assist in monitoring drivers' so that they can manage and utilize their time well.</span></p><h4 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Predictive Maintenance</span></h4><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The data collected from different IoT devices, like connected sensors, can help identify patterns, automatically predict the failures in equipment and schedule maintenance.</span></p><p></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">3. IoT Connectivity - 5G, Wi-Fi 6, LPWAN, and Satellites</span></h3><span style="font-size:11pt;color:rgb(0, 0, 0);"><div style="text-align:justify;"><span style="font-size:11pt;">IoT Connectivity with </span><span style="font-size:11pt;font-weight:700;">5G</span><span style="font-size:11pt;"> and </span><span style="font-size:11pt;font-weight:700;">Wireless Technologies</span><span style="font-size:11pt;"> like </span><span style="font-size:11pt;font-weight:700;">WIFI 6</span><span style="font-size:11pt;">, </span><span style="font-size:11pt;font-weight:700;">LPWAN</span><span style="font-size:11pt;"> and Satellites are Revolutionizing the IoT Networks.</span></div></span><p></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">One of the main challenges faced by IoT networks is the need for faster wireless data rates.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">The advancement of wireless technologies is crucial to enhance various aspects of IoT, including </span><span style="font-size:11pt;font-weight:700;">sensors</span><span style="font-size:11pt;">, edge computing, </span><span style="font-size:11pt;font-weight:700;">wearables</span><span style="font-size:11pt;">, and </span><span style="font-size:11pt;font-weight:700;">smart homes</span><span style="font-size:11pt;">.</span></span></p><h4 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">5G: Advanced IoT Networks</span></h4><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;font-weight:700;">5G </span><span style="font-size:11pt;">networks offer significant advantages for IoT solutions, especially in terms of speed and data processing capabilities.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">Compared to </span><span style="font-size:11pt;font-weight:700;">4G </span><span style="font-size:11pt;">LTE, 5G provides faster and more efficient connectivity, making it ideal for IoT networks.</span></span></p><h4 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Wi-Fi 6: Enhanced Indoor Connectivity</span></h4><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><a href="https://www.campuscomponent.com/search-products?q=esp32"><span style="font-size:11pt;">Wi-Fi 6</span></a><span style="font-size:11pt;"> operating in the 6 GHz band greatly improves the potential bandwidth for IoT technology, particularly in indoor settings.</span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Faster communication among devices ensures a more reliable IoT system, and Wi-Fi 6 is especially beneficial for smart home IoT networks.</span></p><h4 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">LPWAN: Low-Power Wide-Area Network</span></h4><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><a href="https://www.campuscomponent.com/products/ra-08h-wi-3289-d/2208614000038799033"><span style="font-size:11pt;">LPWAN</span></a><span style="font-size:11pt;"> is an emerging technology suitable for connecting low-bandwidth IoT devices over larger areas.</span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">With low bit rates and increased energy efficiency, LPWAN is cost-effective and ideal for machine-to-machine communication in IoT networks.</span></p><h4 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Satellite: Geographically Separated Networks</span></h4><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Satellites can power IoT technology in geographically separated networks.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Traksat, for example, utilizes Globalstar satellites to enable satellite-powered IoT devices for emergency reporting and assistance requests, providing immediate GPS information to headquarters for rescue preparations.</span></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">4. AI and IoT Technology</span></h3><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">The combined applications of Internet of Things (IoT) and </span><span style="font-size:11pt;font-weight:700;">Artificial intelligence (AI)</span><span style="font-size:11pt;"> can revolutionize commercial solutions. AI algorithms have advanced to the point where they can deliver reliable results with minimal data input. By combining IoT and AI, we can create Intelligent Machines capable of automating tasks and making autonomous decisions.</span></span></p><h4 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Benefits of Combining IoT and AI in Various Industries</span></h4><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;font-weight:700;">Automation:</span><span style="font-size:11pt;"> These technologies enable the automation of big and large tasks, freeing up human resources for more valuable work.</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;font-weight:700;">Decision-Making:</span><span style="font-size:11pt;"> Intelligent Machines powered by IoT and AI can make informed decisions without human intervention, leading to faster and more efficient processes.</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;font-weight:700;">Cost Reduction:</span><span style="font-size:11pt;"> Automating processes through IoT and AI can help reduce operating costs by optimizing resource utilization and streamlining workflows.</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;font-weight:700;">Downtime Reduction:</span><span style="font-size:11pt;"> IoT devices can collect real-time data, allowing AI algorithms to detect faults and predict maintenance needs, minimizing downtime.</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;font-weight:700;">Increased Productivity:</span><span style="font-size:11pt;"> Intelligent Machines can handle repetitive tasks with precision and speed, resulting in improved productivity for businesses.</span></span></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">5. IoT Security</span></h3><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Security is a major concern for IoT, as these devices are often connected to the internet and can be vulnerable to cyberattacks. Once the malware accesses the whole system, big malicious activity can be conducted. User’s privacy and sensitive corporate information will also be at risk. Both types of users will have to take extra precautions when it comes to having an array of connected devices that could possibly compromise their personal data.&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">In 2023, we can expect to see increased focus on IoT security, with new technologies and best practices emerging to help protect these devices. The rise in unsecured connected devices emphasizes the continuous threat they pose. Consequently, IoT security has become an evolving trend, prompting numerous businesses worldwide to develop IoT security solutions using a variety of technologies.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16px;color:rgb(0, 0, 0);">Future of IoT</span></h2><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">The Internet of Things (IoT) has seamlessly permeated various aspects of our global economy and way of life. It encompasses interconnected consumer products like appliances, security systems, and automobiles, as well as extensive manufacturing applications in agribusiness and power sectors. Projections indicate that the expenditure on IoT will continue to rise steadily, reaching an estimated </span><span style="font-size:11pt;font-weight:700;">$1.1 trillion</span><span style="font-size:11pt;"> in 2023, with sustained year-over-year growth.</span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><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:11pt;color:rgb(0, 0, 0);">In conclusion, the future of IoT is bright, with many emerging trends and applications set to transform industries and improve our daily lives.&nbsp;IoT will continue to revolutionize various sectors and create new opportunities. As we embrace these IoT trends, we must also address the associated challenges and ensure the ethical and responsible deployment of this powerful technology.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">If you are building an IoT device and looking for guidance and best in class </span><span style="font-size:11pt;font-weight:700;">microcontrollers, </span><a href="https://www.campuscomponent.com/categories/wireless_module/2208614000002321087"><span style="font-size:11pt;font-weight:700;">wireless modules</span></a><span style="font-size:11pt;font-weight:700;">, and electronic components </span><span style="font-size:11pt;">from brands like</span><span style="font-size:11pt;font-weight:700;"> SIMCOM, Allystar, Espressif, Ai-Thinker, Hope-Rf, Lora, Digi,</span><span style="font-size:11pt;"> then reach out&nbsp;to us at </span><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">Campus Component</span></a><span style="font-size:11pt;">&nbsp;today!</span></span></p><div><h2 style="margin-bottom:6pt;text-align:justify;"><span style="font-size:16px;color:rgb(0, 0, 0);">Related Blog:</span></h2><div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);">1. <a href="https://www.campuscomponent.com/blogs/post/10-wireless-technology-trends-this-year" title="10 Wireless technology trends this year" target="_blank" rel="">10 Wireless technology trends this year</a></span></div></div><div style="text-align:left;color:inherit;"><br></div></div></div>
</div><div data-element-id="elm_AdMeY6JKS0yA363ClJY9rA" 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>Tue, 08 Aug 2023 07:41:59 +0000</pubDate></item><item><title><![CDATA[IOT Technology Driving Smart Industrial Applications]]></title><link>https://www.campuscomponent.com/blogs/post/iot-technology-driving-smart-industrial-applications</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/IOT Technology Driving Smart Industrial Applications.jpeg"/>In this blog post, we will explore the role of IoT technology in powering smart industrial applications and the benefits it brings to the industrial sector.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_gpz6Ft-wTeGj7FSY9YppEA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_mEP6A1_NRx-8KeSYHzZKdw" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_VBPTxfzTSbeMF8bn9pfnrw" 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_O7XpLxkQTh6UmmFj_vILgQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_O7XpLxkQTh6UmmFj_vILgQ"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_osdF2B5cSG2QAMtbja4Efw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_osdF2B5cSG2QAMtbja4Efw"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;margin-bottom:3pt;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img src="/IOT%20Technology%20Driving%20Smart%20Industrial%20Applications.jpeg" alt="IOT Technology Driving Smart Industrial Applications"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;"><br></span></span></p><p style="text-align:justify;margin-bottom:3pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;"><br></span></span></p><p style="text-align:justify;margin-bottom:3pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">The </span><span style="font-size:11pt;font-weight:700;">Internet of Things (IoT)</span><span style="font-size:11pt;"> is greatly revolutionizing the industrial sector. By connecting physical devices and systems to the internet, IoT is enabling a new wave of smart industrial applications that are improving efficiency, productivity, and safety.</span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">By integrating IoT devices with data and automation it has been leveraging this technology to enhance operational efficiency, optimize resource utilization, and drive innovation in large manufacturing industries. In this blog post, we will explore the role of IoT technology in powering smart industrial applications and the benefits it brings to the industrial sector.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16px;font-weight:700;color:rgb(0, 0, 0);">What is Industrial IOT?</span></h2><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">The </span><span style="font-size:11pt;font-weight:700;">industrial internet of things (IIoT)</span><span style="font-size:11pt;"> refers to the utilization of intelligent sensors and actuators to virtualized manufacturing and industrial processes. Also recognized as the industrial internet or </span><span style="font-size:11pt;font-weight:700;">Industry 4.0</span><span style="font-size:11pt;">, IIoT makes use of the capabilities of intelligent machines and real-time analysis to leverage the information generated by conventional machines in industrial environments over the years. The fundamental principle driving IIoT is that intelligent machines excel at collecting and analyzing data instantaneously compared to humans but also possess good communication skills.</span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">By deploying interconnected </span><a href="https://www.campuscomponent.com/categories/sensors/2208614000002321239"><span style="font-size:11pt;font-weight:700;">sensors</span></a><span style="font-size:11pt;"> and </span><span style="font-size:11pt;font-weight:700;">actuators</span><span style="font-size:11pt;"> networks, automated industries can easily detect inefficiencies and issues, resulting in time and cost savings. In the context of manufacturing, IIoT has immense potential in areas such as quality control, sustainable and eco-friendly practices, traceability in the supply chain, and overall supply chain efficiency.</span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16px;color:rgb(0, 0, 0);">What Is IoT In Industrial Automation?</span></h2><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">IoT devices are smart devices connected to the internet which take data from connected sensors, which also communicates with other IOT devices.&nbsp;</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;font-weight:700;">Industrial IoT or IIoT</span><span style="font-size:11pt;"> refers to IoT solutions fuelling the potential of artificial intelligence, </span><span style="font-size:11pt;font-weight:700;">machine learning,</span><span style="font-size:11pt;"> and </span><span style="font-size:11pt;font-weight:700;">robotic process automation</span><span style="font-size:11pt;"> in manufacturing, supply chains, management systems, industrial security and other industrial applications.</span></span></p><p></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">IoT Technology in Industrial Automation:</span></h3><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Enhances operational efficiency</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Saves costs and improve margins</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Optimizes raw material and energy consumption</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);">Reduces time-to-market</span></p></li></ul><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">IoT platforms&nbsp;are important in taking full advantage of IoT devices. An IoT platform is cloud-based and manages vast amounts of operational data extracted from IoT sensors in real-time. This capability makes it easier to access all industrial data, run analytics, and draw useful insights for decision-making.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16px;color:rgb(0, 0, 0);">Applications of Industrial Internet Of Things</span></h2><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">1. Industrial Automation</span></h3><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Industrial automation is becoming a common norm, and IoT is the fuel which is driving that growth. By connecting devices, sensors, and machinery, IoT enables real-time monitoring and control of industrial processes. This connectivity allows industries to automate routine tasks, gather critical data, and make informed decisions based on accurate and up-to-date information. IOT helps in optimizing production lines, managing inventory, or monitoring equipment conditions, overall IoT-driven industrial automation offers increased efficiency, reduced downtime, and improved productivity.</span></p><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">2. IIOT Improves Asset Management and Maintenance</span></h3><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">IoT technology plays an important role in asset management and maintenance within industrial environments. By deploying IoT sensors on equipment, industries can monitor various parameters such as temperature, pressure, vibration, and energy consumption. This data can be analyzed in real-time to identify faults and potential failures, allowing for predictive maintenance strategies. As a result, companies can minimize unplanned downtime, extend asset lifespan, and optimize maintenance schedules, leading to substantial cost savings and improved overall operational efficiency.</span></p><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">3. Optimal Resource Utilization</span></h3><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Efficient resource utilization is important for industrial operations, and IoT helps achieve this goal. By integrating IoT devices throughout the production process, businesses can closely monitor and manage resource consumption. For example, IoT-enabled smart meters can track energy usage, which enables companies to identify areas of high consumption and implement energy-saving measures. Similarly, IoT sensors can monitor water usage, and other resources. With IoT-driven optimization, companies can achieve sustainability goals, reduce costs, and minimize their environmental impact.</span></p><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">4. IIOT Improves Supply Chain Management</span></h3><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">The integration of IoT technology in the industrial sector has revolutionized supply chain management. IoT devices, such as </span><a href="https://www.campuscomponent.com/categories/rfid/2208614000002321103"><span style="font-size:11pt;font-weight:700;">RFID tags</span></a><span style="font-size:11pt;"> and </span><span style="font-size:11pt;font-weight:700;">sensors</span><span style="font-size:11pt;">, provide real-time data from movement of goods, from raw materials to finished products. This end-to-end visibility enables industries to track inventory, monitor storage conditions, and streamline logistics operations. With accurate and real-time data, companies can optimize inventory levels, track storage quantity. IoT-driven supply chain management ensures enhanced customer satisfaction.</span></span></p><h3 style="text-align:justify;margin-bottom:10pt;"><span style="font-size:16px;color:rgb(0, 0, 0);font-weight:700;">5. Enhanced Safety and Security</span></h3><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Safety is a top priority in industrial settings, with help of IoT technology it’s possible to increase workplace safety and security. IoT devices, such as wearable sensors and connected surveillance systems, enable real-time monitoring of environmental conditions, equipment performance, and employee health. Additionally, IoT-based security systems provide continuous monitoring of premises, preventing unauthorized access and ensuring prompt response to incidents. By leveraging IoT for safety and security, industries can create a safer working environment and avoid potential risks.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16px;color:rgb(0, 0, 0);">Conclusion</span></h2><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">As IoT technology continues to develop, we can expect to see even more innovative and groundbreaking applications. For example, IoT could be used to create self-driving factories, or to monitor and manage complex supply chains and operations. As IIoT continues to evolve, it will undoubtedly shape the future of smart industrial applications, opening up new possibilities for businesses across various sectors.</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 for ways to improve the efficiency, productivity, and safety of your industrial operations, or building your Industrial IOT solution and required best in class </span><span style="font-size:11pt;font-weight:700;">IOT modules, </span><a href="https://www.campuscomponent.com/blogs/post/10-wireless-technology-trends-this-year"><span style="font-size:11pt;font-weight:700;">wireless modules</span></a><span style="font-size:11pt;font-weight:700;">, and electronic components </span><span style="font-size:11pt;">from brands like</span><span style="font-size:11pt;font-weight:700;"> SIMCOM, Allystar, Espressif, Ai-Thinker, Hope-Rf, Lora, Digi,</span><span style="font-size:11pt;"> then reach out&nbsp;to us at </span><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">Campus Component</span></a><span style="font-size:11pt;">&nbsp;today!</span></span></div><div style="text-align:justify;"><h2 style="margin-bottom:6pt;"><span style="font-size:16px;color:rgb(0, 0, 0);">Related Blogs&nbsp;</span></h2><div><div><span style="color:rgb(0, 0, 0);">1. <a href="https://www.campuscomponent.com/blogs/post/10-wireless-technology-trends-this-year" title="10 Wireless technology trends this year&nbsp;" target="_blank" rel="">10 Wireless technology trends this year&nbsp;</a></span></div></div></div><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="text-align:justify;margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="text-align:justify;margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="text-align:justify;margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="text-align:justify;margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="text-align:justify;margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="text-align:justify;margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p style="text-align:justify;margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="text-align:justify;margin-bottom:3pt;"></p><p></p><p style="margin-bottom:3pt;"></p><p></p><p></p><p style="text-align:justify;margin-bottom:3pt;"></p><p></p><p></p><p style="text-align:justify;margin-bottom:3pt;"></p></div>
</div><div data-element-id="elm_WopXLFFWQACXZvkJm6WtNQ" 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:50:46 +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></channel></rss>