<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Harshan.M</title>
    <description>The latest articles on DEV Community by Harshan.M (@harshan_shadow).</description>
    <link>https://dev.to/harshan_shadow</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg</url>
      <title>DEV Community: Harshan.M</title>
      <link>https://dev.to/harshan_shadow</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harshan_shadow"/>
    <language>en</language>
    <item>
      <title>hi</title>
      <dc:creator>Harshan.M</dc:creator>
      <pubDate>Mon, 02 Nov 2026 13:48:09 +0000</pubDate>
      <link>https://dev.to/harshan_shadow/hi-2445</link>
      <guid>https://dev.to/harshan_shadow/hi-2445</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/harshan_shadow/esp8266-iot-temperature-humidity-monitoring-1bbb" class="crayons-story__hidden-navigation-link"&gt;ESP8266 IoT Temperature &amp;amp; Humidity Monitoring&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/harshan_shadow" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg" alt="harshan_shadow profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/harshan_shadow" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Harshan.M
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Harshan.M
                
                
              
              &lt;div id="story-author-preview-content-4963343" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/harshan_shadow" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Harshan.M&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/harshan_shadow/esp8266-iot-temperature-humidity-monitoring-1bbb" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Nov 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/harshan_shadow/esp8266-iot-temperature-humidity-monitoring-1bbb" id="article-link-4963343"&gt;
          ESP8266 IoT Temperature &amp;amp; Humidity Monitoring
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hardware"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hardware&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/iot"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;iot&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/harshan_shadow/esp8266-iot-temperature-humidity-monitoring-1bbb" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/harshan_shadow/esp8266-iot-temperature-humidity-monitoring-1bbb#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
          
          &lt;div class="only-sidebar-menu-item trusted-visible-block print-hidden align-center"&gt;
                
                    
                
          &lt;/div&gt;

        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>hardware</category>
      <category>iot</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Harshan.M</dc:creator>
      <pubDate>Mon, 02 Nov 2026 13:47:59 +0000</pubDate>
      <link>https://dev.to/harshan_shadow/-456</link>
      <guid>https://dev.to/harshan_shadow/-456</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/harshan_shadow/esp8266-iot-temperature-humidity-monitoring-1bbb" class="crayons-story__hidden-navigation-link"&gt;ESP8266 IoT Temperature &amp;amp; Humidity Monitoring&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/harshan_shadow" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg" alt="harshan_shadow profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/harshan_shadow" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Harshan.M
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Harshan.M
                
                
              
              &lt;div id="story-author-preview-content-4963343" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/harshan_shadow" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Harshan.M&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/harshan_shadow/esp8266-iot-temperature-humidity-monitoring-1bbb" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Nov 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/harshan_shadow/esp8266-iot-temperature-humidity-monitoring-1bbb" id="article-link-4963343"&gt;
          ESP8266 IoT Temperature &amp;amp; Humidity Monitoring
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hardware"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hardware&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/iot"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;iot&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/harshan_shadow/esp8266-iot-temperature-humidity-monitoring-1bbb" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/harshan_shadow/esp8266-iot-temperature-humidity-monitoring-1bbb#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
          
          &lt;div class="only-sidebar-menu-item trusted-visible-block print-hidden align-center"&gt;
                
                    
                
          &lt;/div&gt;

        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>hardware</category>
      <category>iot</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>ESP8266 IoT Temperature &amp; Humidity Monitoring</title>
      <dc:creator>Harshan.M</dc:creator>
      <pubDate>Mon, 02 Nov 2026 13:45:29 +0000</pubDate>
      <link>https://dev.to/harshan_shadow/esp8266-iot-temperature-humidity-monitoring-1bbb</link>
      <guid>https://dev.to/harshan_shadow/esp8266-iot-temperature-humidity-monitoring-1bbb</guid>
      <description>&lt;h1&gt;
  
  
  ESP8266 IoT Temperature and Humidity Monitoring with KiwisIoT
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Have you ever wanted to monitor the temperature and humidity of a room remotely?&lt;/p&gt;

&lt;p&gt;In this project, I developed an IoT-based temperature and humidity monitoring system using an &lt;strong&gt;ESP8266 NodeMCU&lt;/strong&gt; and a &lt;strong&gt;DHT11 sensor&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The DHT11 sensor collects environmental data, and the ESP8266 sends the readings through Wi-Fi to the &lt;strong&gt;KiwisIoT Dashboard&lt;/strong&gt;. Users can view temperature and humidity values remotely through the dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Overview
&lt;/h2&gt;

&lt;p&gt;This project has three main components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DHT11 Sensor:&lt;/strong&gt; Measures temperature and humidity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ESP8266 NodeMCU:&lt;/strong&gt; Reads sensor data and sends it through Wi-Fi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;KiwisIoT Dashboard:&lt;/strong&gt; Displays the received sensor readings.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How Does It Work?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The DHT11 sensor measures the surrounding temperature and humidity.&lt;/li&gt;
&lt;li&gt;The ESP8266 reads the sensor values.&lt;/li&gt;
&lt;li&gt;The ESP8266 connects to Wi-Fi.&lt;/li&gt;
&lt;li&gt;Sensor readings are sent to the KiwisIoT platform.&lt;/li&gt;
&lt;li&gt;The KiwisIoT Dashboard displays the temperature and humidity values.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Data Flow:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DHT11 Sensor → ESP8266 NodeMCU → Wi-Fi → KiwisIoT Platform → Dashboard&lt;/p&gt;

