Вежба: Сензор светлости са ESP32 платформом
У овој вежби ученици упознају рад сензора светлости и његову примену у комбинацији са ESP32 микроконтролером. Помоћу аналогног улаза очитава се ниво осветљења у околини, а затим се та вредност користи за приказ информација у Serial Monitor-у или за управљање LED диодом.
Вежба представља добар увод у рад са аналогним сензорима и повезује:
- рад са ESP32 платформи,
- аналогно очитавање помоћу ADC конвертора,
- сензорске системе и мерење осветљења,
- основе аутоматског управљања,
- Arduino програмирање.

ESP32 + сензор светлости
Основна поставка за мерење нивоа осветљења у околини.
📑 Садржај
- Шта је сензор светлости?
- Фоторезистор и слични елементи
- Потребна опрема
- Повезивање компоненти
- Вежба 1 – Мерење светлости и Serial Monitor
- Вежба 2 – LED диода која јаче светли у мраку
- Могућа проширења пројекта
- На шта треба обратити пажњу
Шта је сензор светлости?
Сензор светлости је електронска компонента која омогућава да се детектује јачина светлости у окружењу. У зависности од врсте сензора, промена осветљења може да доведе до промене отпора, напона или дигиталног сигнала.
У овој вежби користимо сензор који се понаша као део напонског делитеља, а ESP32 затим чита промене на аналогном улазу. На основу тога можемо да проценимо да ли је у просторији јаче светло или је присутан мрак.

Принцип рада
Светлосни сензор мења електрична својства у зависности од количине светлости.
Фоторезистор и слични елементи
Један од најчешћих елемената за мерење светлости је фоторезистор (LDR – Light Dependent Resistor). Његов отпор се мења у зависности од количине светлости која пада на његову површину. Када је светлости више, отпор је мањи, а када је светлости мање, отпор расте.
Више о једноставном мерењу осветљења помоћу light сензора може се видети и на овој страни: мерење осветљења помоћу light сензора и ESP32.
Напомена
У овој лекцији се акценат ставља на практично очитавање вредности светлости, њихово приказивање у серијском монитору и каснију примену за управљање LED диодом.
Овакав приступ је веома користан у аутоматским системима осветљења, паметним кућама и разним сензорским пројектима.
🧰 Потребна опрема
За реализацију ове вежбе потребно је:
- ESP32 развојна плоча,
- сензор светлости (LDR / light сензор),
- отпорник од 10 kΩ,
- breadboard плоча,
- повезне жице,
- USB кабл,
- рачунар са Arduino IDE окружењем.
Повезивање компоненти
Модул сензора светлости већ садржи LDR сензор и отпорник који формирају напонски делитељ. Аналогни излаз модула (AO) повезује се на аналогни улаз ESP32 плоче, а вредност осветљености очитава се помоћу функције analogRead().
У овој вежби користимо следеће повезивање:
- VCC → 3V3
- GND → GND
- AO → GPIO34
Дигитални излаз DO се у овој вежби не користи.
Smer promene analogne vrednosti
Kod različitih LDR modula analogna vrednost može da se ponaša različito. Kod nekih modula povećanjem osvetljenosti raste i ADC vrednost, dok kod drugih ona opada.
Razlog nije u fotootporniku, već u načinu na koji su fotootpornik i otpornik povezani u naponskom delitelju.
Preporučuje se da se pre pisanja programa senzor osvetli lampom i zatim prekrije rukom. Posmatranjem vrednosti u Serial Monitor-u lako se utvrđuje da li ADC raste ili opada sa povećanjem osvetljenosti.
Napomena o AO i DO izlazu
Većina LDR modula sa četiri priključka (VCC, GND, AO i DO) pored fotootpornika sadrži i komparator LM393. Analogni izlaz (AO) koristi se za merenje nivoa osvetljenosti, dok je digitalni izlaz (DO) namenjen samo detekciji da li je osvetljenost iznad ili ispod zadatog praga.
Potenciometar na modulu služi za podešavanje praga aktiviranja digitalnog izlaza DO. Njegovo okretanje uglavnom ne utiče na analogni izlaz AO, pa se očitane ADC vrednosti ne menjaju značajno.

