<?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/electronicomponent/feed" rel="self" type="application/rss+xml"/><title>Campus - Blog #electronicomponent</title><description>Campus - Blog #electronicomponent</description><link>https://www.campuscomponent.com/blogs/tag/electronicomponent</link><lastBuildDate>Thu, 30 Apr 2026 09:29:44 -0700</lastBuildDate><generator>http://zoho.com/sites/</generator><item><title><![CDATA[LoRa Enabled GPS Tracker with ESP8266 & Nuvoton N032LE3AE]]></title><link>https://www.campuscomponent.com/blogs/post/lora-enabled-gps-tracker-with-esp8266-nuvoton-n032le3ae</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/Lora enabled Gps tracking with esp8366 and nuvoton N032LE3AE.jpg"/>Discover the Seamless GPS tracking solution powered by LoRa technology, ESP8266, and Nuvoton N032LE3AE. Achieve superior performance and efficiency for diverse applications.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_WW3ygwk6SJCee1Tw4O5W_A" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_yG17cgm_T8yLjbKP4Hmk9w" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_SMehCcUWQY2M8z2nmw_YmQ" 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_qid6bhopTEyi-gy_LWLKMA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_qid6bhopTEyi-gy_LWLKMA"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_yXAxNlzOT2KWLrTpkbtLRg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_yXAxNlzOT2KWLrTpkbtLRg"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><div><p style="text-align:justify;"><img src="/Lora%20enabled%20Gps%20tracking%20with%20esp8366%20and%20nuvoton%20N032LE3AE.jpg" style="width:1099.3101px !important;height:702px !important;max-width:100% !important;"><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);">In industrial applications like logistics and inventory management tracking applications are used on a large level. GPS Tracking is also used in cab services, vehicle monitoring, human tracking, asset management, and public transport surveillance. However, traditional vehicle tracking systems that rely on GSM technology often encounter challenges in areas with poor signal coverage, limiting their effectiveness. The introduction of ESP8266 with a LoRa-based GPS tracker is the solution to this problem, where you can track your asset from any remote location in the world. In this project article we will build a LoRa Based Low Power GPS Tracker with ESP8266 and also look at how you can integrate the same with Nuvoton N032LE3AE module.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Components Required</span></h2><ul><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><a href="https://www.campuscomponent.com/products/nln500-lora-module-wi-2588-d/2208614000017682013"><span style="font-size:11pt;font-weight:400;color:rgb(0, 0, 0);">NLN500 LoRa Module&nbsp;</span></a></p></li><li style="font-size:11pt;font-weight:700;"><p style="text-align:justify;"><span style="font-size:11pt;font-weight:400;color:rgb(0, 0, 0);">Neo 6M GPS Module</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><a href="https://www.campuscomponent.com/products/esp8266-nodemcu-wifi-development-board/2208614000001865343"><span style="font-size:11pt;color:rgb(0, 0, 0);">ESP8266 Development Board</span></a></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">LM2596 Step-down Converter.</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);">LoRa Gateway</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);">LoRa GPS Tracker Working</span></h2><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">In our previous blogs we have discussed how LoRa modules work and how they are ideal for low power wireless applications. To establish a connection between any LoRa module and The Things Network, a primary prerequisite is a LoRa gateway. </span><a href="https://www.campuscomponent.com/blogs/post/getting-started-with-lora-a-beginner-s-guide-to-building-iot-projects-with-lora-technology"><span style="font-size:11pt;">Learn more about LoRa in IOT.</span></a></span></p><p><span style="font-size:11pt;"><span style="width:547px;"><img alt="GPS Tracking Working" src="https://lh7-us.googleusercontent.com/oVHfdGeMqPkxDgT8D_BZbLXxATVy0olzR5_ScNY1FcvzO6zD0YK5fWf0Rby2dGh-HKuvwv6yKOQqg5R_vgii-hXPXKQp9YUh2se63c6l8_jHFAQF02OVKnlVAcAgRHGal5CfHCJhGM97tKJOt3BeQg" width="547" height="274" style="width:615px !important;height:308px !important;max-width:100% !important;"></span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The project has simple working: the ESP8266 serves as the primary controller. It gets/collects information from the Neo-6M GPS Module, transforming Latitude and Longitude data into a LoRa Packet. This packet is then transmitted to the HPD13A LoRa module, establishing a connection with a nearby gateway. Once linked to a LoRa gateway, the packet is forwarded to The Things Network, where the raw data can be viewed on the Things Network Dashboard. To enhance functionality, we've implemented a webhook integration, allowing the position data to be seamlessly sent to Ubidots. Leveraging this information on Ubidots enables us to create a user-friendly map interface for visualizing our location data.</span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:18px;font-weight:400;color:rgb(0, 0, 0);">ESP8266 integrated with LoRa GPS Tracker Circuit Diagram is shown below</span></h2><p><span style="font-size:11pt;"><span style="width:507px;"><img alt="GPS Tracker Circuit Diagram" src="https://lh7-us.googleusercontent.com/X5lN9lKlBNo_jya3CdUdLBzneHmrVbg5ltzmJuou7WIiVvaDnpAZl69k0-aId7ycKqLAw-5J3lyVRmhWDDw8F1Fl9cHIHM_oACvjy6KQvbugv9t5MYVXVt57Y5DdroRloOwZpTDRXWgp92TwnaYPpQ" width="507" height="498"></span></span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The connections for the Nodemcu LoRa GPS Tracker with ESP8266 are shown above in the circuit diagram. We use an LM2596 Step-Down Converter to lower the input voltage, ranging from 9-12V from a Li-Po Battery, to 4.2V. This lower voltage powers both the ESP8266 and the Neo-6M GPS Module. The LoRa module receives power from the ESP8266 at 3.3V and communicates through the SPI Pins. When uploading the code to the ESP8266, ensure the Neo-6M is disconnected since it is connected to the hardware serial pins of the ESP8266 during this process.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:16pt;font-weight:400;color:rgb(0, 0, 0);">Setting Up End Node on The Things Network</span></h2><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">To begin, sign up on The Things Network by creating either an individual or a student account, both are free. When choosing the LoRa Cluster, opt for the EU Cluster if you're not situated in North America or Australia. After successfully creating your account and completing the email verification, you'll gain access to the TTN Console, which is as shown below.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:526px;"><img alt="Things Network Dashboard" src="https://lh7-us.googleusercontent.com/Ja5pKosxBEWwNInsjlD6JfzaU0VQbCst1GUDnCK6YSDb5Ca1FaNgRKHsU1hilHQYqdZcMO2io3bQ0jPJt7In5tPAz3hDgEVSTbTtYj2qtekjpAeZzzhHd0kZgazqW9f_4ewzQUF17PBN8DXR9qNqdw" width="526" height="265"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Click -&gt; create application -&gt; Enter unique application ID -&gt; application name -&gt; create.</span></p><p><span style="font-size:11pt;"><span style="width:522px;"><img alt="Things Network Add Application" src="https://lh7-us.googleusercontent.com/Bc4RTfc21uhleFzfwh9L2CpIQvo9wNWvsU9s3Gfwoo5flBw4X4UsXh92CJv7H27CJURiZfX1Lkub-9m1lITKQRov0L8AM2Gs6lMgHF1LvXVvpur-XfW9zierVgcuAWlTARrKxFT1HljduEjaC1wxBQ" width="522" height="294"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">When your application gets created go to add an end device.</span></p><p><span style="font-size:11pt;"><span style="width:468px;"><img alt="Things Network Add End Device" src="https://lh7-us.googleusercontent.com/-gebsoQQmynQF-Jy0PhQKtk5Afwu5MjB--k1T4zJ1eAVESaZveaDN6QaHcf2y4Ain3q73qtLRA4ixCzv4Tx8AIXZKiQDswCbMDL_xJYZVIOyjF_Yt4fdAz72p65oNgP1iDuX5JGEeH6nzN1XI40wcQ" width="468" height="263"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">C</span><span style="color:rgb(0, 0, 0);font-size:11pt;">lick -&gt; Manually -&gt;&nbsp; Enter parameters -&gt; generate the DevUI, AppEUI, AppKey, -&gt; complete the end device creation.</span></p><p><span style="font-size:11pt;"><span style="width:579px;"><img alt="Things Network Register End Device" src="https://lh7-us.googleusercontent.com/R2CGYO3U2jR185mHPZo_prOeLB7rluS8L3VTE6tR6w9Hz9sciJ995GrUgZMvZtcX_PPWY3UcD__8nlVjMgw_5FAAMrkMsrUR0Z_kg2bSfehM5f5e3rZ2ja4pIZ1kMUKODYvf-JE2EdrYLGnV8-NL1w" width="579" height="326"></span></span></p><p><span style="font-size:11pt;">Switch to “Payload Formatters” once your device gets created</span></p><p><span style="font-size:11pt;"><span style="width:522px;"><img alt="Things Network Payload Formatters Tab " src="https://lh7-us.googleusercontent.com/w3MPEpASQ7ppGQC42KNLzOwWsm1fCBoqWUz60jJj6sKsxJ9dFhcnyZo3YUxcOYEdTQ5pHc0ma2KG-U2m78T4edixi5MT8RRsRKuseUyaCp8BQypbJf9OJ7NLU-Q4HMDSVgUdN7iBzozqCZDchbldlg" width="522" height="294"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Choose &quot;Custom JavaScript formatter&quot; under the Formatters Type option, and insert the provided code below:.</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">function Decoder(bytes, port) {</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;var result = &quot;&quot;;</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;var result1 = &quot;&quot;;</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;var result2 = &quot;&quot;;</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;for (var i = 0; i &lt; bytes.length; i++) {</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if(String.fromCharCode(bytes[i])=='X') {</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;break;</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;else {</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;result += (String.fromCharCode(bytes[i]));</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;}</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;var myArray = result.split(&quot;,&quot;);</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;result1=myArray[0];</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;result2=myArray[1];</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;return {</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;&quot;position&quot;: { &quot;value&quot;:1, &quot;context&quot;:{&quot;lat&quot;:result1.trim(),&quot;lng&quot;:result2.trim()}}&nbsp;</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;};</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:562px;"><img alt="Things Network Payload Formatters Code" src="https://lh7-us.googleusercontent.com/w3MPEpASQ7ppGQC42KNLzOwWsm1fCBoqWUz60jJj6sKsxJ9dFhcnyZo3YUxcOYEdTQ5pHc0ma2KG-U2m78T4edixi5MT8RRsRKuseUyaCp8BQypbJf9OJ7NLU-Q4HMDSVgUdN7iBzozqCZDchbldlg" width="562" height="316"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Now that we've set up our end device on the Things Network, let's move on to programming the ESP8266. Open the device overview and copy the DevUI, AppEUI, and AppKey. Make sure to set the LSB order for DevUI and AppEUI, and the MSB order for AppKey.</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:537px;"><img alt="Things Network Device Overview" src="https://lh7-us.googleusercontent.com/ULxiUqBzAqBA6DyqVW68qZ_WvvvYIUFJbCGzRZMSgtX_Q-ymeUH3ayTqopzkKHlFcouN-lYaCbD-JKsCjXd27ad8UfcOXaD55Agv94Ws4Zq4hQdoUXovodfq-baMWXr1j2M6ytlsYn-knK3LabVwwA" width="537" height="302"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Open the ESP8266 code (given at the end of the blog) in&nbsp; Arduino IDE and paste those IDs in their respective fields in the code.</span></p><p><span style="font-size:11pt;"><span style="width:580px;"><img alt="Arduino IDE" src="https://lh7-us.googleusercontent.com/R9iIr8huZlUF5WXXrh4a2UCf9CnPlRdsSShmY1ZiXatdfn3t_8n3620WaPe32zdHHtVP8cY3xrg8OajnznUXz3XvhtUpts1pj6FohxPyQpm3fs5mvlTrGMg1CEnxR-sHAOqLJgdNMsjJ_UAngw25RA" width="580" height="311"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">After uploading the ESP8266 code, your device will begin transmitting LoRa data to The Things Network, and you can track this activity in the &quot;Live Data&quot; tab.</span></p><p><span style="font-size:11pt;"><span style="width:619px;"><img alt="Things Network Live Data" src="https://lh7-us.googleusercontent.com/zzu80fF22s1E9l5Ytw-cZoqhVv_o3t73_SXbL2XxQsmEzBF7Qk-xR7Pir_9Q7Kj3wwv4jC06a3qn_k8Nn8ecJN_n5U4hEi_zyct3YIai5sP0v_FQZIcwzTvdkLj3apPnfa-_9K6V8xHUVejG5je82Q" width="619" height="294"></span></span></p><h2 style="text-align:left;margin-bottom:6pt;"><span style="font-size:18px;font-weight:400;"><br></span></h2><h2 style="text-align:left;margin-bottom:6pt;"><span style="font-size:18px;font-weight:400;color:rgb(0, 0, 0);">Ubidots Connection Setup For Data Visualization</span></h2><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Now that our data is reaching TTN, let's integrate a Ubidots Dashboard. Since our data includes Latitude and Longitude Coordinates, we can use Ubidots' Maps Widget. To begin, create a Ubidots STEM account and open your dashboard.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Select -&gt; Devices Menu -&gt; Select&nbsp;Plugins.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:596px;"><img alt="Ubidots Dashboard" src="https://lh7-us.googleusercontent.com/qwXXO3cllkk-kvcdbdxZVyObPXJHAhsgQ8-g5m073fDB4xvT2KV8evbwLtS6brCvicItyUssHMNMiv4VCX725QvSKR-RViaBeYDFnSeHXnXxQ5cS4wBvuvEvY_oOSQ3SRlpdEYVlFtr8SuhWuqPBvg" width="596" height="269"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Search and select -&gt; “The Things Stack” option</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:561px;"><img alt="Ubidots Plugins" src="https://lh7-us.googleusercontent.com/x6p9u7f48A7SVtsVbmYRK8o4zC66yMm4mJzI9QjQCGW7Z-X2er-3zdCu2HBf8W0i88oizPizPbfOUnEZ2NNyh-u2R9WkcEUyOXix6gbeUscRmV0_5H257F4zvx6vDXz3Z08BOcSFTWEcf3or2d_lug" width="561" height="272"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Leave the rest of settings to default and select the Ubidots Token as Default Token</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:564px;"><img alt="Ubidots Token" src="https://lh7-us.googleusercontent.com/1p6lnL5kAR7O5Fx_e2WWzP4a0NHOB1PEhUkDZNCSN9_COGO1DOQbNSAJ1HYurHM94UjyR_S11keC0JH3CFWRSHfEUxSlR8ENf1bj6SRiIsORIULowna3VX8FWAPj7GgDCEw1Sy45wgS51n6SkNRcSw" width="564" height="272"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Add the name and description of the plug-in -&gt; Click on Create.</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:631px;"><img alt="Ubidots Name and Description" src="https://lh7-us.googleusercontent.com/jq4aUYE0sV3bJAxCW9Wp99YiwHB5vjEEh8Y8oETRcILV6WX83VDoptbRRz8mRhnobnvO3HeIBnMl_xZoyfIG4Q9SWStDWgEgLM51v0ZysKo9ezR2SJD1Rd292XlJFwTKIZX7QcxZNd2NB6icYp5dHQ" width="631" height="292"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Your plugin is now active next click on the &quot;Edit Plugin&quot; option.</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:559px;"><img alt="Ubidots Plugin Edit" src="https://lh7-us.googleusercontent.com/bk4ITbXQxQvZZJXT5ITMGodi2Id4yzlG_WS8Lexz9WJ3vRggZROhYoUqO9whBLQRheV_J6OD2ft0zIUrhlqcEGTiDnRlG8VGx2G5QEEo5AD5Fbeb2VTMkBbE4VSaxYxN7N0QZXm8D-G3Mg4XEsj2bw" width="559" height="261"></span></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);">In the decoder settings, find the HTTPs Endpoint URL. This URL is where we'll set up the TTN Server to send data packets. Copy the Plugin ID, which is the part of the URL that comes after the /api/webhook/ section.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:624px;"><img alt="Ubidots Decoder Settings" src="https://lh7-us.googleusercontent.com/AvLtzMkD-26bGLiwN3P_ZNl889cXT83gTMoFpOTMGnz5rsPQ8xTiJuTyPFqkvyaJ7iDzFZpCnboZhVfVV9u5b42aTcXgaF6HaC8d_ZdPhdMQzIMGNf2JQW4GBTZQhpAMdapEnyB4zpxJiRjwIw8rNw" width="624" height="286"></span></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);">After completing the previous steps, scroll down to the Decoder Function panel and uncomment the following line of code.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//var decoded_payload = args['uplink_message']['decoded_payload'];</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//Also, comment on the following two lines.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//let bytes =&nbsp; Buffer.from(args['uplink_message']['frm_payload'], 'base64');</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//var decoded_payload = decodeUplink(bytes)['data'];</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="color:inherit;"><br></span></p><p><span style="font-size:11pt;"><span style="width:665px;"><img alt="Ubidots Decoding Function" src="https://lh7-us.googleusercontent.com/CmV3VpgAJu_zzqtSQZOgz-veUgj3mcyfOGMymdzoryLRQmF3fa_XckMCba2xdQ450M0K30btBBPUpY2xR2n3XxGJtGvbhYDVJB8ND8S5eYcBrXN_xwfWWSX35VOLG1qpZ6nUAwacbfWlNUuUpn-isg" width="665" height="138"></span></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);">Select the &quot;Save &amp; Make Live&quot; button. Our integration is now set up on the Ubidots side. Before going to TTN, navigate to the API credentials option in your profile menu and copy the default token this will be useful later on.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:639px;"><img alt="Ubidots API credentials" src="https://lh7-us.googleusercontent.com/TfdHMV4uzIxULz_GAjer83Zz8H9l4UDgb7N1qoqJphDyNAAtH84FfYrGWsnau8Z8M08bq6YzKXZ8RZXcwsAIyNmZLY7MsFVSfEBxTRXK0ISeTLSuVL7hIdvYTE41N9ID4_EksWmyfQNaE967rVrZLQ" width="639" height="305"></span></span></p><p><span style="font-size:11pt;">Open TTN Application -&gt; Integrations panel -&gt; Webhooks -&gt; Add Webhook&nbsp;button.</span></p><p><span style="font-size:11pt;"><span style="width:649px;"><img alt="Things Network Webhooks" src="https://lh7-us.googleusercontent.com/X0OG5DICGI9YFcgi04mNh_9vRS0uYUXpxO4p3Qvd3Wr82Kxwc5PEE0EPucCkQVAxy1vMVHaOsmkkLLO5Sfi7q9ugkquKQTCMC1Ej9QTDL-dWCyzEhkok304S6K2JZr37WVTtEcujjAaoPIr87u3nRg" width="649" height="303"></span></span></p><p><span style="font-size:11pt;">Select the Ubidots plugin from the given options.</span></p><p><span style="font-size:11pt;"><span style="width:593px;"><img alt="Things Network Ubidots plugin" src="https://lh7-us.googleusercontent.com/Lt0vOHh7Ws-tR55IOP8E4KhpYgeBfiGvuTMkXsH-A_ZYRnJslVjYSc8NH8IZ8D24gn1Qm03hc0owQHoyFMACYuV_BJ71NBhb6hrH5A1pjSpYftxgl-u--DvmRXH9gT74VpB6K4o0vUliNiX7mljsOA" width="593" height="291"></span></span></p><p><span style="font-size:11pt;">Further enter your Plugin ID and your Ubidots Token.</span></p><p><span style="font-size:11pt;"><span style="width:600px;"><img alt="Things Network Setup Webhooks for Ubidots " src="https://lh7-us.googleusercontent.com/OFZQKmdk15SFHq16fRouHcUNgvsQVToOwKjQLPJ4igPWx5eSuS42N72Vzqq8sEavxWtzbsiL4TNrqyW3kOeahRD6JCb52bDwU7y_hN3qPE0hHTqV-gKexwt09w66X3fq4XL7qXZsunRv84uN-csPoQ" width="600" height="283"></span></span></p><p><span style="font-size:11pt;">And that’s it your integration webhook is successfully created</span></p><p><span style="font-size:11pt;"><span style="width:578px;"><img alt="Things Network Webhooks Integration" src="https://lh7-us.googleusercontent.com/0ZRD7xccABDlhFUevmGkXG3m0Ga_lRkF_YqI_5OAaWU3RdpEZVI4WLM11MULkpnNicGeEzzOcqZLts6gU_1PoI0gVnGGgo0xUh2CXMgpRsU9b0PkdOXCn0W6T8NmNrW4jucmEObkxRzyIQIbikN4Qg" width="578" height="278"></span></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);">After completing this integration, our LoRa device will transmit data to our TTN Server. Open your Ubidots dashboard, and on the Devices page, your device will be seen here.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:590px;"><img alt="Ubidots Server" src="https://lh7-us.googleusercontent.com/53vKVx4pfe0MYBAIXmVpEFJA8qz7LzI74kokNxK4K0MM878sKu-_ZBGlSzPI2kJxCT9KPDaqsR1FWtRM-QQgkXLCmxz3cSynEsJi7Kw1teo8okojGBxP_J53kL6sZ7h1lXY3OydoixdrniPlmAx7ZQ" width="590" height="280"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Final step is to add a Map Widget to your dashboard. Select -&gt; Data&nbsp;Tab -&gt; Dashboards -&gt; Create Widget&nbsp;Button.</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:537px;"><img alt="Ubidots Map Widget" src="https://lh7-us.googleusercontent.com/gyJLEIOR3QK0e7w-b928ug-_PVfNmpiOExPdCnCflOeZ139Y7F0GblyHhOGywKKyMv0kZ9GCN2BduRb5nKCtjdj64FSZmeGBcY_bbmOk43mz6QeBoC6msyrhQbqVtBT1d__iVAKEmMRMdfwiJuTQkQ" width="537" height="256"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Add new Widget -&gt; Map</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:415px;"><img alt="Ubidots Add Widget" src="https://lh7-us.googleusercontent.com/vqGlg3VUabSEAZmKBpzN8ZbS-rnML0GMvDLYJfVUNDbKsKjfrPJsD-zC4Iirngu_S4JU-s9zf2AqGh-n58BpYEcDJWNG1_cT0n5pwD7-fQC5qrmKE_KVuBnoPjXIFuKdaiYggs47t5Nmz-7EzRhO9g" width="415" height="427"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Select Add Marker Group.</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:346px;"><img alt="Ubidots Add Marker Group" src="https://lh7-us.googleusercontent.com/_1YFZD3pkY-j-oWgkAQ3xZZZ3ULlmCRMm76z1SzcpDoIHtJQNfWVr55hENUvRVVaOnxOzsU6MFew080W3MNhvfHevFOMT4uzNsvhmAhWjG1ZaWcHq-wXy54U8cMNV1T9Oakd3XuMhsGJU-lKQDLA8g" width="346" height="357"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Select your LoRa Device.</span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:549px;"><img alt="Ubidots LoRa Devices" src="https://lh7-us.googleusercontent.com/eB3X2u9tDhJQ2mpqIHqq_68ZYq_zWLN1B4dJ8fGcmyx68JazYrdwHsj_oeSs2FxWZOl_ZvW6e-0P6dW9VHxcMJNSQUBgPtYY-qrhE3UkzwhnkJIgEhyRrQpBr6oyZdORAnK7M7NHkdTh8FjfIZ8OkQ" width="549" height="336"></span></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:left;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Customize the Map Trace settings as per your preferences and then click on the Save button.Top of Form</span></p><p><span style="color:inherit;"><br></span></p><p><span style="font-size:11pt;"><span style="width:652px;"><img alt="Ubidots Map Trace settings" src="https://lh7-us.googleusercontent.com/Gm-Ud4LyIKj5LSXU4shu48Lha7K2_8KVms04m6KdMDZLm6XzdkGDWo7hk0yIEj6zT34RIp25V9l5nLJKdJzFho-oWPE3LdPZUytlaebNKaFfxu3Lyd4W3FMp5qw1RRXsl6InCnt1IuusK4OiqhQLyA" width="652" height="387"></span></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);">That's all! Now, all the location and tracking data from the LoRa device will appear on the map widget as location markers. You can also edit your dashboard by adding other widgets like tables to display appropriate coordinate values.</span></p><p style="text-align:justify;"><span style="color:inherit;"><br></span></p><p><span style="font-size:11pt;"><span style="width:659px;"><img alt="Ubidots GPS Tracking" src="https://lh7-us.googleusercontent.com/_oIQ29YF-I2b9Xfh46yMMTBd__vljAVOmPTpA63xFRZmvzCnISMlZiDiNDPCITZcoZod2UEi16MCryPkoerb1EVq1xX698Av4KXt6L-HUK9qhMDcWMN_fxqlx_Hm-MHb-oTCzyWOfHdO0MsdtF8hQA" width="659" height="321"></span></span></p><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:18px;font-weight:400;color:rgb(0, 0, 0);"><br></span></h2><h2 style="text-align:justify;margin-bottom:6pt;"><span style="font-size:18px;font-weight:400;color:rgb(0, 0, 0);">Working Of Our LoRA Based Low power GPS Tracker with ESP8266</span></h2><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">The image below depicts the physical setup and shows how the latitude and longitude values are updated on Ubidots. The range of our LoRa GPS tracker relies on the availability of LoRa Gateways available in the area. As long as a gateway is within reach of your LoRa module, you'll be able to successfully send data to Ubidots.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p><span style="font-size:11pt;"><span style="width:470px;"><img alt="GPS Tracker Demo" src="https://lh7-us.googleusercontent.com/9FWEwhh0gqeQV1xytS2XgbZ6NAYf3NJckk36DhlZbtNzri3Dwo41SnP_Eo3KTw1Saa5bcF0Hooaqturwg4G46GSTmitljPpor0cf6PJTeR45gRm9e7EBt_f2JPqunvuI71VXXFA9TMhZzFzm5d-XSQ" width="470" height="265"></span></span></p><h3 style="text-align:justify;margin-bottom:4pt;"><span style="font-size:14pt;color:rgb(0, 0, 0);">ESP8266 Code</span></h3><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;lmic.h&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;hal/hal.h&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;SPI.h&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#include &lt;TinyGPSPlus.h&gt;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">TinyGPSPlus gps; String ProcData=&quot;Hello,World&quot;;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#ifdef COMPILE_REGRESSION_TEST</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"># define FILLMEIN 0</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#else</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"># warning &quot;You must replace the values marked FILLMEIN with real values from the TTN control panel!&quot;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);"># define FILLMEIN (#dont edit this, edit the lines that use FILLMEIN)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#endif</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// This EUI must be in little-endian format, so least-significant-byte</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// first. When copying an EUI from ttnctl output, this means to reverse // the bytes. For TTN issued EUIs the last bytes should be 0xD5, 0xB3,</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// 0x70. static const u1_t PROGMEM APPEUI[8]= {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; void os_getArtEui (u1_t* buf) { memcpy_P(buf, APPEUI, 8);}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// This should also be in little endian format, see above.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">static const u1_t PROGMEM DEVEUI[8]= {0x36, 0x52, 0x05, 0xD0, 0x7E, 0xD5, 0xB3, 0x70};</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void os_getDevEui (u1_t* buf) { memcpy_P(buf, DEVEUI, 8);}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// This key should be in big endian format (or, since it is not really a</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// number but a block of memory, endianness does not really apply). In</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// practice, a key taken from ttnctl can be copied as-is.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">static const u1_t PROGMEM APPKEY[16] = {0x97, 0x7B, 0x4B, 0xA3, 0x9A, 0x8D, 0x33, 0x5E, 0x42, 0x13, 0x9C, 0x6B, 0xE9, 0xF9, 0x5E, 0xE1};</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void os_getDevKey (u1_t* buf) { memcpy_P(buf, APPKEY, 16);}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">uint8_t mydata[25] ;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">static osjob_t sendjob;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Schedule TX every this many seconds (might become longer due to duty</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// cycle limitations). const unsigned TX_INTERVAL = 2;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Pin mapping</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">const lmic_pinmap lmic_pins = {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.nss = 15,</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.rxtx = LMIC_UNUSED_PIN,</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.rst = 16,</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;.dio = {5, 4, LMIC_UNUSED_PIN},</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 printHex2(unsigned v) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;v &amp;= 0xff;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;if (v &lt; 16)</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; Serial1.print('0');</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial1.print(v, HEX);</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 onEvent (ev_t ev) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial1.print(os_getTime());</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;Serial1.print(&quot;: &quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;switch(ev) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; case EV_SCAN_TIMEOUT:&nbsp; &nbsp; &nbsp;Serial1.println(F(&quot;EV_SCAN_TIMEOUT&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; case EV_BEACON_FOUND: Serial1.println(F(&quot;EV_BEACON_FOUND&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; case EV_BEACON_MISSED: Serial1.println(F(&quot;EV_BEACON_MISSED&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; case EV_BEACON_TRACKED: Serial1.println(F(&quot;EV_BEACON_TRACKED&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; case EV_JOINING: Serial1.println(F(&quot;EV_JOINING&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; case EV_JOINED: Serial1.println(F(&quot;EV_JOINED&quot;)); {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;u4_t netid = 0; devaddr_t devaddr = 0;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;u1_t nwkKey[16];</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;u1_t artKey[16];</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;LMIC_getSessionKeys(&amp;netid, &amp;devaddr, nwkKey, artKey);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;Serial1.print(&quot;netid: &quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;Serial1.println(netid, DEC);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;Serial1.print(&quot;devaddr: &quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;Serial1.println(devaddr, HEX);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;Serial1.print(&quot;AppSKey: &quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;for (size_t i=&quot;0;&quot; i&lt;sizeof(artKey); ++i) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp; if (i != 0) Serial1.print(&quot;-&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp; printHex2(artKey[i]);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;}</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; Serial1.println(&quot;&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; Serial1.print(&quot;NwkSKey: &quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; for (size_t i=&quot;0;&quot; i&lt;sizeof(nwkKey); ++i) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;if (i != 0) Serial1.print(&quot;-&quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp; &nbsp;printHex2(nwkKey[i]);</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; Serial1.println(); }</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Disable link check validation (automatically enabled</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// during join, but because slow data rates change max TX</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// size, we don't use it in this example. LMIC_setLinkCheckMode(0); break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">/* || This event is defined but not used in the code. No || point in wasting codespace on it. || || case EV_RFU1: || Serial1.println(F(&quot;EV_RFU1&quot;)); || break; */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">case EV_JOIN_FAILED: Serial1.println(F(&quot;EV_JOIN_FAILED&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">case EV_REJOIN_FAILED: Serial1.println(F(&quot;EV_REJOIN_FAILED&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">case EV_TXCOMPLETE: Serial1.println(F(&quot;EV_TXCOMPLETE (includes waiting for RX windows)&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">if (LMIC.txrxFlags &amp; TXRX_ACK) Serial1.println(F(&quot;Received ack&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">if (LMIC.dataLen) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Serial1.print(F(&quot;Received &quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Serial1.print(LMIC.dataLen); Serial1.println(F(&quot; bytes of payload&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);">// Schedule next transmission</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">os_setTimedCallback(&amp;sendjob, os_getTime()+sec2osticks(TX_INTERVAL), do_send);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">case EV_LOST_TSYNC: Serial1.println(F(&quot;EV_LOST_TSYNC&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">case EV_RESET: Serial1.println(F(&quot;EV_RESET&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">case EV_RXCOMPLETE: // data received in ping slot Serial1.println(F(&quot;EV_RXCOMPLETE&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">case EV_LINK_DEAD: Serial1.println(F(&quot;EV_LINK_DEAD&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">case EV_LINK_ALIVE: Serial1.println(F(&quot;EV_LINK_ALIVE&quot;)); break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">/* || This event is defined but not used in the code. No || point in wasting codespace on it. || || case EV_SCAN_FOUND: || Serial1.println(F(&quot;EV_SCAN_FOUND&quot;)); || break; */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">case EV_TXSTART: Serial1.println(F(&quot;EV_TXSTART&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">case EV_TXCANCELED: Serial1.println(F(&quot;EV_TXCANCELED&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">case EV_RXSTART: /* do not print anything -- it wrecks timing */</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">case EV_JOIN_TXCOMPLETE: Serial1.println(F(&quot;EV_JOIN_TXCOMPLETE: no JoinAccept&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">break;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">default: Serial1.print(F(&quot;Unknown event: &quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Serial1.println((unsigned) ev);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">break;</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);">void do_send(osjob_t* j){</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Check if there is not a current TX/RX job running</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">if (LMIC.opmode &amp; OP_TXRXPEND) {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Serial1.println(F(&quot;OP_TXRXPEND, not sending&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);">else {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Prepare upstream data transmission at the next possible</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">time. unsigned long start = millis();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">do {</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">while (Serial.available())</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">gps.encode(Serial.read());</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);">while (millis() - start &lt; 1000);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">float flat=&quot;gps.location.lat();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">float flon=&quot;gps.location.ln&quot;g();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">char charLat[20];</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">char charLong[20];</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Serial1.print(&quot;Cords: &quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Serial1.print(flat); Serial1.print(&quot; , &quot;);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Serial1.println(flon);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">dtostrf(flat, 10, 7, charLat);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">dtostrf(flon, 10, 7, charLong);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">sprintf((char *)mydata, &quot;%s,%sX&quot;, charLat,charLong);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">LMIC_setTxData2(1, mydata,25, 0);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Serial1.println(F(&quot;Packet queued&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//int x=&quot;ProcData.len&quot;gth();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//ProcData.toCharArray((char *)mydata,sizeof(mydata));</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);">// Next TX is scheduled after TX_COMPLETE event.</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);">Serial1.begin(9600);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Serial1.println(F(&quot;Starting&quot;));</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Serial.begin(9600);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// LMIC init os_init();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Reset the MAC state. Session and pending data transfers will be discarded. LMIC_reset(); LMIC_setClockError(MAX_CLOCK_ERROR * 1 / 100);</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">// Start job (sending automatically starts OTAA too) do_send(&amp;sendjob);}</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);">os_runloop_once();</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}</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);">Thus we have implemented a LoRa based low power GPS tracker with ESP8266, you can track any of your device location using this setup in your project. The same process as above will be followed if you are building a GPS tracker using Nuvoton N032LE3AE. The LoRa-based Low Power GPS Tracker with ESP8266 gives multiple options and ways to enhance your IoT devices. Offering extended battery life, precise location tracking, real-time monitoring, cost-effectiveness, and versatile connectivity.</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:11pt;">If you are looking for LoRa Module and </span><a href="https://www.campuscomponent.com/categories/gps/2208614000002321093"><span style="font-size:11pt;">GPS module</span></a><span style="font-size:11pt;"> from brands such as Smatech and Hoperf or microcontrollers from brands like </span><a href="https://www.campuscomponent.com/brand-details/nuvoton"><span style="font-size:11pt;">Nuvoton</span></a><span style="font-size:11pt;"> and Espressif reach out&nbsp;to Campus Component&nbsp;an </span><a href="https://www.campuscomponent.com/"><span style="font-size:11pt;">electronic components distributor</span></a><span style="font-size:11pt;"> today!</span></span></p></div></div>
</div><div data-element-id="elm_HA0N2fXSS_GRASFskizJEQ" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_HA0N2fXSS_GRASFskizJEQ"].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/" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Thu, 21 Mar 2024 06:30:05 +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[BLDC Motors: Working, Features, Components, & Applications]]></title><link>https://www.campuscomponent.com/blogs/post/working-principle-of-bldc-motor</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/Working Principle of BLDC Motor.jpeg"/>In this blog we will learn about Brushless Motors also known as Brushless DC Motors or BLDC Motors.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_LFhbVwT-TX6ZOB4w485tjg" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_YoagJ8y1QQeu7kkABdKV1g" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_YjqIJnJBTgmCG21KyRHN6Q" 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_vnojaUGiQlmeGsCSKf4uzg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_vnojaUGiQlmeGsCSKf4uzg"].zpelem-text{ border-radius:1px; } @media (max-width: 767px) { [data-element-id="elm_vnojaUGiQlmeGsCSKf4uzg"].zpelem-text{ border-radius:1px; } } @media all and (min-width: 768px) and (max-width:991px){ [data-element-id="elm_vnojaUGiQlmeGsCSKf4uzg"].zpelem-text{ border-radius:1px; } } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;margin-bottom:10pt;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &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="/Working%20Principle%20of%20BLDC%20Motor.jpeg" style="width:459px !important;height:459px !important;max-width:100% !important;" alt="Working Principle of BLDC Motor"><span style="font-size:12pt;"><br/></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">Hello readers, in this blog we will learn about Brushless Motors also known as Brushless DC Motors or BLDC Motors</span><span style="font-size:12pt;">. In this blog, we will discuss the </span><span style="font-size:12pt;font-weight:700;">working principle of BLDC motors.</span></span></p><h2 style="text-align:left;">What are BLDC Motors?</h2><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;font-weight:700;">Brushless DC motors (BLDC)</span><span style="font-size:12pt;"><span style="font-size:16px;">are widely used</span> in various applications such as robotics, electric vehicles, drones, and industrial automation systems. Unlike conventional DC motors, BLDC motors do not have brushes, which makes them more reliable and efficient. </span><span style="font-size:12pt;font-weight:700;">Brushless DC motors are also known</span><span style="font-size:12pt;"> as electronically commutated motors (ECMs, EC motors).&nbsp;</span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;font-weight:700;">BLDC motor</span><span style="font-size:12pt;"> is a permanent magnet synchronous electric motor&nbsp;which is driven by direct current (DC) electricity and it accomplishes electronically controlled commutation system (commutation is the process of producing rotational torque in the motor by changing phase currents through it at appropriate times) instead of a mechanically commutation system. BLDC motors are also referred to as trapezoidal permanent magnet motors.</span></span></p><div><div style="color:inherit;"><div style="text-align:left;"><br/></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><h2>Key Features of BLDC Motors</h2></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><h3>Brushless Operation</h3></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;">Unlike traditional motors, brushless motors use electronic communication, which eliminates friction, wear, and tear, making the motor reliable.</span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><h3>High Efficiency</h3></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;">BLDC motors produce rotational torque by changing phase currents through them at regular intervals, which eliminates the friction, wear, and tear of brushes like normal motors, making it highly efficient to use.</span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><h3>Lightweight Design</h3></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;">Absence of components like carbon brushes and a mechanical commutator inside the BLDC motors makes it significantly lighter than traditional brushed motors.&nbsp;</span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><h3>Long Lifespan</h3></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;">Electronic commutator allows low to no wear and tear of mechanical parts inside the BLDC motors. Also, brushless motors allow better heat dissipation due to winding placement on the stationary part. Both these features ensure a long operational life for the BLDC motors.&nbsp;</span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><h3>Precise Speed Control</h3></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;">Electronically commutated controller determines the exact time and sequence for switching current in motor windings; this precise timing enables accurate control of motor speed and torque.</span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;">BLDC motors often use Hall effect sensors or optical encoders to detect the exact position of the rotor, which allows the controller to adjust commutation and maintain the desired speed under varying loads.</span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><h3>Lower Noise &amp; Vibration</h3></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;">Absence of brushes and mechanical commutator eliminates the fraction, resulting in lower noise. Precise and smoother current switching by the electronic commutator minimizes ripple and vibration.</span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><h3>Low Maintenance</h3></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;"><br/></span></div><div style="text-align:left;"><span style="color:rgb(0, 0, 0);font-size:16px;">Less mechanical wear and tear due to fewer moving parts, brushless operations make BLDC motors ideal for long-term usage, reducing maintenance costs.&nbsp;</span></div><div style="color:inherit;"><br/></div></div></div><h2 style="text-align:left;">BLDC Motor Components and Construction</h2><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;A BLDC motor has three main components: the stator, the rotor, and the Hall effect Sensor.</span></p><p style="margin-bottom:10pt;"><span style="font-size:12pt;"><span style="width:484px;"><img src="/Tue%20May%2002%202023-16.png" width="484" height="357" alt="Working Principle of BLDC Motor"></span></span></p><h3 style="text-align:left;">Stator</h3><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">The stator is the stationary part of the motor that contains the windings. These windings are made up of insulated copper wire and are arranged in a specific pattern. The stator provides a magnetic field that interacts with the rotor to produce torque.</span></span></p><h3 style="text-align:left;">Rotor</h3><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">The rotor is the rotating part of the motor that contains permanent magnets. The magnets are arranged in a specific pattern, opposite to that of the stator. The interaction between the magnetic fields of the stator and the rotor produces rotational movement.</span></span></p><h3 style="text-align:left;">Hall Effect Sensor or Electronic Controller</h3><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">The Hall effect Sensor is the brain of the motor. It is responsible for controlling the flow of current to the motor windings. The controller also senses the position of the rotor and adjusts the current accordingly to ensure smooth and efficient operation.</span></span></p><h2 style="text-align:left;">Working Principle of BLDC Motor</h2><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">The working principle of BLDC motors is based on the interaction between the magnetic fields of the stator and the rotor. The stator produces a rotating magnetic field, which interacts with the permanent magnets on the rotor, producing a torque that causes the rotor to rotate.</span></span></p><p style="margin-bottom:10pt;"><span style="font-size:12pt;"><span style="width:391px;"><img alt="Working Principle of BLDC Motor" src="/Tue%20May%2002%202023-17.png" width="391" height="399"></span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">The Hall Effect Sensor plays a crucial role in the operation of the motor. It controls the flow of current to the motor windings based on the position of the rotor. The controller senses the position of the rotor using sensors or Hall effect devices mounted on the stator. These sensors detect the position of the magnets on the rotor and send signals to the controller.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Based on the signals from the sensors, the controller adjusts the flow of current to the motor windings to ensure that the magnetic fields of the stator and rotor are properly aligned. This ensures that the motor operates efficiently and smoothly, without any loss of power or vibration.</span></p><h2 style="text-align:left;">Advantages of BLDC Motors</h2><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">BLDC motors offer several advantages over conventional DC motors. Some of the advantages are:</span></span></p><h3 style="text-align:left;">Higher Efficiency</h3><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">BLDC motors are more efficient than conventional DC motors due to the absence of brushes. This results in less friction and lower power loss.</span></span></p><h3 style="text-align:left;">Higher Power Density</h3><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">BLDC motors have a higher power density compared to conventional DC motors. This means that they can produce more power in a smaller size.</span></span></p><h3 style="text-align:left;">Longer Lifespan</h3><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">The absence of brushes in BLDC motors results in less wear and tear, making them more reliable and durable.</span></span></p><h3 style="text-align:left;">Low Maintenance</h3><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">BLDC motors require less maintenance compared to conventional DC motors. This results in lower maintenance costs and longer service life.</span></span></p><h2 style="text-align:left;">Applications of Brushless DC Motor</h2><p style="text-align:justify;margin-bottom:14pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Brushless DC motors (BLDC) use for a wide variety of application requirements such as&nbsp;</span></p><ul><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Computer hard drives and DVD/CD players</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Electric vehicles, hybrid vehicles, and electric bicycles</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Industrial robots, CNC machine tools, and simple belt driven systems</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Washing machines, compressors and dryers</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;margin-bottom:14pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Fans, pumps and blowers.</span></p></li></ul><h2 style="text-align:left;">Conclusion</h2><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">BLDC motors are becoming increasingly popular due to their efficiency, reliability, and low maintenance requirements. The working principle of BLDC motors is based on the interaction between the magnetic fields of the stator and the rotor, which is controlled by the electronic controller. With their numerous advantages, BLDC motors are expected to play an increasingly important role in various applications in the future.</span></p><p style="text-align:justify;margin-bottom:9pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">If you are looking for Best in standard motors and other electronic components, reach out&nbsp;</span><a href="https://www.campuscomponent.com/"><span style="font-size:12pt;">Campus Component</span></a><span style="font-size:12pt;">&nbsp;today!</span></span></p><h2 style="text-align:left;">BLDC Motors- FAQs</h2><div><div><div style="text-align:left;"><h3>What are the Types of BLDC Motors?</h3></div><div style="text-align:left;"><span style="font-size:16px;color:rgb(11, 28, 45);">Based on rotor and stator configurations and control methods, BLDC motors can be classified as Inner Rotor BLDC Motors and Outer Rotor BLDC Motors.</span></div><div style="text-align:left;"><span style="font-size:16px;color:rgb(11, 28, 45);"><br/></span></div><div style="text-align:left;"><span style="font-size:16px;color:rgb(11, 28, 45);"><h3>Can a BLDC Motor Run on AC?</h3></span></div><div style="text-align:left;"><span style="font-size:16px;color:rgb(11, 28, 45);">No, Brushless DC motors can not be run directly on AC power; however, they can be operated indirectly with AC current with the use of a proper electronic controller or inverter.</span></div><div style="text-align:left;"><span style="color:rgb(11, 28, 45);"><br/></span></div><div style="text-align:left;"><h3>Is the BLDC Motor Synchronous or Asynchronous?</h3></div><div style="text-align:left;"><span style="font-size:16px;color:rgb(11, 28, 45);">BLDC motor is synchronous, where the rotor’s magnetic field rotates at the same speed as the stator’s rotating magnetic field.</span></div><div style="text-align:left;"><span style="font-size:16px;color:rgb(11, 28, 45);"><br/></span></div><div style="text-align:left;"><span style="font-size:16px;color:rgb(11, 28, 45);"><h3>Why are BLDC Motors More Efficient than Traditional Motors?</h3></span></div><div style="text-align:left;"><span style="font-size:16px;color:rgb(11, 28, 45);">Brushless operation, electronic commutation, better heat dissipation, and precise control of current make BLDC motors more efficient than traditional motors.</span></div></div></div></div>
</div><div data-element-id="elm_X5j-OyTkReCS9jNZZR5OuQ" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_X5j-OyTkReCS9jNZZR5OuQ"].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/shop-now" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Tue, 02 May 2023 09:58:42 +0000</pubDate></item><item><title><![CDATA[Arduino UNO Library for Proteus and other software]]></title><link>https://www.campuscomponent.com/blogs/post/arduino-uno-library-for-proteus-and-other-software</link><description><![CDATA[<img align="left" hspace="5" src="https://www.campuscomponent.com/Arduino UNO Library for Proteus and other software.jpeg"/>In this guide we will see Arduino UNO Library for Proteus and different Simulation software like Proteus.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_nHQqUCjVQlKr-XPHfLEATQ" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_x0B9uzhASoe1sXrldq0y3A" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_4i1g2VR5TWqhQsc7aTd3WA" 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_aJkl6GbiRUqDnbahT3zuug" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_aJkl6GbiRUqDnbahT3zuug"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_Y4tIMm3BT1GGsgA0fSD8sQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_Y4tIMm3BT1GGsgA0fSD8sQ"].zpelem-text{ border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;margin-bottom:10pt;"><img src="/Arduino%20UNO%20Library%20for%20Proteus%20and%20other%20software.jpeg" alt="Arduino UNO Library for Proteus and other software"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;"><br></span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">Are you an Arduino enthusiast who loves to experiment with circuits and codes? Do you use simulation software like </span><span style="font-size:12pt;font-weight:700;">Proteus</span><span style="font-size:12pt;"> to test your circuits before you implement them? If yes, then you must have faced the challenge of finding the right models for simulating the Arduino UNO board.&nbsp;</span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">Don’t worry In this article, we are going to share&nbsp;Arduino </span><span style="font-size:12pt;font-weight:700;">UNO Library for Proteus and will see different Simulation software like Proteus.</span></span></p><p style="margin-bottom:10pt;"><span style="font-size:12pt;"><span style="width:480px;color:rgb(0, 0, 0);"><img src="/Tue%20May%2002%202023.png" width="480" height="471" alt="Arduino UNO Library for Proteus and other software"></span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;font-weight:700;color:rgb(0, 0, 0);">What is Arduino UNO Library for Proteus?</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Arduino UNO Library for Proteus is a simulation model for the Arduino UNO board. It is a software library that can be used to test your codes and circuits before uploading them to the physical board. The library is compatible with Proteus, making it an essential tool for Arduino enthusiasts.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;font-weight:700;color:rgb(0, 0, 0);">Why to use Proteus?</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">The Proteus and other simulation software offers several advantages. Here are a few reasons why you should use it:</span></p><ol><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Saves time and money: With different simulation modules and their libraries, you can test your codes and circuits in simulation software before implementing them on the physical board. This way, you can detect and fix any issues before spending money on components and wiring.</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Accurate simulation: It contains accurate simulation models for the Arduino UNO board and other controllers. This ensures that your simulation results are close to what you would get on the physical board.</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Easy to use: Proteus is easy to use, even for beginners. It comes with clear instructions and documentation, making it easy to get started.</span></p></li></ol><p style="text-align:justify;margin-bottom:10pt;"><a href="https://www.labcenter.com/downloads/"><span style="font-size:12pt;color:rgb(0, 0, 0);">Download Proteus Software</span></a></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;font-weight:700;color:rgb(0, 0, 0);">Now let’s see how to install and use the arduino library to simulate in Proteus:</span></p><ol><li style="font-size:12pt;"><p style="text-align:justify;"><a href="https://github.com/Proteus-LIBRARY/Arduino-Library"><span style="font-size:12pt;color:rgb(0, 0, 0);">Download the Arduino UNO library for Proteus</span></a></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">In this downloaded zip file you will find two files, named as:</span></p></li></ol><p style="text-align:justify;margin-left:36pt;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;a)&nbsp; ArduinoUnoTEP.dll</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">&nbsp;b)ArduinoUnoTEP.idx</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">3. Now extract these two files and place it in the libraries folder of your Proteus Software.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">4. Now, open your Proteus software and search for Arduino as shown in below image.</span></p><p style="margin-bottom:10pt;"><span style="font-size:12pt;"><span style="width:470px;color:rgb(0, 0, 0);"><img src="/Tue%20May%2002%202023-1.png" width="470" height="177" alt="Arduino UNO Library for Proteus and other software"></span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">5. Now select this&nbsp;Arduino&nbsp;board and click OK</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">6. Now place this Arduino UNO board in your Proteus workspace and it look as shown in below image</span></p><p style="margin-bottom:10pt;"><span style="font-size:12pt;"><span style="width:414px;color:rgb(0, 0, 0);"><img src="/Tue%20May%2002%202023-2.png" width="414" height="405" alt="Arduino UNO Library for Proteus and other software"></span></span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">7. Now we have our Arduino Board in proteus,&nbsp; double click this board in order to open its Properties.</span><span><br></span></span></p><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);"><br></span></p><p style="margin-bottom:10pt;"><span style="font-size:12pt;"><span style="width:560px;color:rgb(0, 0, 0);"><img src="/Tue%20May%2002%202023-3.png" width="560" height="615" alt="Arduino UNO Library for Proteus and other software"></span></span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">8. Now here you can set different properties of the Arduino UNO board.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">9. You need to upload the hex file of your Arduino code in the program file.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">10. So, once you have the hex file of your code then upload it here and click OK.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">And that’s it after successfully compiling the hex file, your simulation will start running and you can perform multiple functions as per the application you want.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;font-weight:700;color:rgb(0, 0, 0);">There are Multiple Simulation software available such as:</span></p><ol><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">TinkerCad</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Eagle</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Multisim</span></p></li><li style="font-size:12pt;"><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">Matlab</span></p></li></ol><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">You can also try these once you got hands-on Proteus.</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;font-weight:700;color:rgb(0, 0, 0);">Conclusion:</span></p><p style="text-align:justify;margin-bottom:10pt;"><span style="font-size:12pt;color:rgb(0, 0, 0);">The Arduino UNO Library for Proteus and other simulation software is an essential tool for anyone interested in Arduino and Iot related projects.&nbsp;</span></p><p style="text-align:justify;margin-bottom:9pt;"><span style="color:rgb(0, 0, 0);"><span style="font-size:12pt;">For more such details and updates on electronics do follow regular our blogs and if you are looking to buy Arduino Uno and different microcontrollers reach out&nbsp;</span><a href="https://www.campuscomponent.com/"><span style="font-size:12pt;">Campus Component</span></a><span style="font-size:12pt;">&nbsp;today!</span></span></p><div><p style="margin-bottom:10pt;text-align:justify;"><span style="font-size:12pt;font-weight:700;color:rgb(0, 0, 0);">Related Blogs:</span></p><p style="margin-bottom:10pt;text-align:justify;"><span style="color:rgb(0, 0, 0);">1. <a href="https://www.campuscomponent.com/blogs/post/how-to-interface-hc-05-bluetooth-module-with-arduino-uno" title="How to Interface HC-05 Bluetooth Module with Arduino" target="_blank" rel="">How to Interface HC-05 Bluetooth Module with Arduino</a>&nbsp;</span></p><p style="margin-bottom:10pt;text-align:justify;"><span style="color:rgb(0, 0, 0);">2. <a href="https://www.campuscomponent.com/blogs/post/arduino-gesture-controlled-bluetooth-speaker" title="Arduino Gesture Control Bluetooth Speaker" target="_blank" rel="">Arduino Gesture Control Bluetooth Speaker</a></span></p></div></div>
</div><div data-element-id="elm_rACeBw-iQ3urFL7BV0MJJQ" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_rACeBw-iQ3urFL7BV0MJJQ"].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/shop-now" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Tue, 02 May 2023 06:19:21 +0000</pubDate></item><item><title><![CDATA[ESP -32 A guide for beginners]]></title><link>https://www.campuscomponent.com/blogs/post/arduino-uno-library-for-proteus-and-other-software1</link><description><![CDATA[In this guide we will see Arduino UNO Library for Proteus and different Simulation software like Proteus.]]></description><content:encoded><![CDATA[
<div class="zpcontent-container blogpost-container "><div data-element-id="elm_pbhKHqmPSMi-vM5TqCtL3w" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer"><div data-element-id="elm_HG4ieWCgRv65F7sILY4evQ" data-element-type="row" class="zprow zpalign-items- zpjustify-content- "><style type="text/css"></style><div data-element-id="elm_Ku3Ak5GXRZeWFO2jYymUpQ" 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_L3GZNDFURhyPynTbrX84Ow" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h2
 class="zpheading zpheading-align-center " data-editor="true"></h2></div>