&lt;h2&gt;
  
  
  Components Required
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ESP8266 NodeMCU&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DHT11 Temperature and Humidity Sensor&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jumper Wires&lt;/td&gt;
&lt;td&gt;As required&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB Cable&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Computer&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Software and Tools Required
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Arduino IDE&lt;/li&gt;
&lt;li&gt;ESP8266 Board Package&lt;/li&gt;
&lt;li&gt;KiwisIoT Arduino Library&lt;/li&gt;
&lt;li&gt;DHT Sensor Library&lt;/li&gt;
&lt;li&gt;Adafruit Unified Sensor Library&lt;/li&gt;
&lt;li&gt;KiwisIoT Account&lt;/li&gt;
&lt;li&gt;Wi-Fi Connection&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Hardware Connections
&lt;/h2&gt;

&lt;p&gt;Connect the DHT11 sensor to the ESP8266 NodeMCU using jumper wires.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;DHT11 Pin&lt;/th&gt;
&lt;th&gt;ESP8266 Pin&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;VCC&lt;/td&gt;
&lt;td&gt;3.3V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DATA&lt;/td&gt;
&lt;td&gt;D1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GND&lt;/td&gt;
&lt;td&gt;GND&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Circuit Diagram
&lt;/h3&gt;

&lt;p&gt;[INSERT CIRCUIT DIAGRAM IMAGE HERE]&lt;/p&gt;

&lt;p&gt;The DHT11 sensor receives power from the ESP8266. Its DATA pin is connected to D1, which allows the ESP8266 to read temperature and humidity measurements.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxtb1lvpv160facdo7wty.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxtb1lvpv160facdo7wty.jpg" alt=" " width="799" height="531"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  KiwisIoT Dashboard Configuration
&lt;/h2&gt;

&lt;p&gt;The KiwisIoT platform is used to receive and display the sensor readings.&lt;/p&gt;

&lt;p&gt;I configured two data channels:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Channel&lt;/th&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Unit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Channel 0&lt;/td&gt;
&lt;td&gt;Temperature&lt;/td&gt;
&lt;td&gt;°C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Channel 1&lt;/td&gt;
&lt;td&gt;Humidity&lt;/td&gt;
&lt;td&gt;%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two dashboard widgets are configured:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Temperature Widget:&lt;/strong&gt; Displays temperature readings from Channel 0.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Humidity Widget:&lt;/strong&gt; Displays humidity readings from Channel 1.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ESP8266 sends the sensor values to the corresponding channels.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvtbavlvhifmagrsdaydj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvtbavlvhifmagrsdaydj.png" alt=" " width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Arduino IDE Setup
&lt;/h2&gt;

&lt;p&gt;Before uploading the program:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install Arduino IDE.&lt;/li&gt;
&lt;li&gt;Install the ESP8266 board package.&lt;/li&gt;
&lt;li&gt;Install the KiwisIoT Arduino library.&lt;/li&gt;
&lt;li&gt;Install the DHT sensor library.&lt;/li&gt;
&lt;li&gt;Install the Adafruit Unified Sensor library.&lt;/li&gt;
&lt;li&gt;Select the ESP8266 NodeMCU board.&lt;/li&gt;
&lt;li&gt;Select the correct COM port.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Arduino Code
&lt;/h2&gt;

&lt;p&gt;The following Arduino program reads temperature and humidity from the DHT11 sensor and sends the values to the KiwisIoT Dashboard.&lt;/p&gt;

&lt;p&gt;Replace the Wi-Fi name, password, and dashboard Topic ID with your own details before uploading.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;ESP8266WiFi.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;KiwisIoT.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;DHT.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;ssid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_WIFI_NAME"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;pass&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_WIFI_PASSWORD"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;topic&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_DASHBOARD_TOPIC_ID"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cp"&gt;#define DHT_PIN D1
#define DHT_TYPE DHT11
&lt;/span&gt;
&lt;span class="n"&gt;DHT&lt;/span&gt; &lt;span class="nf"&gt;dht&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DHT_PIN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;DHT_TYPE&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;KiwisIoT&lt;/span&gt; &lt;span class="nf"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ssid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pass&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;sendDHTData&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;temperature&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dht&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readTemperature&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;humidity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dht&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readHumidity&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;isnan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;isnan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;humidity&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Failed to read DHT11!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"---------- DHT11 MONITORING ----------"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Temperature: "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;" °C"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Humidity: "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;humidity&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;" %"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;temperatureData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;temperatureData&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Sent to KiwisIoT Channel 0: "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temperatureData&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;humidityData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;humidity&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;humidityData&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Sent to KiwisIoT Channel 1: "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;humidityData&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;115200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"DHT11 MONITORING"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;dht&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"DHT11 initialized"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Connecting to KiwisIoT..."&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"KiwisIoT initialized"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Starting monitoring..."&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;lastSend&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;millis&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;lastSend&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;2000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;lastSend&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;millis&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;sendDHTData&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Understanding the Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Library Inclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The program uses the ESP8266 Wi-Fi library, KiwisIoT library, and DHT sensor library to communicate with the hardware and platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Wi-Fi and Dashboard Configuration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Wi-Fi name, password, and KiwisIoT Topic ID are configured so the ESP8266 can connect to the platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Sensor Initialization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The DHT11 sensor is initialized on the D1 digital pin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Reading Sensor Values&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;readTemperature()&lt;/code&gt; function reads temperature, while &lt;code&gt;readHumidity()&lt;/code&gt; reads humidity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Sending Data to KiwisIoT&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Temperature is sent through Channel 0, and humidity is sent through Channel 1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Automatic Updates&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The program sends new sensor readings approximately every 2 seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Uploading the Program
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Connect the ESP8266 NodeMCU to your computer using a USB cable.&lt;/li&gt;
&lt;li&gt;Open Arduino IDE.&lt;/li&gt;
&lt;li&gt;Enter your Wi-Fi credentials and KiwisIoT Topic ID.&lt;/li&gt;
&lt;li&gt;Select the ESP8266 NodeMCU board.&lt;/li&gt;
&lt;li&gt;Select the correct COM port.&lt;/li&gt;
&lt;li&gt;Click Verify to check the program.&lt;/li&gt;
&lt;li&gt;Click Upload.&lt;/li&gt;
&lt;li&gt;Open Serial Monitor and select 115200 baud.&lt;/li&gt;
&lt;li&gt;Check the sensor readings and open your KiwisIoT Dashboard.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Live KiwisIoT Dashboard Output
&lt;/h2&gt;