Шема повезивања
Приказ основне шеме за мерење осветљења помоћу ESP32.

Задња страна
Приказ распореда и повезивања са задње стране.

Вежба са LED-ом
Каснија проширена верзија вежбе са LED диодом.

Додатни приказ
Задња страна кола које укључује и LED диоду.
Напомена о повезивању
ESP32 користи 12-битни ADC, па је важно да аналогни сигнал буде стабилан и правилно доведен на GPIO34.
Код мерног кола је добро да се користе кратке жице и чврста веза на breadboard плочи како би очитавања била што поузданија.
Zašto se u praksi retko dobija vrednost 4095?
ADC konvertor ESP32 može da meri napone u opsegu od približno 0 V do 3,3 V, što odgovara vrednostima od 0 do 4095. Međutim, to ne znači da će svaki analogni senzor koristiti ceo taj opseg.
Kod većine gotovih LDR modula analogni izlaz (AO) predstavlja napon naponskog delitelja koji formiraju fotootpornik i otpornik na modulu. Zbog njihovih karakteristika izlazni napon često zauzima samo deo mogućeg opsega, pa se u normalnim uslovima mogu dobijati vrednosti, na primer, između 100 i 1200 umesto од 0 до 4095.
To nije greška ESP32 niti senzora, već normalna osobina konkretnog modula.
Вежба 1: Мерење светлости и приказ у Serial Monitor-у
У овој вежби ESP32 очитава аналогну вредност са сензора светлости, затим ту вредност преводи у погодан опсег за приказивање јачине осветљења. На тај начин ученици виде како се сирови ADC подаци могу обрадити и употребити у даљој примени.
Овде се не користи LED диода. Циљ је да се разуме сам принцип мерења светлости и начин на који се добијена вредност приказује у серијском монитору.

Реална поставка
Практично повезивање сензора светлости на breadboard плочи.
Циљ вежбе
Циљ је да се очита вредност са аналогног улаза, затим да се из ње добије процена осветљености. Што је амбијент тамнији, то је очитана вредност другачија, па се преко програма може пратити промена услова у просторији.
ESP32 програм
// Аналогни улаз на који је доведен сигнал са напонског делитеља
// који чине LDR сензор и отпорник од 10 kΩ
#define LDR_PIN 34
void setup() {
// Покретање серијске комуникације брзином од 115200 bps
// да бисмо могли да пратимо очитане вредности у Serial Monitor-у
Serial.begin(115200);
// ESP32 користи 12-битни ADC,
// па analogRead() враћа вредности од 0 до 4095
analogReadResolution(12);
}
void loop() {
// Очитавање аналогне вредности са GPIO34 пина
int ocitanaVrednost = analogRead(LDR_PIN);
// Превођење ADC вредности у опсег 255–0
// Обрнут распон је користан јер већа вредност
// може да представља слабије осветљење
int nivoOsvetljenosti = map(ocitanaVrednost, 0, 4095, 255, 0);
// Испис оригиналне ADC вредности
Serial.print("LDR: ");
Serial.print(ocitanaVrednost);
// Испис прерачунате вредности осветљења
Serial.print(" brightness: ");
Serial.println(nivoOsvetljenosti);
// Кратка пауза између два мерења
delay(500);
}