<div data-element-id="elm_gwyXeJDaTwCudcg0Waz_iQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">ESP – 32 is a low cost, low power microcontroller. It has integrated Wi-Fi, and Bluetooth. It employs Tensilica Xtensa LX – 6 microprocessor, Xtensa LX – 5 microprocessor or RISC – V microprocessor. It has built – in antenna, switches, power amplifier, filters and power modules.</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Features:</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">CPU: Xtensa single core 32 bit LX6 microprocessor.</span></p></li></ul><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Operating: 160 MHZ</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Memory: 32 KB</span></p></li><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connectivity:</span></p></li></ul><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Wi – Fi: 802.11 b/g/n</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Bluetooth: v4.2 BR/EDR and BLE (shares the radio with Wi-Fi)</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Peripheral Interface:</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">34 × programmable&nbsp;GPIOs&nbsp;</span></p><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">&nbsp;12-bit&nbsp;SAR ADC&nbsp;up to 18 channel</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">2 × 8-bit&nbsp;DACs&nbsp;</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">10 × touch sensors ( capacitive sensing GPIOs)</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">4 ×&nbsp;SPI&nbsp;</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">2 ×&nbsp;I2S&nbsp;interfaces</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">2 ×&nbsp;I2C&nbsp;interfaces</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">3 ×&nbsp;UART&nbsp;</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">SD/SDIO /CE - ATA /MMC /eMMC&nbsp;host controller</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">SDIO/SPI slave controller</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Ethernet&nbsp;MAC interface with dedicated DMA and planned&nbsp;IEEE 1588 Precision Time Protocol&nbsp;support</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">CAN bus&nbsp;2.0</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Infrared remote controller (TX/RX, up to 8 channels)</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Pulse counter (capable of full quadrature decoding)</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Motor&nbsp;PWM&nbsp;</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">LED PWM (up to 16 channels)</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Hall effect sensor</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Ultra low power analog pre-amplifier</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Security:</span></p></li></ul><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">IEEE 802.11 standard security features all supported, including&nbsp;WPA, WPA2, WPA3 (depending on version)&nbsp;and&nbsp;WLAN Authentication and Privacy Infrastructure&nbsp;(WAPI)</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Secure boot</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Flash encryption</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">1024-bit OTP, up to 768-bit for customers</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Cryptographic hardware acceleration: AES,&nbsp;SHA - 2,&nbsp;RSA,&nbsp;Ellipric Curve Cryptography&nbsp;(ECC),Random Number Generator&nbsp;(RNG)</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Power management:</span></p></li></ul><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Internal&nbsp;low dropout generator&nbsp;</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Individual power domain for RTC</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">μA deep sleep current</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Wake up from GPIO interrupt, timer, ADC measurements, capacitive touch sensor interrupt</span></p><p><span style="color:rgb(0, 0, 0);"><br></span></p><p style="margin-left:36pt;"><span style="font-size:11pt;"><span style="width:379px;color:rgb(0, 0, 0);"><img src="/Tue%20May%2002%202023-4.png" width="379" height="343"></span></span></p><p><span style="color:rgb(0, 0, 0);"><br><br></span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Interfacing an LED:</span></p></li></ul><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Connect the positive end of the LED to 100 Ohm resistor. Connect another end of the resistor to pin 18. Connect the negative end to GND.&nbsp;</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Code:</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">/*ESP32 LED BLINK</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">*/</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#define 18</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Void setup() {</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//set pin&nbsp;</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Pinmode (18,OUTPUT);</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void loop {</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">delay (500);</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">digitalWrite(18,HIGH); //LED TURN ON</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">delay(500);</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">digitalWrite(18,LOW); //LED TRM OFF</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Interfacing a switch:</span></p></li></ul><p style="text-align:justify;margin-left:18pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Components:</span></p><p style="text-align:justify;margin-left:18pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">1 push button switch</span></p><p style="text-align:justify;margin-left:18pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">1 LED</span></p><p style="text-align:justify;margin-left:18pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">2 Resistors 100 ohm</span></p><p style="text-align:justify;margin-left:18pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Jumper wires</span></p><p style="text-align:justify;margin-left:18pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Bread board</span></p><p style="text-align:justify;margin-left:18pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;margin-left:18pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Circuit:</span></p><p style="text-align:justify;margin-left:18pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Check the switch connectivity with a multimeter. Place the switch on the breadboard (please refer to the image). Connect one pin to Pin 15 of ESP 32. Connect a resistor in series with Pin 18 and GND. Connect another pin to 5V of ESP 32. On the other side, Place a LED on the breadboard. Connect a resistor in series with Pin 19 and positive terminal of LED. Ground the negative terminal.&nbsp;</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="margin-left:18pt;"><span style="font-size:11pt;"><span style="width:624px;color:rgb(0, 0, 0);"><img src="/Tue%20May%2002%202023-5.png" width="624" height="412"></span></span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Working:&nbsp;</span></p></li></ul><p style="text-align:justify;margin-left:18pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">When we press the switch the circuit gets completed pin 15 gets 5V. This is a pull up mode. When the resistor is connected between +Vcc and switch it is in pull up mode. When the resistor is connected between switch and GND it is pill down mode. We can use any of the two.</span></p><p style="text-align:justify;margin-left:18pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">As pin 15 gets a signal we turn Pin 22 high. Thus the LED glows.</span></p><ul><li style="font-size:11pt;"><p style="text-align:justify;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Code:&nbsp;</span></p></li></ul><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#define 15</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">#define 22</span></p><p style="text-align:justify;"><span style="color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void setup() {</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//declare pin 15 as input</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">pinMode(15, INPUT);</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//declare pin 22 as output</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">pinMode(22,OUTPUT);</span></p><p style="text-align:justify;margin-left:36pt;"><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;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">void loop() {</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//checkes the pin is high or low, condition statement</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">//if switch is ressed LED will turn on else will remain off</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">if (15==HIGH)</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">{</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">digitalWrite(22,HIGH);</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">else</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">{</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">digitalWrite(22,LOW);</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">}</span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);"><br></span></p><p style="text-align:justify;margin-left:36pt;"><span style="font-size:11pt;color:rgb(0, 0, 0);">Thus we have seen how to interface a LED and a switch with ESP 32. After going through this you would surely be able to use the GPIO pins.&nbsp;</span></p><p><span style="color:inherit;"></span></p><div><span style="font-size:11pt;"><br></span></div></div>
</div><div data-element-id="elm_wrZppT52R9yKKM7Wd7yMWQ" 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, 02 May 2023 06:19:21 +0000</pubDate></item></channel></rss>