&lt;p&gt;The KiwisIoT Dashboard provides a simple interface for monitoring the sensor readings remotely.&lt;/p&gt;

&lt;p&gt;[INSERT KIWISIOT DASHBOARD SCREENSHOT HERE]&lt;/p&gt;

&lt;p&gt;The dashboard demonstration displays:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Temperature:&lt;/strong&gt; 28.5 °C&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Humidity:&lt;/strong&gt; 72.3 %&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are the values shown in the supplied dashboard screenshot. Actual sensor readings may vary depending on the surrounding environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing and Results
&lt;/h2&gt;

&lt;p&gt;After connecting the DHT11 sensor to the ESP8266 NodeMCU and uploading the program, the system reads temperature and humidity values.&lt;/p&gt;

&lt;p&gt;The ESP8266 sends the readings to the KiwisIoT platform through Wi-Fi. The dashboard displays the received values using the configured widgets.&lt;/p&gt;

&lt;p&gt;The system is designed to update the readings approximately every 2 seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Applications
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Home environment monitoring&lt;/li&gt;
&lt;li&gt;Classroom temperature monitoring&lt;/li&gt;
&lt;li&gt;Office environment monitoring&lt;/li&gt;
&lt;li&gt;Laboratory monitoring&lt;/li&gt;
&lt;li&gt;Greenhouse monitoring&lt;/li&gt;
&lt;li&gt;Smart building systems&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Add notifications when temperature or humidity crosses a selected limit.&lt;/li&gt;
&lt;li&gt;Store historical sensor readings.&lt;/li&gt;
&lt;li&gt;Monitor multiple locations using additional sensors.&lt;/li&gt;
&lt;li&gt;Integrate more environmental sensors.&lt;/li&gt;
&lt;li&gt;Add additional dashboard features.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This project demonstrates how an ESP8266 NodeMCU and DHT11 sensor can be combined to create an IoT-based temperature and humidity monitoring system.&lt;/p&gt;

&lt;p&gt;By connecting the ESP8266 to the KiwisIoT platform, users can monitor environmental readings remotely through an online dashboard.&lt;/p&gt;

&lt;p&gt;This project provides practical experience in sensor interfacing, Arduino programming, Wi-Fi communication, and IoT-based monitoring.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technologies Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;ESP8266 NodeMCU&lt;/li&gt;
&lt;li&gt;DHT11 Sensor&lt;/li&gt;
&lt;li&gt;Arduino IDE&lt;/li&gt;
&lt;li&gt;C/C++ (Arduino Programming)&lt;/li&gt;
&lt;li&gt;Wi-Fi Communication&lt;/li&gt;
&lt;li&gt;KiwisIoT Dashboard&lt;/li&gt;
&lt;li&gt;IoT Technology&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tags
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;iot&lt;/code&gt; &lt;code&gt;esp8266&lt;/code&gt; &lt;code&gt;arduino&lt;/code&gt; &lt;code&gt;dht11&lt;/code&gt; &lt;code&gt;kiwisiot&lt;/code&gt;&lt;/p&gt;

