{"id":342,"date":"2026-07-15T13:32:27","date_gmt":"2026-07-15T06:32:27","guid":{"rendered":"https:\/\/navy007.com\/WP\/?p=342"},"modified":"2026-07-24T11:49:52","modified_gmt":"2026-07-24T04:49:52","slug":"342","status":"publish","type":"post","link":"https:\/\/navy007.com\/WP\/archives\/342","title":{"rendered":"ESP32 (EP.3) \u0e17\u0e33\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a sensor \u0e15\u0e48\u0e32\u0e07 \u0e46"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u0e15\u0e31\u0e49\u0e07\u0e41\u0e15\u0e48\u0e22\u0e38\u0e04\u0e02\u0e2d\u0e07 Arduino \u0e01\u0e47\u0e21\u0e35\u0e1e\u0e27\u0e01 sensor \u0e0a\u0e19\u0e34\u0e14\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e40\u0e01\u0e37\u0e2d\u0e1a 100 \u0e0a\u0e19\u0e34\u0e14\u0e01\u0e47\u0e27\u0e48\u0e32\u0e44\u0e14\u0e49&nbsp;&nbsp;\u0e21\u0e35\u0e17\u0e31\u0e49\u0e07 sensor \u0e41\u0e1a\u0e1a analog , digital&nbsp;&nbsp;\u0e0b\u0e36\u0e48\u0e07 sensor \u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19\u0e01\u0e47\u0e19\u0e33\u0e21\u0e32\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e1a ESP32 \u0e44\u0e14\u0e49\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c&nbsp;&nbsp;\u0e2a\u0e34\u0e48\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e14\u0e39\u0e01\u0e47\u0e04\u0e37\u0e2d sensor \u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e40\u0e25\u0e35\u0e49\u0e22\u0e07\u0e40\u0e17\u0e48\u0e32\u0e43\u0e14 5 \u0e42\u0e27\u0e25\u0e15\u0e4c\u0e2b\u0e23\u0e37\u0e2d 3.3 \u0e42\u0e27\u0e25\u0e15\u0e4c&nbsp;&nbsp;\u0e2b\u0e32\u0e01\u0e40\u0e1b\u0e47\u0e19 sensor \u0e43\u0e19\u0e22\u0e38\u0e04\u0e02\u0e2d\u0e07 Arduino \u0e01\u0e47\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1f\u0e40\u0e25\u0e35\u0e49\u0e22\u0e07 5 \u0e42\u0e27\u0e25\u0e15\u0e4c \u0e40\u0e21\u0e37\u0e48\u0e2d\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e01\u0e31\u0e1a ESP32 (\u0e0b\u0e36\u0e48\u0e07\u0e23\u0e31\u0e1a input \u0e40\u0e02\u0e49\u0e32 GPIO 3.3V)&nbsp;&nbsp;\u0e01\u0e47\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e25\u0e14\u0e41\u0e23\u0e07\u0e14\u0e31\u0e19\u0e25\u0e07\u0e08\u0e32\u0e01\u0e40\u0e01\u0e37\u0e2d\u0e1a 5V \u0e40\u0e1b\u0e47\u0e19 3.3V (\u0e43\u0e0a\u0e49 voltage divider \u0e07\u0e48\u0e32\u0e22\u0e2a\u0e38\u0e14)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e20\u0e32\u0e1e\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 sensors \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e1a ESP32 , Arduino<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/729\/091\/000\/mrlnw10os7qA64QyyxSho-o.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">sensor \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e25\u0e32\u0e22\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e16\u0e39\u0e01\u0e1c\u0e25\u0e34\u0e15\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e04\u0e23\u0e2d\u0e1a\u0e04\u0e25\u0e38\u0e21\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 IoT \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14&nbsp;&nbsp;\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e19\u0e21\u0e32\u0e01\u0e01\u0e47\u0e40\u0e0a\u0e48\u0e19 sensor \u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34 \u0e04\u0e27\u0e32\u0e21\u0e0a\u0e37\u0e49\u0e19 \u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07 \u0e23\u0e30\u0e14\u0e31\u0e1a\u0e40\u0e2a\u0e35\u0e22\u0e07 \u0e27\u0e31\u0e14\u0e23\u0e30\u0e22\u0e30\u0e17\u0e32\u0e07&nbsp;&nbsp;\u0e19\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e19\u0e35\u0e49\u0e22\u0e31\u0e07\u0e21\u0e35 sensor \u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e2d\u0e34\u0e40\u0e25\u0e47\u0e01\u0e17\u0e23\u0e2d\u0e19\u0e34\u0e01\u0e2a\u0e4c\u0e22\u0e38\u0e04\u0e40\u0e01\u0e48\u0e32\u0e21\u0e32\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e01\u0e31\u0e1a ESP32 \u0e01\u0e47\u0e44\u0e14\u0e49\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e0a\u0e48\u0e19 LDR , Thermistor , \u0e15\u0e31\u0e27\u0e23\u0e31\u0e1a\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 infrared , IR LED<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\uded1 \u0e15\u0e31\u0e27\u0e41\u0e23\u0e01\u0e01\u0e47\u0e04\u0e37\u0e2d&nbsp;<em><strong>DHT22<\/strong><\/em>&nbsp;&nbsp;\u0e21\u0e31\u0e19\u0e40\u0e1b\u0e47\u0e19 sensor \u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34\u0e01\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e0a\u0e37\u0e49\u0e19\u0e41\u0e1a\u0e1a digital \u0e01\u0e47\u0e04\u0e37\u0e2d\u0e21\u0e35\u0e02\u0e32 output \u0e40\u0e1e\u0e35\u0e22\u0e07\u0e02\u0e32\u0e40\u0e14\u0e35\u0e22\u0e27\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19\u0e41\u0e25\u0e30\u0e15\u0e48\u0e2d\u0e01\u0e31\u0e1a GPIO \u0e02\u0e2d\u0e07 ESP32 \u0e42\u0e14\u0e22\u0e15\u0e23\u0e07\u0e44\u0e14\u0e49\u0e40\u0e25\u0e22\u0e04\u0e23\u0e31\u0e1a\u0e40\u0e1e\u0e23\u0e32\u0e30\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e40\u0e25\u0e35\u0e49\u0e22\u0e07 3.3V&nbsp;&nbsp;\u0e02\u0e49\u0e32\u0e07\u0e43\u0e19 sensor \u0e15\u0e31\u0e27\u0e19\u0e35\u0e49\u0e08\u0e30\u0e21\u0e35 sensor \u0e23\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e0a\u0e37\u0e49\u0e19\u0e41\u0e25\u0e30 Thermister \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e23\u0e31\u0e1a\u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34\u0e41\u0e25\u0e30\u0e21\u0e35\u0e44\u0e21\u0e42\u0e04\u0e23\u0e04\u0e2d\u0e19\u0e42\u0e17\u0e23\u0e25\u0e40\u0e25\u0e2d\u0e23\u0e4c 8 bit \u0e02\u0e19\u0e32\u0e14\u0e08\u0e34\u0e4b\u0e27\u0e14\u0e49\u0e32\u0e19\u0e43\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e41\u0e1b\u0e25\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 analog \u0e08\u0e32\u0e01 sensor \u0e04\u0e27\u0e32\u0e21\u0e0a\u0e37\u0e49\u0e19\u0e41\u0e25\u0e30 thermister \u0e41\u0e1b\u0e25\u0e07\u0e44\u0e1b\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 serial&nbsp;&nbsp;\u0e41\u0e25\u0e30\u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e08\u0e32\u0e01 DHT22 \u0e40\u0e1b\u0e47\u0e19\u0e41\u0e1a\u0e1a digital output \u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19\u0e08\u0e36\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e17\u0e33\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a library \u0e02\u0e2d\u0e07\u0e21\u0e31\u0e19\u0e40\u0e2d\u0e07<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/729\/091\/000\/mrlnym4hhhxciZ3DzUh-o.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\uded1 \u0e15\u0e31\u0e27\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e04\u0e37\u0e2d&nbsp;<em><strong>HY-SRF05 Ultrasonic Module<\/strong><\/em>&nbsp;&nbsp;\u0e40\u0e1b\u0e47\u0e19 sensor \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e04\u0e25\u0e37\u0e48\u0e19\u0e40\u0e2a\u0e35\u0e22\u0e07\u0e04\u0e27\u0e32\u0e21\u0e16\u0e35\u0e48\u0e2a\u0e39\u0e07\u0e23\u0e30\u0e14\u0e31\u0e1a ultrasonic 40 KHz \u0e42\u0e14\u0e22\u0e2a\u0e48\u0e07\u0e04\u0e25\u0e37\u0e48\u0e19\u0e2d\u0e2d\u0e01\u0e44\u0e1b\u0e41\u0e25\u0e30\u0e04\u0e33\u0e19\u0e27\u0e13\u0e40\u0e27\u0e25\u0e32\u0e17\u0e35\u0e48\u0e04\u0e25\u0e37\u0e48\u0e19\u0e2a\u0e30\u0e17\u0e49\u0e2d\u0e19\u0e01\u0e25\u0e31\u0e1a\u0e21\u0e32 \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e27\u0e31\u0e14\u0e23\u0e30\u0e22\u0e30\u0e27\u0e31\u0e15\u0e16\u0e38\u0e44\u0e14\u0e49\u0e41\u0e21\u0e48\u0e19\u0e22\u0e33\u0e15\u0e31\u0e49\u0e07\u0e41\u0e15\u0e48 2 \u0e0b\u0e21. &#8211; 4 \u0e40\u0e21\u0e15\u0e23&nbsp;&nbsp;\u0e15\u0e31\u0e27\u0e19\u0e35\u0e49\u0e40\u0e1b\u0e47\u0e19 sensor \u0e17\u0e35\u0e48\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c\u0e43\u0e19\u0e15\u0e31\u0e27\u0e40\u0e2d\u0e07 \u0e01\u0e47\u0e04\u0e37\u0e2d\u0e21\u0e35 IC \u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e01\u0e33\u0e40\u0e19\u0e34\u0e14 ultrasonic \u0e41\u0e25\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e20\u0e32\u0e04\u0e23\u0e31\u0e1a echo \u0e02\u0e2d\u0e07\u0e04\u0e25\u0e37\u0e48\u0e19 ultrasonic \u0e01\u0e25\u0e31\u0e1a\u0e21\u0e32\u0e41\u0e1b\u0e25\u0e07\u0e21\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e04\u0e48\u0e32 timing \u0e44\u0e14\u0e49\u0e40\u0e25\u0e22<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/729\/091\/000\/mrlo8vkx2a5bTadpm3U4UF-o.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Timing diagram \u0e02\u0e2d\u0e07 HY-SRF05 Ultrasonic Module \u0e15\u0e32\u0e21\u0e20\u0e32\u0e1e\u0e19\u0e35\u0e49\u0e04\u0e23\u0e31\u0e1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/729\/091\/000\/mrlo98wgoXy47s05hQw-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e16\u0e36\u0e07\u0e41\u0e21\u0e49 Timing diagram \u0e08\u0e30\u0e14\u0e39\u0e0b\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e22\u0e38\u0e48\u0e07\u0e22\u0e32\u0e01&nbsp;&nbsp;\u0e41\u0e15\u0e48\u0e40\u0e27\u0e25\u0e32\u0e43\u0e2b\u0e49 AI \u0e40\u0e02\u0e35\u0e22\u0e19 code \u0e40\u0e23\u0e32\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e1a\u0e2d\u0e01\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e1e\u0e27\u0e01\u0e19\u0e35\u0e49\u0e40\u0e25\u0e22\u0e04\u0e23\u0e31\u0e1a \u0e40\u0e1e\u0e23\u0e32\u0e30 AI \u0e16\u0e39\u0e01 train \u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1e\u0e27\u0e01\u0e19\u0e35\u0e49\u0e21\u0e32\u0e2b\u0e21\u0e14\u0e41\u0e25\u0e49\u0e27 \u0e21\u0e31\u0e19\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2d\u0e2d\u0e01 code \u0e17\u0e35\u0e48\u0e2a\u0e2d\u0e14\u0e04\u0e25\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e1a timing diagram \u0e19\u0e35\u0e49\u0e41\u0e1a\u0e1a\u0e40\u0e1b\u0e4a\u0e30\u0e40\u0e25\u0e22&nbsp;&nbsp;\u0e43\u0e19 prompt \u0e40\u0e23\u0e32\u0e41\u0e04\u0e48\u0e23\u0e30\u0e1a\u0e38\u0e43\u0e2b\u0e49\u0e0a\u0e31\u0e14\u0e27\u0e48\u0e32\u0e02\u0e32 TRIG , Echo \u0e15\u0e48\u0e2d\u0e01\u0e31\u0e1a GPIO \u0e43\u0e14\u0e02\u0e2d\u0e07 ESP32<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 project \u0e27\u0e31\u0e14\u0e23\u0e30\u0e22\u0e30\u0e17\u0e32\u0e07 + LDR \u0e27\u0e31\u0e14\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e41\u0e2a\u0e14\u0e07\u0e04\u0e48\u0e32\u0e41\u0e2a\u0e07\u0e40\u0e1b\u0e47\u0e19 0 &#8211; 100%<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"ESP32 + HY-SRF05 Ultrasonic Module\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/Rws0dWtxazI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">ESP32 code \u0e02\u0e2d\u0e07 project \u0e19\u0e35\u0e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;Wire.h>\n#include &lt;Adafruit_GFX.h>\n#include &lt;Adafruit_SH110X.h>\n#include &lt;DHT.h>\n\n\/\/ OLED Configuration\n#define SCREEN_WIDTH 128\n#define SCREEN_HEIGHT 64\n#define OLED_ADDRESS 0x3C  \/\/ Common I2C address for these displays\n#define I2C_SDA 40\n#define I2C_SCL 42\nAdafruit_SH1106G display = Adafruit_SH1106G(SCREEN_WIDTH, SCREEN_HEIGHT, &amp;Wire, -1);\n\n\/\/ DHT22 Configuration\n#define DHTPIN 5\n#define DHTTYPE DHT22\nDHT dht(DHTPIN, DHTTYPE);\n\n\/\/ LDR Configuration\n#define LDR_PIN 1\n\n\/\/ HY-SRF05 Configuration\n#define TRIG_PIN 7\n#define ECHO_PIN 8\n\n\/\/ Timing Variables (Non-blocking using millis)\nunsigned long lastDHTRead = 0;\nunsigned long lastLDRRead = 0;\nunsigned long lastSonicRead = 0;\n\nconst long dhtInterval = 5000;   \/\/ 5 seconds\nconst long ldrInterval = 300;    \/\/ 300 ms\nconst long sonicInterval = 1000; \/\/ 1 second\n\n\/\/ Global variables to hold last read values\nfloat currentTemp = 0.0;\nfloat lightPercent = 0.0;\nfloat currentRange = 0.0;\n\nvoid setup() {\n  Serial.begin(115200);\n\n  \/\/ Initialize Custom I2C pins for ESP32-S3\n  Wire.begin(I2C_SDA, I2C_SCL);\n\n  \/\/ Initialize OLED\n  if (!display.begin(OLED_ADDRESS, true)) {\n    Serial.println(F(\"SH1106 OLED initialization failed!\"));\n    for (;;);\n  }\n  \n  display.clearDisplay();\n  display.setTextSize(1);\n  display.setTextColor(SH110X_WHITE);\n  display.display();\n\n  \/\/ Initialize DHT\n  dht.begin();\n\n  \/\/ Initialize Ultrasonic Pins\n  pinMode(TRIG_PIN, OUTPUT);\n  pinMode(ECHO_PIN, INPUT);\n\n  \/\/ Configure ADC attenuation if needed for 0-3V range\n  \/\/ By default, ESP32 Arduino Core 3.x configures ADC to 11dB (~0V - 3.3V)\n  analogSetPinAttenuation(LDR_PIN, ADC_11db);\n}\n\nvoid loop() {\n  unsigned long currentMillis = millis();\n  bool needUpdateDisplay = false;\n\n  \/\/ 1. Read DHT22 every 5 seconds\n  if (currentMillis - lastDHTRead >= dhtInterval) {\n    lastDHTRead = currentMillis;\n    float t = dht.readTemperature();\n    if (!isnan(t)) {\n      currentTemp = t;\n      needUpdateDisplay = true;\n    }\n  }\n\n  \/\/ 2 &amp; 3. Read LDR every 300 ms and map voltage\n  if (currentMillis - lastLDRRead >= ldrInterval) {\n    lastLDRRead = currentMillis;\n    \n    \/\/ Read raw ADC (ESP32-S3 has 12-bit ADC: 0 - 4095)\n    int rawADC = analogRead(LDR_PIN);\n    \n    \/\/ Convert to Voltage (assuming 3.3V VREF)\n    float voltage = (rawADC \/ 4095.0) * 3.3;\n    \n    \/\/ Map 1.0V - 3.0V to 0% - 100%\n    if (voltage &lt; 1.0) {\n      lightPercent = 0.0;\n    } else if (voltage > 3.0) {\n      lightPercent = 100.0;\n    } else {\n      \/\/ Linear interpolation formula: (value - in_min) * (out_max - out_min) \/ (in_max - in_min) + out_min\n      lightPercent = (voltage - 1.0) * (100.0 - 0.0) \/ (3.0 - 1.0) + 0.0;\n    }\n    needUpdateDisplay = true;\n  }\n\n  \/\/ 4. Read HY-SRF05 Ultrasonic every 1 second\n  if (currentMillis - lastSonicRead >= sonicInterval) {\n    lastSonicRead = currentMillis;\n    \n    \/\/ Trigger the sensor\n    digitalWrite(TRIG_PIN, LOW);\n    delayMicroseconds(2);\n    digitalWrite(TRIG_PIN, HIGH);\n    delayMicroseconds(10);\n    digitalWrite(TRIG_PIN, LOW);\n    \n    \/\/ Read echo duration (travel time in microseconds)\n    long duration = pulseIn(ECHO_PIN, HIGH, 30000); \/\/ 30ms timeout (~5 meters max)\n    \n    \/\/ Calculate distance in cm (Speed of sound is ~343 m\/s or 0.0343 cm\/us)\n    if (duration > 0) {\n      currentRange = (duration * 0.0343) \/ 2.0;\n    } else {\n      currentRange = -1.0; \/\/ Out of range \/ timeout indicator\n    }\n    needUpdateDisplay = true;\n  }\n\n  \/\/ Update OLED if any data has changed\n  if (needUpdateDisplay) {\n    updateOLED();\n  }\n}\n\nvoid updateOLED() {\n  display.clearDisplay();\n  \n  \/\/ Line 1: Temperature\n  display.setCursor(0, 4);\n  display.print(\"Temp: \");\n  display.print(currentTemp, 1); \/\/ 1 decimal place\n  display.print(\" C\");\n  \n  \/\/ Line 2: Light Level\n  display.setCursor(0, 24);\n  display.print(\"Light level = \");\n  display.print(lightPercent, 1); \/\/ 1 decimal place\n  display.print(\" %\");\n  \n  \/\/ Line 3: Range\n  display.setCursor(0, 44);\n  if (currentRange >= 0) {\n    display.print(\"Range = \");\n    display.print(currentRange, 1); \/\/ 1 decimal place\n    display.print(\" cm\");\n  } else {\n    display.print(\"Range = Out of Bound\");\n  }\n  \n  display.display();\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e40\u0e1b\u0e47\u0e19 sensor \u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e02\u0e2d\u0e07\u0e41\u0e2a\u0e07\u0e01\u0e47\u0e04\u0e37\u0e2d LDR (Light Dependent Resistor)&nbsp;&nbsp;\u0e15\u0e31\u0e27 LDR \u0e19\u0e35\u0e49\u0e21\u0e35\u0e21\u0e32\u0e15\u0e31\u0e49\u0e07\u0e41\u0e15\u0e48\u0e22\u0e38\u0e04\u0e01\u0e48\u0e2d\u0e19\u0e44\u0e21\u0e42\u0e04\u0e23\u0e04\u0e2d\u0e19\u0e42\u0e17\u0e23\u0e25\u0e40\u0e25\u0e2d\u0e23\u0e4c\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e1a \u0e21\u0e31\u0e19\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e31\u0e27\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e04\u0e48\u0e32\u0e44\u0e14\u0e49\u0e15\u0e32\u0e21\u0e04\u0e27\u0e32\u0e21\u0e40\u0e02\u0e49\u0e21\u0e02\u0e2d\u0e07\u0e41\u0e2a\u0e07&nbsp;&nbsp;\u0e23\u0e38\u0e48\u0e19\u0e17\u0e35\u0e48\u0e19\u0e34\u0e22\u0e21\u0e43\u0e0a\u0e49\u0e01\u0e47\u0e08\u0e30\u0e21\u0e35\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e32\u0e41\u0e1a\u0e1a\u0e43\u0e19\u0e20\u0e32\u0e1e\u0e19\u0e35\u0e49\u0e15\u0e31\u0e27\u0e40\u0e25\u0e47\u0e01\u0e40\u0e17\u0e48\u0e32\u0e2b\u0e31\u0e27\u0e40\u0e02\u0e47\u0e21\u0e2b\u0e21\u0e38\u0e14\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19&nbsp;&nbsp;\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e41\u0e2a\u0e07\u0e08\u0e49\u0e32\u0e21\u0e32\u0e01\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e08\u0e30\u0e25\u0e14\u0e25\u0e07\u0e40\u0e2b\u0e25\u0e37\u0e2d\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13 1 k\u03a9 \u0e41\u0e25\u0e30\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e21\u0e37\u0e14\u0e40\u0e01\u0e37\u0e2d\u0e1a\u0e2a\u0e19\u0e34\u0e17\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e08\u0e30\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e02\u0e36\u0e49\u0e19\u0e44\u0e1b\u0e2a\u0e39\u0e07\u0e16\u0e36\u0e07\u0e23\u0e30\u0e14\u0e31\u0e1a 100 -200&nbsp;&nbsp;k\u03a9 \u0e04\u0e23\u0e31\u0e1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/729\/091\/000\/mrloghqb1kc1ttQGp02avl-o.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e04\u0e27\u0e32\u0e21\u0e23\u0e39\u0e49\u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19\u0e17\u0e32\u0e07\u0e14\u0e49\u0e32\u0e19\u0e2d\u0e34\u0e40\u0e25\u0e47\u0e01\u0e17\u0e23\u0e2d\u0e19\u0e34\u0e01\u0e2a\u0e4c\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e1a LDR \u0e01\u0e47\u0e04\u0e37\u0e2d\u0e27\u0e07\u0e08\u0e23\u0e41\u0e1a\u0e48\u0e07\u0e41\u0e23\u0e07\u0e14\u0e31\u0e19 (Voltage divider) \u0e01\u0e47\u0e04\u0e37\u0e2d\u0e40\u0e23\u0e32\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e15\u0e48\u0e2d LDR \u0e01\u0e31\u0e1a\u0e15\u0e31\u0e27\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19 1 \u0e15\u0e31\u0e27\u0e15\u0e32\u0e21\u0e27\u0e07\u0e08\u0e23\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07\u0e19\u0e35\u0e49&nbsp;&nbsp;\u0e2a\u0e48\u0e27\u0e19 R \u0e08\u0e30\u0e43\u0e0a\u0e49\u0e04\u0e48\u0e32\u0e40\u0e17\u0e48\u0e32\u0e44\u0e2b\u0e23\u0e48\u0e01\u0e47\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a\u0e27\u0e48\u0e32\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e41\u0e2a\u0e07\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e27\u0e31\u0e14\u0e2b\u0e23\u0e37\u0e2d\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e2d\u0e14\u0e04\u0e25\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e02\u0e2d\u0e07 LDR \u0e17\u0e35\u0e48\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e44\u0e1b\u0e21\u0e32\u0e01\u0e19\u0e49\u0e2d\u0e22\u0e40\u0e17\u0e48\u0e32\u0e43\u0e14&nbsp;&nbsp;\u0e0b\u0e36\u0e48\u0e07\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e40\u0e02\u0e49\u0e21\u0e41\u0e2a\u0e07\u0e01\u0e47\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25\u0e44\u0e14\u0e49\u0e2b\u0e25\u0e32\u0e22\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e01\u0e31\u0e1a\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a code \u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e08\u0e30\u0e40\u0e02\u0e35\u0e22\u0e19\u0e04\u0e23\u0e31\u0e1a&nbsp;&nbsp;\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e0a\u0e48\u0e19\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e23\u0e30\u0e14\u0e31\u0e1a 0 \u0e16\u0e36\u0e07 100% \u0e2b\u0e23\u0e37\u0e2d\u0e2d\u0e32\u0e08\u0e08\u0e30\u0e41\u0e1b\u0e25\u0e07\u0e40\u0e17\u0e35\u0e22\u0e1a\u0e40\u0e1b\u0e47\u0e19\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e2b\u0e19\u0e48\u0e27\u0e22 Lux \u0e01\u0e47\u0e44\u0e14\u0e49<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e20\u0e32\u0e1e\u0e27\u0e07\u0e08\u0e23 voltage divider + LDR + NTC \u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32 GPIO \u0e02\u0e2d\u0e07 ESP32<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/729\/091\/000\/mrlogwla1q9vo8ORyMbqBQ-o.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e01\u0e23\u0e13\u0e35\u0e02\u0e2d\u0e07 LDR , Thermistor (NTC) \u0e1c\u0e21\u0e08\u0e30\u0e02\u0e2d\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e25\u0e07\u0e25\u0e36\u0e01\u0e43\u0e19\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e02\u0e2d\u0e07\u0e27\u0e34\u0e28\u0e27\u0e01\u0e23\u0e23\u0e21\u0e41\u0e25\u0e30\u0e04\u0e13\u0e34\u0e15\u0e28\u0e32\u0e2a\u0e15\u0e23\u0e4c\u0e2b\u0e19\u0e48\u0e2d\u0e22\u0e19\u0e36\u0e07 \u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e08\u0e32\u0e01\u0e1c\u0e21\u0e15\u0e31\u0e49\u0e07\u0e43\u0e08\u0e08\u0e30\u0e40\u0e02\u0e35\u0e22\u0e19\u0e1a\u0e17\u0e04\u0e27\u0e32\u0e21\u0e43\u0e2b\u0e49\u0e25\u0e07\u0e25\u0e36\u0e01\u0e43\u0e19\u0e17\u0e24\u0e29\u0e0e\u0e35\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e35\u0e48\u0e08\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2d\u0e2d\u0e01\u0e41\u0e1a\u0e1a project \u0e40\u0e2d\u0e07\u0e44\u0e14\u0e49<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><strong>\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e44\u0e1b\u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e19\u0e48\u0e27\u0e22 Lux \u0e14\u0e49\u0e27\u0e22 LDR<\/strong><\/em><br>\u0e02\u0e2d\u0e40\u0e23\u0e34\u0e48\u0e21\u0e17\u0e35\u0e48\u0e01\u0e23\u0e32\u0e1f\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e02\u0e2d\u0e07 LDR \u0e01\u0e48\u0e2d\u0e19<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/729\/091\/000\/mrlojnachtO5XtSeo5a-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e08\u0e32\u0e01\u0e20\u0e32\u0e1e\u0e1a\u0e19&nbsp;&nbsp;\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19 LDR \u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e44\u0e21\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e0a\u0e34\u0e07\u0e40\u0e2a\u0e49\u0e19\u0e01\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e02\u0e2d\u0e07\u0e41\u0e2a\u0e07 (A \u0e43\u0e19\u0e20\u0e32\u0e1e) \u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e0a\u0e34\u0e07\u0e40\u0e2a\u0e49\u0e19\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e04\u0e33\u0e19\u0e27\u0e13\u0e07\u0e48\u0e32\u0e22 \u0e46 \u0e44\u0e21\u0e48\u0e44\u0e14\u0e49&nbsp;&nbsp;\u0e40\u0e23\u0e32\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e17\u0e33\u0e14\u0e31\u0e07\u0e19\u0e35\u0e49 &#8230;.<br>\ud83d\uded1 \u0e14\u0e36\u0e07 raw data \u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19 vs \u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e08\u0e32\u0e01\u0e01\u0e23\u0e32\u0e1f\u0e43\u0e19 datasheet (B \u0e43\u0e19\u0e20\u0e32\u0e1e) \u0e0b\u0e36\u0e48\u0e07\u0e07\u0e32\u0e19\u0e41\u0e1a\u0e1a\u0e19\u0e35\u0e49 AI \u0e16\u0e19\u0e31\u0e14\u0e21\u0e32\u0e01 \u0e40\u0e1e\u0e35\u0e22\u0e07\u0e41\u0e04\u0e48\u0e42\u0e22\u0e19\u0e20\u0e32\u0e1e\u0e01\u0e23\u0e32\u0e1f\u0e19\u0e35\u0e49\u0e40\u0e02\u0e49\u0e32 AI \u0e01\u0e47\u0e08\u0e30\u0e44\u0e14\u0e49\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02 raw data \u0e02\u0e2d\u0e07\u0e20\u0e32\u0e1e\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14<br>\ud83d\uded1 \u0e04\u0e27\u0e32\u0e21\u0e2a\u0e31\u0e21\u0e1e\u0e31\u0e19\u0e18\u0e4c\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e0a\u0e34\u0e07\u0e40\u0e2a\u0e49\u0e19\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e01\u0e31\u0e1a\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49 Power law \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2b\u0e32\u0e2a\u0e21\u0e01\u0e32\u0e23\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e01\u0e31\u0e1a\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07 (Lux) &#8230;. \u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e04\u0e33\u0e19\u0e27\u0e13\u0e15\u0e32\u0e21\u0e20\u0e32\u0e1e\u0e25\u0e48\u0e32\u0e07<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/729\/091\/000\/mrlok22i1egk5hyFX1tQmm-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">sensor \u0e15\u0e31\u0e27\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e01\u0e47\u0e04\u0e37\u0e2d&nbsp;<em><strong>Thermistor<\/strong><\/em>&nbsp;\u0e2b\u0e23\u0e37\u0e2d\u0e2d\u0e35\u0e01\u0e0a\u0e37\u0e48\u0e2d\u0e04\u0e37\u0e2d NTC (Negative Temperature Coefficient) \u0e15\u0e31\u0e27\u0e19\u0e35\u0e49\u0e21\u0e31\u0e19\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e31\u0e27\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e44\u0e1b\u0e15\u0e32\u0e21\u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34\u0e04\u0e23\u0e31\u0e1a&nbsp;&nbsp;\u0e0b\u0e36\u0e48\u0e07 Negative Temperature Coefficient \u0e2b\u0e21\u0e32\u0e22\u0e04\u0e27\u0e32\u0e21\u0e27\u0e48\u0e32\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19 NTC \u0e08\u0e30\u0e25\u0e14\u0e25\u0e07\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34\u0e40\u0e1e\u0e34\u0e48\u0e21&nbsp;&nbsp;Thermistor \u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e1a\u0e27\u0e07\u0e08\u0e23\u0e41\u0e1a\u0e48\u0e07\u0e41\u0e23\u0e07\u0e14\u0e31\u0e19\u0e41\u0e1a\u0e1a\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e1a LDR&nbsp;&nbsp;\u0e41\u0e25\u0e30\u0e21\u0e31\u0e19\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e43\u0e2b\u0e49\u0e04\u0e48\u0e32\u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34\u0e41\u0e1a\u0e1a\u0e40\u0e1a\u0e47\u0e14\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e01\u0e31\u0e1a sensor DHT22 \u0e17\u0e35\u0e48\u0e01\u0e25\u0e48\u0e32\u0e27\u0e44\u0e1b\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19&nbsp;&nbsp;\u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e17\u0e33\u0e01\u0e32\u0e23\u0e27\u0e31\u0e14\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e02\u0e2d\u0e07 Thermistor \u0e40\u0e17\u0e35\u0e22\u0e1a\u0e01\u0e31\u0e1a\u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e08\u0e30\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e07\u0e32\u0e19\u0e19\u0e31\u0e49\u0e19 \u0e46 \u0e42\u0e14\u0e22\u0e40\u0e09\u0e1e\u0e32\u0e30 \u0e41\u0e25\u0e30\u0e2d\u0e2d\u0e01\u0e41\u0e1a\u0e1a\u0e27\u0e07\u0e08\u0e23\u0e41\u0e1a\u0e48\u0e07\u0e41\u0e23\u0e07\u0e14\u0e31\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e41\u0e23\u0e07\u0e14\u0e31\u0e19\u0e17\u0e35\u0e48\u0e08\u0e30\u0e40\u0e02\u0e49\u0e32 GPIO \u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e2a\u0e21\u0e01\u0e31\u0e1a code \u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e40\u0e02\u0e35\u0e22\u0e19<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 Thermistor \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e41\u0e2a\u0e14\u0e07\u0e04\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19 \u2103&nbsp;&nbsp;\u0e2a\u0e21\u0e01\u0e32\u0e23\u0e08\u0e30\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e08\u0e32\u0e01 LDR \u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e08\u0e32\u0e01\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e01\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e23\u0e49\u0e2d\u0e19\u0e02\u0e2d\u0e07\u0e21\u0e31\u0e19\u0e41\u0e1b\u0e23\u0e1c\u0e01\u0e1c\u0e31\u0e19\u0e41\u0e25\u0e30\u0e44\u0e21\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e0a\u0e34\u0e07\u0e40\u0e2a\u0e49\u0e19 \u0e41\u0e25\u0e30\u0e43\u0e19\u0e17\u0e32\u0e07\u0e04\u0e13\u0e34\u0e15\u0e28\u0e32\u0e2a\u0e15\u0e23\u0e4c\u0e41\u0e25\u0e49\u0e27\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e02\u0e2d\u0e07\u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34 &#8211; \u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e08\u0e30\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e08\u0e32\u0e01 Power law&nbsp;&nbsp;\u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19\u0e08\u0e36\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e2a\u0e21\u0e01\u0e32\u0e23\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e0b\u0e36\u0e48\u0e07\u0e17\u0e33\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e14\u0e35\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e23\u0e1c\u0e01\u0e1c\u0e31\u0e19\u0e41\u0e25\u0e30\u0e44\u0e21\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e0a\u0e34\u0e07\u0e40\u0e2a\u0e49\u0e19 \u0e01\u0e47\u0e04\u0e37\u0e2d\u0e2a\u0e21\u0e01\u0e32\u0e23&nbsp;<em><strong>Steinhart-Hart Equation<\/strong><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e01\u0e32\u0e23\u0e04\u0e33\u0e19\u0e27\u0e13\u0e01\u0e47\u0e40\u0e23\u0e34\u0e48\u0e21\u0e08\u0e32\u0e01\u0e43\u0e0a\u0e49\u0e01\u0e23\u0e32\u0e1f\u0e08\u0e32\u0e01 datasheet \u0e02\u0e2d\u0e07 Thermistor \u0e08\u0e32\u0e01\u0e40\u0e0a\u0e48\u0e19\u0e40\u0e04\u0e22\u0e04\u0e23\u0e31\u0e1a\u0e42\u0e14\u0e22\u0e19\u0e33\u0e01\u0e23\u0e32\u0e1f\u0e21\u0e32\u0e2b\u0e32\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e43\u0e19 3 \u0e0a\u0e48\u0e27\u0e07\u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34 \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e02\u0e2d\u0e07\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04\u0e19\u0e35\u0e49\u0e15\u0e31\u0e49\u0e07\u0e43\u0e08\u0e08\u0e30\u0e43\u0e2b\u0e49\u0e27\u0e31\u0e14\u0e43\u0e19\u0e0a\u0e48\u0e27\u0e07 0 &#8211; 100 \u2103&nbsp;&nbsp;\u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19\u0e08\u0e36\u0e07\u0e40\u0e2d\u0e32\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e17\u0e35\u0e48 0&nbsp;&nbsp;50 \u0e41\u0e25\u0e30 100 \u2103 \u0e08\u0e32\u0e01\u0e01\u0e23\u0e32\u0e1f\u0e21\u0e32\u0e04\u0e34\u0e14 \u0e41\u0e25\u0e30\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e41\u0e17\u0e19\u0e04\u0e48\u0e32\u0e25\u0e07\u0e43\u0e19 Steinhart-Hart Equation \u0e41\u0e25\u0e49\u0e27\u0e01\u0e47\u0e08\u0e30\u0e44\u0e14\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e04\u0e48\u0e32 A B C \u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e15\u0e32\u0e21\u0e20\u0e32\u0e1e\u0e04\u0e23\u0e31\u0e1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/729\/091\/000\/mrlom8dh1vv5Xzb8qIVtq0-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/729\/091\/000\/mrlomz0e25i0vyDF9VXFnh-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 project LDR , Thermistor \u0e41\u0e2a\u0e14\u0e07\u0e16\u0e36\u0e07\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e32\u0e19\u0e17\u0e32\u0e19\u0e02\u0e2d\u0e07 LDR , Thermistor \u0e17\u0e35\u0e48\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e44\u0e1b\u0e15\u0e32\u0e21\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e41\u0e25\u0e30\u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"ESP32 + LDR + Thermistor\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/Bev2kerRR5I?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">ESP32 code \u0e02\u0e2d\u0e07 project \u0e19\u0e35\u0e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Pin Definitions\nconst int LED_1 = 11;      \/\/ Controlled by GPIO 7 voltage\nconst int LED_2 = 13;      \/\/ Controlled by GPIO 8 voltage\nconst int ANALOG_PIN_1 = 7;\nconst int ANALOG_PIN_2 = 8;\n\n\/\/ Voltage Thresholds\nconst float THRESHOLD_1 = 2.8;\nconst float THRESHOLD_2 = 2.5;\n\n\/\/ Timing Constants\nconst unsigned long READ_INTERVAL = 300;  \/\/ 0.3 seconds in milliseconds\nconst unsigned long FLASH_INTERVAL = 100; \/\/ 5 Hz means 5 full cycles per second (100ms ON, 100ms OFF)\n\n\/\/ Timing Variables\nunsigned long lastReadTime = 0;\nunsigned long lastFlashTime = 0;\n\n\/\/ LED States\nbool led1Flashing = false;\nbool led2Flashing = false;\nbool flashState = false;\n\n\/\/ ESP32-S3 ADC Configuration\n\/\/ By default, attenuation is set to 11dB (on Core v3.x), allowing a range of 0V to ~3.3V.\n\/\/ The ADC resolution is 12-bit (0 to 4095).\nconst float ADC_VREF = 3.3;\nconst int ADC_MAX_VALUE = 4095;\n\nvoid setup() {\n  Serial.begin(115200);\n  \n  \/\/ Configure LED pins as outputs\n  pinMode(LED_1, OUTPUT);\n  pinMode(LED_2, OUTPUT);\n  \n  \/\/ Ensure LEDs start turned off\n  digitalWrite(LED_1, LOW);\n  digitalWrite(LED_2, LOW);\n\n  \/\/ Configure ADC resolution\n  analogReadResolution(12);\n}\n\nvoid loop() {\n  unsigned long currentMillis = millis();\n\n  \/\/ Task 1: Read Voltages every 0.3 seconds (300 ms)\n  if (currentMillis - lastReadTime >= READ_INTERVAL) {\n    lastReadTime = currentMillis;\n\n    \/\/ Read raw ADC values\n    int raw1 = analogRead(ANALOG_PIN_1);\n    int raw2 = analogRead(ANALOG_PIN_2);\n\n    \/\/ Convert raw values to voltage\n    float voltage1 = (raw1 * ADC_VREF) \/ ADC_MAX_VALUE;\n    float voltage2 = (raw2 * ADC_VREF) \/ ADC_MAX_VALUE;\n\n    \/\/ Print to Serial Monitor for debugging\n    Serial.printf(\"GPIO 7: %.2f V | GPIO 8: %.2f V\\n\", voltage1, voltage2);\n\n    \/\/ Check thresholds to enable\/disable flashing flags\n    led1Flashing = (voltage1 >= THRESHOLD_1);\n    led2Flashing = (voltage2 >= THRESHOLD_2);\n  }\n\n  \/\/ Task 2: Handle 5 Hz Flashing (Toggles state every 100 ms)\n  if (currentMillis - lastFlashTime >= FLASH_INTERVAL) {\n    lastFlashTime = currentMillis;\n    flashState = !flashState; \/\/ Invert the common flash state flag\n\n    \/\/ Handle LED 1 (GPIO 11)\n    if (led1Flashing) {\n      digitalWrite(LED_1, flashState);\n    } else {\n      digitalWrite(LED_1, LOW); \/\/ Force off if below threshold\n    }\n\n    \/\/ Handle LED 2 (GPIO 13)\n    if (led2Flashing) {\n      digitalWrite(LED_2, flashState);\n    } else {\n      digitalWrite(LED_2, LOW); \/\/ Force off if below threshold\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 project LDR , Thermistor \u0e41\u0e2a\u0e14\u0e07\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e40\u0e1b\u0e47\u0e19 Lux \u0e41\u0e25\u0e30\u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34\u0e40\u0e1b\u0e47\u0e19 \u2103<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 LDR + Thermistor + ESP32 \u0e41\u0e2a\u0e14\u0e07\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07 , \u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/yrxXrDqxWvQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">ESP32 code \u0e02\u0e2d\u0e07 project \u0e19\u0e35\u0e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;SPI.h>\n#include &lt;Wire.h>\n#include &lt;Adafruit_GFX.h>\n#include &lt;Adafruit_SH110X.h>\n\n\/\/ --- Pin Allocations ---\n#define LDR_PIN 1          \/\/ LDR Divider Input\n#define NTC_PIN 5          \/\/ NTC Divider Input\n#define I2C_SDA 40         \/\/ Custom I2C Data Pin\n#define I2C_SCL 42         \/\/ Custom I2C Clock Pin\n\n\/\/ --- Hardware Parameter Constants ---\n#define VCC 3.38           \/\/ Supply Voltage as specified\n#define LDR_RF 4700.0      \/\/ Fixed Resistor for LDR divider (4.7k)\n#define NTC_RF 3300.0      \/\/ Optimized Fixed Resistor for NTC divider (3.3k)\n\n\/\/ --- Derived Curve Mathematical Parameters ---\n#define LDR_A 70000.0      \n#define LDR_GAMMA 0.715    \n\n\/\/ Calculated Steinhart-Hart Coefficients for the bottom curve\n#define ST_A 0.0012215    \n#define ST_B 0.0002443    \n#define ST_C 0.000000346   \n\n\/\/ --- OLED Display Settings ---\n#define SCREEN_ADDRESS 0x3C\nAdafruit_SH1106G display = Adafruit_SH1106G(128, 64, &amp;Wire, -1);\n\nvoid setup() {\n  Serial.begin(115200);\n\n  \/\/ Initialize custom I2C interface pins for ESP32-S3\n  Wire.begin(I2C_SDA, I2C_SCL);\n  \n  \/\/ Set ADC Resolution to 12-Bit (0-4095 range)\n  analogReadResolution(12);\n\n  \/\/ Initialize SH1106 Display Panel\n  if(!display.begin(SCREEN_ADDRESS, true)) {\n    Serial.println(F(\"SH1106 allocation failed\"));\n    for(;;);\n  }\n  \n  display.clearDisplay();\n  display.setTextColor(SH110X_WHITE);\n  display.display();\n}\n\nvoid loop() {\n  \/\/ ==========================================\n  \/\/ 1. ASYNCHRONOUS LDR LUX CALCULATION\n  \/\/ ==========================================\n  int ldrAdc = analogRead(LDR_PIN);\n  if (ldrAdc &lt;= 0) ldrAdc = 1;\n  if (ldrAdc >= 4095) ldrAdc = 4094;\n\n  \/\/ Linearize to ADC Voltage Scale (~3.1V Internal Max Reference)\n  float ldrVolt = (float)ldrAdc * (3.1 \/ 4095.0);\n  float ldrResistance = LDR_RF * ((VCC \/ ldrVolt) - 1.0);\n  float lux = pow((LDR_A \/ ldrResistance), (1.0 \/ LDR_GAMMA));\n\n  \/\/ Limit bounds safety clamp\n  if(lux &lt; 0) lux = 0;\n\n  \/\/ ==========================================\n  \/\/ 2. ASYNCHRONOUS NTC TEMPERATURE CALCULATION\n  \/\/ ==========================================\n  int ntcAdc = analogRead(NTC_PIN);\n  if (ntcAdc &lt;= 0) ntcAdc = 1;\n  if (ntcAdc >= 4095) ntcAdc = 4094;\n\n  float ntcVolt = (float)ntcAdc * (3.1 \/ 4095.0);\n  float ntcResistance = NTC_RF * ((VCC \/ ntcVolt) - 1.0);\n\n  \/\/ Steinhart-Hart Implementation\n  float logR = log(ntcResistance);\n  float steinhartK = 1.0 \/ (ST_A + (ST_B * logR) + (ST_C * logR * logR * logR));\n  float tempCelsius = steinhartK - 273.15;\n\n  \/\/ ==========================================\n  \/\/ 3. OLED MONITOR UPDATE RENDERING\n  \/\/ ==========================================\n  display.clearDisplay();\n  \n  \/\/ \/\/ Line 1: Temperature Reading (Decreased to Text Size 1)\n  display.setTextSize(1);\n  display.setCursor(0, 4); \/\/ Kept near the top\n  display.print(\"Temp = \");\n  display.print(tempCelsius, 1);\n  display.print(\" C\");\n\n  \/\/ Line 2: Illumination Level Reading (Decreased to Text Size 1)\n  \/\/ Adjusted the cursors so the text flows tightly together on a smaller scale\n  display.setCursor(0, 24);\n  display.print(\"Brightness is =\");\n  display.setCursor(0, 36);\n  display.print((int)lux);\n  display.print(\" Lux\");\n\n  display.display();\n\n  \/\/ 1-second background refresh iteration delay\n  delay(1000);\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0e15\u0e31\u0e49\u0e07\u0e41\u0e15\u0e48\u0e22\u0e38\u0e04\u0e02\u0e2d\u0e07 Arduino \u0e01\u0e47\u0e21\u0e35\u0e1e\u0e27\u0e01 sensor \u0e0a\u0e19\u0e34\u0e14\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e40\u0e01\u0e37\u0e2d\u0e1a 100 \u0e0a\u0e19\u0e34\u0e14\u0e01\u0e47\u0e27\u0e48\u0e32\u0e44\u0e14\u0e49&nbsp;&nbsp;\u0e21\u0e35\u0e17\u0e31\u0e49\u0e07 sensor \u0e41\u0e1a\u0e1a analog , digital&nbsp;&nbsp;\u0e0b\u0e36\u0e48\u0e07 sensor \u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19\u0e01\u0e47\u0e19\u0e33\u0e21\u0e32\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e1a ESP32 \u0e44\u0e14\u0e49\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c&nbsp;&nbsp;\u0e2a\u0e34\u0e48\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e14\u0e39\u0e01\u0e47\u0e04\u0e37\u0e2d sensor \u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e40\u0e25\u0e35\u0e49\u0e22\u0e07\u0e40\u0e17\u0e48\u0e32\u0e43\u0e14 5 \u0e42\u0e27\u0e25\u0e15\u0e4c\u0e2b\u0e23\u0e37\u0e2d 3.3 \u0e42\u0e27\u0e25\u0e15\u0e4c&nbsp;&nbsp;\u0e2b\u0e32\u0e01\u0e40\u0e1b\u0e47\u0e19 sensor \u0e43\u0e19\u0e22\u0e38\u0e04\u0e02\u0e2d\u0e07 Arduino \u0e01\u0e47\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1f\u0e40\u0e25\u0e35\u0e49\u0e22\u0e07 5 \u0e42\u0e27\u0e25\u0e15\u0e4c \u0e40\u0e21\u0e37\u0e48\u0e2d\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e01\u0e31\u0e1a ESP32 (\u0e0b\u0e36\u0e48\u0e07\u0e23\u0e31\u0e1a input \u0e40\u0e02\u0e49\u0e32 GPIO 3.3V)&nbsp;&nbsp;\u0e01\u0e47\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e25\u0e14\u0e41\u0e23\u0e07\u0e14\u0e31\u0e19\u0e25\u0e07\u0e08\u0e32\u0e01\u0e40\u0e01\u0e37\u0e2d\u0e1a 5V \u0e40\u0e1b\u0e47\u0e19 3.3V (\u0e43\u0e0a\u0e49 voltage divider \u0e07\u0e48\u0e32\u0e22\u0e2a\u0e38\u0e14) \u0e20\u0e32\u0e1e\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 sensors \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e1a ESP32 , Arduino sensor \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e25\u0e32\u0e22\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e16\u0e39\u0e01\u0e1c\u0e25\u0e34\u0e15\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e04\u0e23\u0e2d\u0e1a\u0e04\u0e25\u0e38\u0e21\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 IoT \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14&nbsp;&nbsp;\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e19\u0e21\u0e32\u0e01\u0e01\u0e47\u0e40\u0e0a\u0e48\u0e19 sensor &hellip; <a href=\"https:\/\/navy007.com\/WP\/archives\/342\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;ESP32 (EP.3) \u0e17\u0e33\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a sensor \u0e15\u0e48\u0e32\u0e07 \u0e46&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[260,3],"tags":[254,261,263,262],"class_list":["post-342","post","type-post","status-publish","format-standard","hentry","category-arduino-esp32","category-3","tag-esp32","tag-ldr","tag-ntc","tag-thermistor"],"_links":{"self":[{"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts\/342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/comments?post=342"}],"version-history":[{"count":3,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts\/342\/revisions"}],"predecessor-version":[{"id":345,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts\/342\/revisions\/345"}],"wp:attachment":[{"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/media?parent=342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/categories?post=342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/tags?post=342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}