Serial Monitor
Приказ очитаних ADC вредности и израчунате вредности осветљености током рада програма.
Објашњење програма
- Функција analogRead() чита вредност са аналогног пина GPIO34.
- Пошто ESP32 користи 12-битни ADC, вредност се креће од 0 до 4095.
- Функција map() преводи ту вредност у погоднији опсег.
- Обрнуто мапирање је корисно јер мања количина светлости може да се прикаже већом вредношћу затамњења.
- Резултат се исписује у Serial Monitor, где се лако може пратити промена осветљења.
nivoOsvetljenosti = map(ocitanaVrednost, 0, 4095, 255, 0);
Ова линија кода омогућава да се сирови ADC подаци лакше тумаче у наставку рада.
Kalibracija funkcije map()
Primer u programu koristi teorijski ADC opseg od 0 do 4095. Međutim, kod mnogih LDR modula stvarni opseg može biti znatno manji. Zbog toga je preporučljivo da se najpre očitaju minimalna i maksimalna ADC vrednost u uslovima u kojima će uređaj raditi.
Na primer, ako očitane vrednosti variraju između 120 i 1180, bolje je koristiti:
int brightness = map(ldrValue,120,1180,0,255);
brightness = constrain(brightness,0,255);
Na ovaj način koristi se ceo PWM opseg LED diode, pa promena osvetljenosti postaje znatno uočljivija.
Eksperiment
Istraži ponašanje svog senzora
Izmeri:
- ADC vrednost pri jakom osvetljenju;
- ADC vrednost u normalnoj prostoriji;
- ADC vrednost kada prekriješ senzor rukom.
Na osnovu dobijenih rezultata odgovori:
- Da li ADC vrednost raste ili opada kada je više svetla?
- Koliki je stvarni opseg očitanih vrednosti?
- Kako treba podesiti funkciju map() da LED koristi ceo PWM opseg?
📌 Допуна: Сензор светлости са дигиталним излазом (D0)
Објашњење
Неки модули сензора светлости немају аналогни излаз (AO), већ само дигитални излаз (D0). У том случају сензор не мери тачну јачину светлости, већ само детектује да ли је у просторији светло или мрак.
Резултат је бинарни сигнал:
- 0 → светло
- 1 → мрак
Праг осетљивости се подешава помоћу потенциометра на самом модулу.
🔧 Повезивање (D0 варијанта)
- VCC → 3V3
- GND → GND
- D0 → GPIO34
ESP32 програм (D0 варијанта)
// Пин на који је повезан D0 излаз
#define LDR_PIN 34
// LED диода
#define LED_PIN 2
void setup() {
Serial.begin(115200);
pinMode(LDR_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int stanje = digitalRead(LDR_PIN);
// Ако је мрак (1) → LED јаче светли
// Ако је светло (0) → LED слабије светли
int jacina = (stanje == 1) ? 255 : 40;
analogWrite(LED_PIN, jacina);
Serial.print("D0: ");
Serial.println(jacina);
delay(100);
}
🧠 Објашњење кода
- D0 сензор даје само два стања: 0 или 1
- Не користи се analogRead() јер нема аналогног излаза
- Уместо мерења, користи се логичка одлука (if услов)
- Када је мрак, LED диода светли јаче
📊 Разлика A0 и D0 сензора
| Тип сензора | Излаз | Шта мери |
|---|---|---|
| A0 | Аналогни (0–4095) | Јачину светлости |
| D0 | Дигитални (0/1) | Само светло / мрак |
📌 Закључак
D0 варијанта се користи када није потребно прецизно мерење, већ само детекција услова осветљења. Овај режим је једноставнији и погодан за основне аутоматске системе.
📌 Допуна: Мерење осветљења помоћу фотоотпорника (LDR) и отпорника од 10 kΩ
Поред готових модула са аналогним (AO) или дигиталним (DO) излазом, мерење осветљења може се реализовати и употребом самог фотоотпорника (LDR) и фиксног отпорника од 10 kΩ. На овај начин формира се напонски разделник, чији се излаз доводи на аналогни улаз ESP32 микроконтролера.
Ово је један од најчешћих начина повезивања LDR сензора јер омогућава прецизно мерење осветљености без употребе готовог сензорског модула.

Реална поставка
Фотоотпорник и отпорник од 10 kΩ повезани као напонски разделник.

Шема повезивања
Повезивање фотоотпорника и отпорника у Circuit Designer окружењу.

Задња страна
Приказ распореда проводника са задње стране breadboard плоче.
Како функционише напонски разделник?
Фотоотпорник мења свој отпор у зависности од количине светлости која пада на његову површину. Заједно са отпорником од 10 kΩ формира напонски разделник чији се излазни напон доводи на аналогни улаз ESP32 микроконтролера.
- На јаком светлу отпор фотоотпорника је мањи.
- У мраку отпор фотоотпорника је већи.
- Променом отпора мења се и напон на аналогном улазу ESP32.
- Функција analogRead() претвара овај напон у број између 0 и 4095.
Повезивање компоненти
- Један крај фотоотпорника → 3V3
- Други крај фотоотпорника → GPIO34 (аналогни улаз)
- Отпорник 10 kΩ → између GPIO34 и GND
Напомена
Фотоотпорник није поларизована компонента, па није важно којом ће страном бити повезан. Важно је само да са отпорником од 10 kΩ формира напонски разделник чији је средишњи чвор повезан на аналогни улаз ESP32.
ESP32 програм
// Аналогни улаз на који је повезан средишњи чвор
// напонског разделника
#define LDR_PIN 34
void setup() {
Serial.begin(115200);
analogReadResolution(12);
}
void loop() {
// Очитавање напона са разделника
int ldrValue = analogRead(LDR_PIN);
// Пример мапирања.
//По потреби прилагодити опсег стварно измереним ADC вредностима.
int brightness = map(ldrValue, 0, 4095, 255, 0);
brightness = constrain(brightness,0,255);//ограничење да вредност не премаши 255
Serial.print("LDR: ");
Serial.print(ldrValue);
Serial.print(" brightness: ");
Serial.println(brightness);
delay(500);
}
Објашњење програма
- ESP32 очитава напон са средишњег чвора напонског разделника.
- Пошто ESP32 користи 12-битни ADC, добијају се вредности од 0 до 4095.
- Функција map() претвара измерену вредност у опсег од 0 до 255.
- Тако добијена вредност може се користити за приказ у Processing окружењу или за управљање јачином светлења LED диоде.
Предности оваквог повезивања
- Није потребан готов модул са LDR сензором.
- Ученици боље разумеју принцип рада напонског разделника.
- Погодно је за учење аналогног мерења помоћу ADC конвертора.
- Исти принцип користи се код бројних аналогних сензора.
Визуелизација мерења у Processing окружењу
Поред приказа вредности у Serial Monitor-у, могуће је визуелизовати ниво осветљености и у Processing окружењу. ESP32 шаље податке преко серијске комуникације, а Processing их чита и на основу њих исцртава индикатор јачине осветљења. На тај начин промене светлости могу се пратити у реалном времену.
Processing програм
import processing.serial.*;
// Objekat koji predstavlja serijski port
// preko koga Processing komunicira sa ESP32
Serial myPort;
// Promenljiva u kojoj će biti sačuvana
// vrednost osvetljenosti (0-255)
int brightness = 0;
void setup()
{
// Kreiranje prozora dimenzija 600x250 piksela
size(600,250);
// Ispis liste svih dostupnih serijskih portova.
// Na osnovu ove liste bira se odgovarajući port.
println(Serial.list());
// Otvaranje prvog pronađenog serijskog porta
// brzinom od 115200 bps.
// Brzina mora biti ista kao u ESP32 programu.
myPort = new Serial(this,
Serial.list()[0],
115200);
// Funkcija serialEvent() biće pozvana
// svaki put kada stigne jedan red teksta,
// odnosno kada se primi znak '\n'.
myPort.bufferUntil('\n');
// Podešavanje veličine teksta
textSize(20);
}
void draw()
{
// Boja pozadine prozora
background(245);
// Naslov iznad indikatora
fill(0);
text("Ниво осветљености",40,40);
// Iscrtavanje okvira indikatora
noFill();
strokeWeight(2);
rect(40,80,500,40);
// Popunjavanje indikatora.
// Što je brightness veći,
// plavi pravougaonik je duži.
fill(60,160,255);
noStroke();
rect(40,80,brightness*500.0/255.0,40);
// Ispis numeričke vrednosti
fill(0);
text("Brightness: " + brightness,40,170);
}
// Ova funkcija se automatski poziva
// kada Processing primi jedan red teksta
// sa serijskog porta.
void serialEvent(Serial port)
{
// Čitanje jednog reda teksta
// do znaka '\n'
String data = port.readStringUntil('\n');
// Provera da li je tekst uspešno pročitan
if(data!=null)
{
// Uklanjanje znakova novog reda
// i praznih karaktera sa početka i kraja
data = trim(data);
// Pronalaženje dela teksta
// koji počinje rečju "brightness:"
int index = data.indexOf("brightness:");
// Ako je tekst pronađen...
if(index!=-1)
{
// Izdvajanje dela teksta koji dolazi
// iza reči "brightness:"
String vrednost = trim(data.substring(index+12));
// Pretvaranje izdvojenog teksta u ceo broj
brightness = int(vrednost);
}
}
}
Објашњење програма
- ESP32 шаље текст у облику LDR: 2150 brightness: 121.
- Функција bufferUntil('\n') обезбеђује да се подаци обрађују тек након што пристигне цео ред текста.
- Функција readStringUntil('\n') чита један ред који је ESP32 послао.
- Из примљеног текста издваја се број који се налази иза речи brightness:.
- Та вредност се користи за цртање плавог индикатора чија се дужина мења у зависности од осветљења.
Вежба 2: LED диода која јаче светли када је мање светлости у околини
У другој вежби истом сензору светлости додаје се LED диода. Када је у околини мање светлости, LED треба да јаче светли, а када је осветљење веће, њен интензитет треба да буде мањи. На тај начин добија се једноставан пример аутоматског ноћног осветљења.

Шема са LED диодом-дијаграм веза
Проширена верзија кола у којој се додаје и LED диода-шема у Circuit designer-у

Шема са LED диодом
Проширена верзија кола у којој се додаје и LED диода.
Циљ вежбе
Циљ је да се покаже практична примена мерења светлости. Сензор очитава услове у просторији, а ESP32 на основу тога управља LED диодом тако да она постане јача у мраку, а слабија на јаком светлу.
ESP32 програм
// Analogni ulaz na koji je povezan LDR senzor
#define LDR_PIN 34
// LED dioda povezana na GPIO2
#define LED_PIN 2
void setup() {
// Pokretanje serijske komunikacije
Serial.begin(115200);
// Postavljanje LED pina kao izlaza
pinMode(LED_PIN, OUTPUT);
// ESP32 koristi 12-bitni ADC,
// pa analogRead() vraća vrednosti od 0 do 4095
analogReadResolution(12);
}
void loop() {
// Očitavanje analogne vrednosti sa LDR senzora
int ocitanaVrednost = analogRead(LDR_PIN);
// Pretvaranje ADC vrednosti (0–4095)
// u PWM opseg (255–0).
// Obrnuto mapiranje omogućava da LED
// jače svetli kada je manje svetlosti.
// Po potrebi opseg 0–4095 može se zameniti
// stvarno izmerenim vrednostima senzora.
int jacinaSvetlosti = map(ocitanaVrednost, 0, 4095, 255, 0);
// Obezbeđuje da PWM vrednost uvek bude
// u dozvoljenom opsegu od 0 do 255.
jacinaSvetlosti = constrain(jacinaSvetlosti, 0, 255);
// Slanje PWM vrednosti LED diodi
analogWrite(LED_PIN, jacinaSvetlosti);
// Kratka pauza pre sledećeg očitavanja
delay(100);
}

Serial Monitor
Приказ очитаних вредности током рада програма који управља јачином светлења LED диоде.
Објашњење програма
- LDR сензор се чита помоћу analogRead().
- Вредност се прерачунава у опсег који одговара јачини светлења LED диоде.
- Функција analogWrite() шаље PWM сигнал и тиме мења интензитет светлости диоде.
- Када је у просторији тамније, диода светли јаче.
- Када има више светлости, диода светли слабије.
Вежба 3: Паметни ЛЕД прстен (WS2812B NeoPixel)
У овој вежби упознаћемо се са паметним адресабилним ЛЕД диодама у облику прстена (модел WS2812B). За разлику од обичних ЛЕД диода које захтевају додатне отпорнике за ограничење струје, паметни ЛЕД прстенови унутар сваке диоде имају уграђен посебан микрочип (драјвер). Ови чипови самостално регулишу јачину струје и омогућавају нам да преко само једне дигиталне линије (једне жице) контролишемо боју и јачину великог броја диода појединачно. Због уграђене заштите, напајање прстена везује се директно на развојну плочу.

Шема повезивања ЛЕД прстена
Повезивање WS2812B ЛЕД прстена са DIN стране на ESP32 плочу.
Препознавање жица и повезивање
Паметни прстенови могу да се везују у ланац један за другим, па због тога имају две групе жица. Са једне стране се налазе улазни контакти (означени са DIN или IN), а са друге излазни (означени са DO или OUT). За везу са ESP32 плочом користи се искључиво улазна страна (DIN), док излазне жице остају слободне.
- 3V/5V жица (DIN страна) ➡️ Повезује се на 3.3V пин на ESP32 (из сигурносних разлога и усклађивања јачине сигнала).
- GND жица (DIN страна) ➡️ Повезује се на било који GND пин на ESP32.
- DIN жица (Сигнал) ➡️ Повезује се на чисти дигитални излаз GPIO 4.
Тест пример програма
Пре интеграције са сензором, потребно је проверити исправност прстена. За контролу ових диода користи се популарна библиотека FastLED (аутор Daniel Garcia), коју је потребно инсталирати кроз Library Manager. Следећи код константно пали и гаси цео прстен од 36 диода у црвеној боји.
#include <FastLED.h>
// Дигитални пин за слање података ка прстену
#define LED_PIN 4
// Број диода на вашем прстену (нпр. 36)
#define NUM_LEDS 36
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
void setup() {
Serial.begin(115200);
Serial.println("--- ТЕСТ ЛЕД ПРСТЕНА ПОКРЕНУТ ---");
// Иницијализација ФастЛЕД библиотеке
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
// Постављање умерене јачине (64 је око 25% снаге ради заштите плоче)
FastLED.setBrightness(64);
}
void loop() {
Serial.println("Палим све диоде у ЦРВЕНУ боју...");
fill_solid(leds, NUM_LEDS, CRGB::Red);
FastLED.show();
delay(1000);
Serial.println("Гасим све диоде...");
FastLED.clear();
FastLED.show();
delay(1000);
}
🚀 Пројектни задатак за вежбу: Замена ЛЕД диоде са паметним прстеном
Изазов: Модификујте претходну Вежбу 2 тако што ћете уместо обичне ЛЕД диоде са отпорником на систем повезати овај паметни ЛЕД прстен од 36 диода. Напишите програм у коме ће прстен реаговати на количину светлости у просторији помоћу LDR сензора (повезаног на GPIO 34), али са обрнутом логиком: што је у просторији мање светлости, прстен треба да светли СЛАБИЈЕ, а када се светлост појача, прстен треба да светли ЈАЧЕ.
⚠️ Упозорење и проблем који ће се јавити: Када спојите код за очитавање фотоотпорника са кодом за ЛЕД прстен унутар исте петље, приметићете да ЛЕД прстен уопште не жели да се упали или да систем константно блокира!
Зашто се ово дешава? (Технички проблем из праксе)
WS2812B чипови захтевају изузетно прецизан пренос података који се мери у наносекундама. С друге стране, стандардна функција analogRead() привремено зауставља рад процесора како би измерила напон на пину сензора. Ова два процеса се међусобно сукобљавају унутар брзе loop() петље. Када процесор застане због читања сензора, прекида се сигнал ка прстену, због чега паметни чипови на прстену не добијају исправне команде и остају угашени.
Упутство и смернице за самостално решавање:
Да бисте успешно решили овај проблем и завршили задатак, потребно је да у свом коду примените следећа два инжењерска решења:
- Раздвајање времена извршавања (Милисекундни тајминг): Немојте дозволити да процесор чита аналогни сензор у сваком тренутку. Потребно је да уведете временски услов (користећи функцију
millis()) који ће очитавати сензор тек на сваких 500 милисекунди (пола секунде), док ће у међувремену прстен добијати константан и несметан сигнал. - Активација напредног хардверског драјвера: Пре самог учитавања FastLED библиотеке, потребно је дефинисати посебне смернице за компајлер на самом врху кода. Искористите директиву која забрањује системске прекиде током слања сигнала (
FASTLED_ALLOW_INTERRUPTS 0), као и наредбу која активира изоловани хардверски блок унутар ESP32 чипа за управљање даљинским сигналима (#define FASTLED_RMT_BUILTIN_DRIVER 1). Овај РМТ драјвер ће самостално слати сигнале на пин 4, остављајући главни процесор слободним за читање фотоотпорника. - Инвертовано мапирање и заштита: У функцији
map()пажљиво ускладите вредности фотоотпорника са излазним опсегом јачине светла за прстен (од 0 до максимално 150). Пазите на редослед бројева како бисте постигли захтевани ефекат (мање амбијенталног светла = слабије светло прстена). Не заборавите да јачину софтверски ограничите на максимално 150 преко функцијеconstrain()како 36 диода не би повукло превише струје са плоче.

Оријентациони приказ готовог пројекта
Напомена: Слика приказује финални изглед уређаја у реалном раду. Жице повежите пратећи искључиво текстуално упутство и дигиталне ознаке пинова из претходног корака, а не према изгледу са ове фотографије.
Могућа проширења пројекта
- Аутоматско паљење расвете у соби.
- Постављање прага осветљења за укључивање LED диоде.
- Коришћење више LED диода са различитим нивоима светлења.
- Слање података преко Wi-Fi мреже.
- Приказ мерења на веб страници.
- Израда паметног ноћног светла.
⚠️ На шта треба обратити пажњу
- Проверити исправност повезивања LDR сензора и отпорника.
- Проверити да ли је аналогни улаз заиста GPIO34.
- Обратити пажњу на стабилно напајање ESP32 плоче.
- Ако је LED диода слабо видљива, проверити отпорник у серији са диодом.
- Пре покретања програма проверити целокупно коло.
Примена стеченог знања
Ова вежба показује како се помоћу ESP32 плоче може мерити светлост и користити та информација за даље управљање излазима. На тај начин се једноставни сензорски подаци претварају у користан аутоматски одговор система.
У следећим корацима могуће је да се овај пројекат прошири на паметно осветљење, алармне системе, аутоматско управљање прозорима или приказ података преко интернета.
## 📚 Додатно учење
Мерење осветљења помоћу ESP32
Детаљније објашњење рада light сензора, фотоотпорника, напонског делитеља и мерења осветљења помоћу ESP32 платформе.
🔎 Продуби знање
Истражи како функционише ADC конвертор у ESP32 микроконтролеру и на који начин се аналогни напон претвара у дигиталну вредност.
🧪 Идеје за експеримент
- Промени праг осветљења.
- Испробај различите вредности отпорника.
- Осветли сензор лампом и прати промене.
- Покриј сензор руком и упореди резултате.
Следећи корак
Комбинуј сензор светлости са OLED дисплејом или Wi-Fi комуникацијом и направи систем за праћење осветљења у реалном времену.
Мини квиз
1. Која функција очитава аналогну вредност са ESP32?
2. Који GPIO пин је коришћен за LDR сензор у овој вежби?
3. Која је максимална вредност коју враћа 12-битни ADC на ESP32?
4. Шта се дешава у другој вежби када је мање светлости?