</description>
      <category>hardware</category>
      <category>iot</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Ultrasonic Sentinel KiwisIoT</title>
      <dc:creator>Harshan.M</dc:creator>
      <pubDate>Thu, 15 Oct 2026 13:32:40 +0000</pubDate>
      <link>https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-1hoj</link>
      <guid>https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-1hoj</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-esp8266-based-real-time-distance-monitoring-1h17" class="crayons-story__hidden-navigation-link"&gt;Ultrasonic Sentinel KiwisIoT: ESP8266-Based Real-Time Distance Monitoring&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/harshan_shadow" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg" alt="harshan_shadow profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/harshan_shadow" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Harshan.M
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Harshan.M
                
                
              
              &lt;div id="story-author-preview-content-4856850" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/harshan_shadow" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Harshan.M&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-esp8266-based-real-time-distance-monitoring-1h17" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 15&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-esp8266-based-real-time-distance-monitoring-1h17" id="article-link-4856850"&gt;
          Ultrasonic Sentinel KiwisIoT: ESP8266-Based Real-Time Distance Monitoring
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/arduino"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;arduino&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/esp8266"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;esp8266&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hardware"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hardware&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/iot"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;iot&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-esp8266-based-real-time-distance-monitoring-1h17" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-esp8266-based-real-time-distance-monitoring-1h17#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>automation</category>
      <category>hardware</category>
      <category>iot</category>
    </item>
    <item>
      <title>Ultrasonic Sentinel KiwisIoT</title>
      <dc:creator>Harshan.M</dc:creator>
      <pubDate>Thu, 15 Oct 2026 13:32:40 +0000</pubDate>
      <link>https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-38lg</link>
      <guid>https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-38lg</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-esp8266-based-real-time-distance-monitoring-1h17" class="crayons-story__hidden-navigation-link"&gt;Ultrasonic Sentinel KiwisIoT: ESP8266-Based Real-Time Distance Monitoring&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/harshan_shadow" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg" alt="harshan_shadow profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/harshan_shadow" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Harshan.M
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Harshan.M
                
                
              
              &lt;div id="story-author-preview-content-4856850" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/harshan_shadow" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Harshan.M&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-esp8266-based-real-time-distance-monitoring-1h17" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 15&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-esp8266-based-real-time-distance-monitoring-1h17" id="article-link-4856850"&gt;
          Ultrasonic Sentinel KiwisIoT: ESP8266-Based Real-Time Distance Monitoring
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/arduino"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;arduino&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/esp8266"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;esp8266&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hardware"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hardware&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/iot"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;iot&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-esp8266-based-real-time-distance-monitoring-1h17" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-esp8266-based-real-time-distance-monitoring-1h17#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>hardware</category>
      <category>iot</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>Ultrasonic Sentinel KiwisIoT: ESP8266-Based Real-Time Distance Monitoring</title>
      <dc:creator>Harshan.M</dc:creator>
      <pubDate>Thu, 15 Oct 2026 13:32:03 +0000</pubDate>
      <link>https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-esp8266-based-real-time-distance-monitoring-1h17</link>
      <guid>https://dev.to/harshan_shadow/ultrasonic-sentinel-kiwisiot-esp8266-based-real-time-distance-monitoring-1h17</guid>
      <description>&lt;h1&gt;
  
  
  Ultrasonic Sentinel KiwisIoT: ESP8266-Based Real-Time Distance Monitoring
&lt;/h1&gt;

&lt;p&gt;Hello, DEV Community! 👋&lt;/p&gt;

&lt;p&gt;I'm excited to share my IoT project, &lt;strong&gt;Ultrasonic Sentinel KiwisIoT&lt;/strong&gt;, built using an ESP8266 NodeMCU, an HC-SR04 ultrasonic sensor, Arduino IDE, and the KiwisIoT platform.&lt;/p&gt;

&lt;p&gt;This project measures the distance between the sensor and a nearby object and sends the readings to a KiwisIoT dashboard over Wi-Fi for remote monitoring.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;ESP8266 NodeMCU&lt;/li&gt;
&lt;li&gt;HC-SR04 ultrasonic distance sensor&lt;/li&gt;
&lt;li&gt;Jumper wires&lt;/li&gt;
&lt;li&gt;USB cable&lt;/li&gt;
&lt;li&gt;Arduino IDE&lt;/li&gt;
&lt;li&gt;KiwisIoT dashboard&lt;/li&gt;
&lt;li&gt;Wi-Fi connection&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔌 Circuit Connection Diagram
&lt;/h2&gt;

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

&lt;p&gt;The HC-SR04 ultrasonic sensor has four pins: VCC, GND, TRIG, and ECHO.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;HC-SR04 pin&lt;/th&gt;
&lt;th&gt;ESP8266 NodeMCU connection&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;VCC&lt;/td&gt;
&lt;td&gt;Suitable 5 V supply&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GND&lt;/td&gt;
&lt;td&gt;GND&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TRIG&lt;/td&gt;
&lt;td&gt;D5 (GPIO14)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ECHO&lt;/td&gt;
&lt;td&gt;D6 (GPIO12), through a voltage divider&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The TRIG pin initiates an ultrasonic pulse. When the pulse reflects from an object, the ECHO pin provides a signal whose duration is used to calculate the distance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Safety note:&lt;/strong&gt; The HC-SR04 ECHO output can be 5 V. Use a resistor voltage divider to reduce it to a safe level before connecting it to an ESP8266 GPIO.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ How It Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;The ESP8266 sends a trigger pulse to the HC-SR04.&lt;/li&gt;
&lt;li&gt;The sensor emits ultrasonic sound waves.&lt;/li&gt;
&lt;li&gt;The waves reflect off a nearby object.&lt;/li&gt;
&lt;li&gt;The sensor returns an ECHO pulse.&lt;/li&gt;
&lt;li&gt;The ESP8266 calculates the distance in centimetres.&lt;/li&gt;
&lt;li&gt;The measured value is sent to KiwisIoT over Wi-Fi.&lt;/li&gt;
&lt;li&gt;The dashboard displays the latest distance reading.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The program is designed to update the dashboard approximately every two seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  ☁️ KiwisIoT Dashboard
&lt;/h2&gt;

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

&lt;p&gt;I configured a KiwisIoT dashboard with a numeric widget labelled &lt;strong&gt;DISTANCE&lt;/strong&gt;. The ESP8266 sends distance readings through Channel 0, allowing the dashboard to display the latest received value.&lt;/p&gt;

&lt;p&gt;In my captured dashboard screenshot, the displayed reading is &lt;strong&gt;7.41&lt;/strong&gt;. The unit should be set to centimetres if the program is sending centimetre measurements.&lt;/p&gt;

&lt;p&gt;This provides a simple way to observe sensor readings without relying only on the Arduino Serial Monitor.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 Live Test Result
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6pu419in20yrxa3xfb8v.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6pu419in20yrxa3xfb8v.jpeg" alt=" " width="800" height="539"&gt;&lt;/a&gt;&lt;br&gt;
The hardware consists of an ESP8266 NodeMCU connected to the ultrasonic sensor using jumper wires and powered through USB.&lt;/p&gt;

&lt;p&gt;The dashboard screenshot captured during testing shows a numerical reading of 7.41. To verify measurement accuracy, compare the displayed distance with the actual distance measured using a ruler or measuring tape.&lt;/p&gt;

&lt;p&gt;Expected observations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A nearby object produces a distance reading.&lt;/li&gt;
&lt;li&gt;Moving the object changes the reading.&lt;/li&gt;
&lt;li&gt;If no valid echo is received, the program reports an invalid measurement in the Serial Monitor.&lt;/li&gt;
&lt;li&gt;If Wi-Fi is disconnected, new remote dashboard updates may stop.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  💻 Arduino Code
&lt;/h2&gt;

&lt;p&gt;The following Arduino sketch reads the HC-SR04 sensor and sends valid distance measurements to KiwisIoT.&lt;/p&gt;

&lt;p&gt;Replace the Wi-Fi credentials and dashboard topic with your own values before uploading.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;ESP8266WiFi.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;KiwisIoT.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;ssid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_WIFI_NAME"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;pass&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_WIFI_PASSWORD"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;topic&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_DASHBOARD_TOPIC_ID"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cp"&gt;#define TRIG_PIN D5
#define ECHO_PIN D6
&lt;/span&gt;
&lt;span class="n"&gt;KiwisIoT&lt;/span&gt; &lt;span class="nf"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ssid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pass&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="nf"&gt;measureDistance&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TRIG_PIN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;delayMicroseconds&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TRIG_PIN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;HIGH&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;delayMicroseconds&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TRIG_PIN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;duration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
      &lt;span class="n"&gt;pulseIn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ECHO_PIN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;HIGH&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30000UL&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;duration&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;duration&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.0343&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;115200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TRIG_PIN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;OUTPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ECHO_PIN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;INPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Ultrasonic Sentinel KiwisIoT"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;lastSend&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;millis&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;lastSend&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;2000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;lastSend&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;millis&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;distance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;measureDistance&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Distance: "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;" cm"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

      &lt;span class="n"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"No valid echo received"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code assumes the KiwisIoT library supports the &lt;code&gt;begin()&lt;/code&gt;, &lt;code&gt;run()&lt;/code&gt;, and &lt;code&gt;send()&lt;/code&gt; methods used in this sketch. Test it with your installed library and confirm that Channel 0 is configured correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security reminder:&lt;/strong&gt; Never publish your real Wi-Fi password in a public code snippet.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔄 System Architecture
&lt;/h2&gt;

&lt;p&gt;HC-SR04 Ultrasonic Sensor → ESP8266 NodeMCU → Wi-Fi → KiwisIoT Dashboard&lt;/p&gt;

&lt;p&gt;The sensor measures the distance, the ESP8266 processes the reading, and the dashboard provides a remote view of the data.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌍 Applications
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Object distance monitoring&lt;/li&gt;
&lt;li&gt;Proximity detection experiments&lt;/li&gt;
&lt;li&gt;Smart parking demonstrations&lt;/li&gt;
&lt;li&gt;Educational IoT projects&lt;/li&gt;
&lt;li&gt;Distance measurement prototypes&lt;/li&gt;
&lt;li&gt;Embedded systems learning&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Add a buzzer for near-object alerts.&lt;/li&gt;
&lt;li&gt;Send notifications when an object comes too close.&lt;/li&gt;
&lt;li&gt;Store distance measurements for historical analysis.&lt;/li&gt;
&lt;li&gt;Add multiple sensors for different monitoring zones.&lt;/li&gt;
&lt;li&gt;Design a compact enclosure for the electronics.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📚 References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;KiwisIoT Projects Repository: &lt;a href="https://github.com/Kiwistron/KiwisIoT-Projects" rel="noopener noreferrer"&gt;https://github.com/Kiwistron/KiwisIoT-Projects&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;ESP8266 Arduino Core: &lt;a href="https://github.com/esp8266/Arduino" rel="noopener noreferrer"&gt;https://github.com/esp8266/Arduino&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;ESP8266 Documentation: &lt;a href="https://arduino-esp8266.readthedocs.io/" rel="noopener noreferrer"&gt;https://arduino-esp8266.readthedocs.io/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Arduino IDE: &lt;a href="https://www.arduino.cc/en/software" rel="noopener noreferrer"&gt;https://www.arduino.cc/en/software&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Ultrasonic Sentinel KiwisIoT demonstrates how an HC-SR04 ultrasonic sensor and ESP8266 NodeMCU can be combined with a Wi-Fi-connected IoT dashboard for remote distance monitoring.&lt;/p&gt;

&lt;p&gt;This project helped me explore ultrasonic sensing, embedded programming, wireless communication, and IoT data visualization.&lt;/p&gt;

&lt;p&gt;Thanks for reading! Feel free to share your feedback and ideas for future improvements. 🚀&lt;/p&gt;

&lt;h1&gt;
  
  
  IoT #ESP8266 #Arduino #UltrasonicSensor #KiwisIoT
&lt;/h1&gt;

</description>
      <category>arduino</category>
      <category>esp8266</category>
      <category>hardware</category>
      <category>iot</category>
    </item>
    <item>
      <title>IR Sentinel KiwisIoT: ESP8266-Based Real-Time Object Detection</title>
      <dc:creator>Harshan.M</dc:creator>
      <pubDate>Wed, 14 Oct 2026 12:59:04 +0000</pubDate>
      <link>https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-5d5b</link>
      <guid>https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-5d5b</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-4ff1" class="crayons-story__hidden-navigation-link"&gt;IR Sentinel KiwisIoT: ESP8266-Based Real-Time Object Detection&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/harshan_shadow" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg" alt="harshan_shadow profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/harshan_shadow" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Harshan.M
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Harshan.M
                
                
              
              &lt;div id="story-author-preview-content-4850150" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/harshan_shadow" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Harshan.M&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-4ff1" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 14&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-4ff1" id="article-link-4850150"&gt;
          IR Sentinel KiwisIoT: ESP8266-Based Real-Time Object Detection
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hardware"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hardware&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/iot"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;iot&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-4ff1" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-4ff1#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>arduino</category>
      <category>esp8266</category>
      <category>hardware</category>
      <category>iot</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Harshan.M</dc:creator>
      <pubDate>Wed, 14 Oct 2026 12:58:12 +0000</pubDate>
      <link>https://dev.to/harshan_shadow/-2ki3</link>
      <guid>https://dev.to/harshan_shadow/-2ki3</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-4ff1" class="crayons-story__hidden-navigation-link"&gt;IR Sentinel KiwisIoT: ESP8266-Based Real-Time Object Detection&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/harshan_shadow" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg" alt="harshan_shadow profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/harshan_shadow" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Harshan.M
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Harshan.M
                
                
              
              &lt;div id="story-author-preview-content-4850150" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/harshan_shadow" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171243%2Fc20d124f-11c2-4ddc-ae64-0aa4f20ba521.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Harshan.M&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-4ff1" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 14&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-4ff1" id="article-link-4850150"&gt;
          IR Sentinel KiwisIoT: ESP8266-Based Real-Time Object Detection
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hardware"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hardware&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/iot"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;iot&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-4ff1" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-4ff1#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>hardware</category>
      <category>iot</category>
    </item>
    <item>
      <title>IR Sentinel KiwisIoT: ESP8266-Based Real-Time Object Detection</title>
      <dc:creator>Harshan.M</dc:creator>
      <pubDate>Wed, 14 Oct 2026 12:45:04 +0000</pubDate>
      <link>https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-4ff1</link>
      <guid>https://dev.to/harshan_shadow/ir-sentinel-kiwisiot-esp8266-based-real-time-object-detection-4ff1</guid>
      <description>&lt;h1&gt;
  
  
  IR Sentinel KiwisIoT: ESP8266-Based Real-Time Object Detection
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Hello Dev Community! 👋&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;IR Sentinel KiwisIoT&lt;/strong&gt;, a simple IoT-based object detection project using an ESP8266 NodeMCU, an IR sensor module, and the KiwisIoT platform.&lt;/p&gt;

&lt;p&gt;The system detects nearby objects using an infrared sensor, processes the sensor's digital output through the ESP8266, and sends the object status to a KiwisIoT dashboard over Wi-Fi.&lt;/p&gt;

&lt;p&gt;This project helped me explore sensor interfacing, embedded programming, wireless communication, and IoT dashboard monitoring.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;ESP8266 NodeMCU development board&lt;/li&gt;
&lt;li&gt;IR obstacle detection sensor module&lt;/li&gt;
&lt;li&gt;Jumper wires&lt;/li&gt;
&lt;li&gt;USB cable for power and programming&lt;/li&gt;
&lt;li&gt;Arduino IDE&lt;/li&gt;
&lt;li&gt;KiwisIoT account and dashboard&lt;/li&gt;
&lt;li&gt;Wi-Fi connection&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔌 Circuit Diagram and Connection Explanation
&lt;/h2&gt;

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

&lt;p&gt;The IR sensor module is connected to the ESP8266 NodeMCU using three main connections:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;IR sensor pin&lt;/th&gt;
&lt;th&gt;ESP8266 connection&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;VCC&lt;/td&gt;
&lt;td&gt;Suitable power pin&lt;/td&gt;
&lt;td&gt;Powers the sensor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GND&lt;/td&gt;
&lt;td&gt;GND&lt;/td&gt;
&lt;td&gt;Common ground&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DO&lt;/td&gt;
&lt;td&gt;D7 (GPIO13)&lt;/td&gt;
&lt;td&gt;Digital detection signal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AO&lt;/td&gt;
&lt;td&gt;Not connected&lt;/td&gt;
&lt;td&gt;Analog output is unused&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The digital output pin sends a signal to the ESP8266 whenever the sensor detects an object according to its sensitivity setting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; The circuit illustration shows D6 in its simplified connection table, while the code below uses D7. For this code, connect DO to D7. If your actual hardware uses D6, change the pin definition in the code to D6. Also, verify the sensor's voltage requirements and ensure its output is safe for the ESP8266's 3.3 V GPIO.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ How It Works
&lt;/h2&gt;

&lt;p&gt;The project follows these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The IR sensor monitors the area in front of it.&lt;/li&gt;
&lt;li&gt;The ESP8266 reads the sensor's digital output.&lt;/li&gt;
&lt;li&gt;The program converts the signal into DETECTED or NOT DETECTED.&lt;/li&gt;
&lt;li&gt;The ESP8266 sends the status to KiwisIoT through Wi-Fi.&lt;/li&gt;
&lt;li&gt;The dashboard displays the received object detection status.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The code checks the sensor periodically and sends an update approximately every two seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  💻 Arduino Code
&lt;/h2&gt;

&lt;p&gt;The following Arduino sketch uses the ESP8266 NodeMCU, the IR sensor's digital output, and the KiwisIoT library.&lt;/p&gt;

&lt;p&gt;Before uploading, replace the Wi-Fi and dashboard placeholders with your own settings. Never publish your Wi-Fi password in a public post.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cm"&gt;/*
 * Project: IR Sentinel KiwisIoT
 * Project ID: KIWISIOT-002
 * Board: ESP8266 NodeMCU
 * Sensor: IR Obstacle Detection Module
 */&lt;/span&gt;

&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;ESP8266WiFi.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;KiwisIoT.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;ssid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_WIFI_NAME"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;pass&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_WIFI_PASSWORD"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;topic&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"YOUR_DASHBOARD_TOPIC_ID"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cp"&gt;#define IR_PIN D7
&lt;/span&gt;
&lt;span class="n"&gt;KiwisIoT&lt;/span&gt; &lt;span class="nf"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ssid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pass&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;sendObjectStatus&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;irState&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;digitalRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;IR_PIN&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;objectStatus&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;// Many IR modules output LOW when an object is detected.&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;irState&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;objectStatus&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"DETECTED"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;objectStatus&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"NOT DETECTED"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;n--- IR SENTINEL MONITORING ---"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"IR Sensor Value: "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;irState&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Object Status: "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;objectStatus&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="c1"&gt;// Send the status to KiwisIoT Channel 0.&lt;/span&gt;
  &lt;span class="n"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;objectStatus&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Status sent to KiwisIoT"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;115200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;IR_PIN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;INPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;nIR Sentinel KiwisIoT"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Initializing KiwisIoT..."&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;kiwisiot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;lastSend&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;millis&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;lastSend&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;2000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;lastSend&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;millis&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;sendObjectStatus&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ☁️ KiwisIoT Dashboard Configuration
&lt;/h2&gt;

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

&lt;p&gt;I configured a KiwisIoT dashboard to display the object detection status received from the ESP8266. The program sends the status string to Channel 0 using the KiwisIoT library.&lt;/p&gt;

&lt;p&gt;The dashboard screenshot shows &lt;strong&gt;DETECTED&lt;/strong&gt; in green. This demonstrates the status displayed by the dashboard during my test.&lt;/p&gt;

&lt;p&gt;To reproduce the setup:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create or open your KiwisIoT dashboard.&lt;/li&gt;
&lt;li&gt;Configure the topic ID used by your ESP8266 program.&lt;/li&gt;
&lt;li&gt;Add a suitable text or label widget.&lt;/li&gt;
&lt;li&gt;Configure the widget to display the data from Channel 0.&lt;/li&gt;
&lt;li&gt;Upload the program and verify that the displayed status changes when an object enters or leaves the sensor's detection range.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The exact dashboard configuration may depend on the KiwisIoT interface and widget settings.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 Live Test Result
&lt;/h2&gt;

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

&lt;p&gt;I connected the IR sensor module to the ESP8266 NodeMCU and powered the board through USB. The sensor's digital output was used to determine the detection status.&lt;/p&gt;

&lt;p&gt;The KiwisIoT dashboard screenshot captured during testing displays &lt;strong&gt;DETECTED&lt;/strong&gt; in green.&lt;/p&gt;

&lt;p&gt;Expected observations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Object detected:&lt;/strong&gt; DETECTED&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No object detected:&lt;/strong&gt; NOT DETECTED&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wi-Fi unavailable:&lt;/strong&gt; New remote dashboard updates may stop&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The results depend on sensor sensitivity, object distance and surface, sensor output logic, and Wi-Fi connectivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔄 System Architecture
&lt;/h2&gt;

&lt;p&gt;IR Sensor → ESP8266 NodeMCU → Wi-Fi → KiwisIoT Dashboard&lt;/p&gt;

&lt;p&gt;The IR sensor provides the input, the ESP8266 processes the signal, and KiwisIoT displays the received status for remote monitoring.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌍 Possible Applications
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Basic object presence monitoring&lt;/li&gt;
&lt;li&gt;Educational IoT experiments&lt;/li&gt;
&lt;li&gt;Proximity detection demonstrations&lt;/li&gt;
&lt;li&gt;Entry or passage monitoring prototypes&lt;/li&gt;
&lt;li&gt;Learning embedded systems and wireless communication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is an educational project and is not intended to replace safety-certified detection systems.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Add an LED or buzzer alert.&lt;/li&gt;
&lt;li&gt;Send notifications when an object is detected.&lt;/li&gt;
&lt;li&gt;Record detection events over time.&lt;/li&gt;
&lt;li&gt;Add multiple sensors for monitoring different locations.&lt;/li&gt;
&lt;li&gt;Build a compact enclosure for the electronics.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📚 References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;KiwisIoT Projects Repository: &lt;a href="https://github.com/Kiwistron/KiwisIoT-Projects" rel="noopener noreferrer"&gt;https://github.com/Kiwistron/KiwisIoT-Projects&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;ESP8266 Arduino Core: &lt;a href="https://github.com/esp8266/Arduino" rel="noopener noreferrer"&gt;https://github.com/esp8266/Arduino&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;ESP8266 Documentation: &lt;a href="https://arduino-esp8266.readthedocs.io/" rel="noopener noreferrer"&gt;https://arduino-esp8266.readthedocs.io/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Arduino IDE: &lt;a href="https://www.arduino.cc/en/software" rel="noopener noreferrer"&gt;https://www.arduino.cc/en/software&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;IR Sentinel KiwisIoT demonstrates how a low-cost IR sensor and ESP8266 NodeMCU can be combined with an IoT dashboard for remote object detection monitoring.&lt;/p&gt;

&lt;p&gt;Building this project provided practical experience with sensor interfacing, Arduino programming, Wi-Fi communication, and dashboard integration.&lt;/p&gt;

&lt;p&gt;Thanks for reading! Feel free to share your suggestions and ideas for improving this project. 🚀&lt;/p&gt;

</description>
      <category>hardware</category>
      <category>iot</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>GlowGuard– KiwisIoT Smart Light Monitoring System</title>
      <dc:creator>Harshan.M</dc:creator>
      <pubDate>Fri, 09 Oct 2026 12:42:08 +0000</pubDate>
      <link>https://dev.to/harshan_shadow/glowguard-kiwisiot-smart-light-monitoring-system-441l</link>
      <guid>https://dev.to/harshan_shadow/glowguard-kiwisiot-smart-light-monitoring-system-441l</guid>
      <description>&lt;p&gt;GlowGuard: Building an IoT-Based Smart Light Monitoring System&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hi everyone! I am a CSE student exploring IoT and hardware development. I built GlowGuard, a simple smart light monitoring system that detects surrounding light intensity and displays the result through an IoT dashboard.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;ESP8266 NodeMCU&lt;/li&gt;
&lt;li&gt;LDR Sensor Module&lt;/li&gt;
&lt;li&gt;Jumper Wires&lt;/li&gt;
&lt;li&gt;USB Cable&lt;/li&gt;
&lt;li&gt;Wi-Fi Connection&lt;/li&gt;
&lt;li&gt;KiwisIoT Platform&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;The LDR sensor detects the surrounding light intensity. The ESP8266 reads the sensor value, processes it, and sends the data through Wi-Fi to the KiwisIoT platform.&lt;/p&gt;

&lt;p&gt;The system classifies the light condition as BRIGHT, MEDIUM, or DARK.&lt;/p&gt;

&lt;h2&gt;
  
  
  Circuit Diagram and Connections
&lt;/h2&gt;

&lt;p&gt;GlowGuard uses an LDR sensor module connected to an ESP8266 NodeMCU. The sensor detects surrounding light intensity, and the ESP8266 processes the readings before sending the data to KiwisIoT through Wi-Fi.&lt;/p&gt;

&lt;h3&gt;
  
  
  Circuit Connections
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;LDR Sensor Module&lt;/th&gt;
&lt;th&gt;ESP8266 NodeMCU&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;VCC&lt;/td&gt;
&lt;td&gt;3.3V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GND&lt;/td&gt;
&lt;td&gt;GND&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AO&lt;/td&gt;
&lt;td&gt;A0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DO&lt;/td&gt;
&lt;td&gt;Not connected&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  How the Circuit Works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The LDR sensor detects the surrounding light.&lt;/li&gt;
&lt;li&gt;The analog output (AO) sends the sensor reading to the ESP8266 A0 pin.&lt;/li&gt;
&lt;li&gt;The ESP8266 processes the reading and classifies the light condition as BRIGHT, MEDIUM, or DARK.&lt;/li&gt;
&lt;li&gt;The ESP8266 sends the light level and status to KiwisIoT through Wi-Fi.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  System Flow
&lt;/h3&gt;

&lt;p&gt;LDR Sensor → ESP8266 NodeMCU → Wi-Fi → KiwisIoT Dashboard&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Check that your particular NodeMCU board and LDR module are compatible with the stated voltage and analog-input range before powering the circuit.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Real-Time Working
&lt;/h2&gt;

&lt;p&gt;GlowGuard continuously monitors the surrounding light using an LDR sensor connected to the ESP8266 NodeMCU. The ESP8266 processes the sensor readings and sends the light level and status to the KiwisIoT platform through Wi-Fi.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flybx251bqa3noprhn7sr.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flybx251bqa3noprhn7sr.jpeg" alt=" " width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hardware Setup
&lt;/h3&gt;

&lt;p&gt;The LDR sensor is connected to the ESP8266 NodeMCU to detect changes in the surrounding light intensity.&lt;/p&gt;

&lt;h3&gt;
  
  
  KiwisIoT Dashboard Output
&lt;/h3&gt;

&lt;p&gt;The KiwisIoT dashboard displays the light level and its corresponding status. The system classifies the detected condition as BRIGHT, MEDIUM, or DARK.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example result:&lt;/strong&gt; Light Level: 607 | Status: MEDIUM&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Result
&lt;/h3&gt;

&lt;p&gt;GlowGuard successfully demonstrates IoT-based light monitoring by collecting sensor readings, processing the data, and displaying the results through an online dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;Through this project, I explored sensor interfacing, analog readings, Wi-Fi communication, Arduino programming, and IoT dashboard monitoring.&lt;/p&gt;

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

&lt;p&gt;I would like to extend GlowGuard with automatic light control, historical data graphs, notifications, and a protective enclosure.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;KiwisIoT Projects:&lt;br&gt;
&lt;a href="https://github.com/Kiwistron/KiwisIoT-Projects/blob/main/esp8266/001-ldr-kiwisiot/README.md" rel="noopener noreferrer"&gt;https://github.com/Kiwistron/KiwisIoT-Projects/blob/main/esp8266/001-ldr-kiwisiot/README.md&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Kiwistron/KiwisIoT-Projects" rel="noopener noreferrer"&gt;https://github.com/Kiwistron/KiwisIoT-Projects&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ESP8266 Arduino Core:&lt;br&gt;
&lt;a href="https://github.com/esp8266/Arduino" rel="noopener noreferrer"&gt;https://github.com/esp8266/Arduino&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading! I welcome your suggestions and feedback to improve this project.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>iot</category>
      <category>kiwisiot</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
