User manual

Pro kontrolér bude následn zapotebí urit konkrétní barevné hodnoty LED z tohoto hexadecimálního
ísla, které získá z následující ásti funkce loop:
if (esp8266.findUntil("?rgb=", "\n"))
{
String hexstring = esp8266.readStringUntil(‚ ‚);
long number = (long) strtol( &hexstring[3], NULL, 16);
int r = number >> 16;
int g = number >> 8 & 0xFF;
int b = number & 0xFF;
analogWrite(RED, r);
analogWrite(GREEN, g);
analogWrite(BLUE, b);
}
Funkce strtol() konvertuje text, který je uveden za zápisem %23 do dlouhé íslice a poté
do 3 bajtových hodnot, které jsou poté peneseny do LED za použití funkce analogWrite().
Světelný senzor / Light Sensor
V tomto projektu website webového serveru neslouží pro ovládání rozhraní, ale jako výstupní prvek.
Svtlo mené prostednictvím svtelného senzoru se zobrazuje jako relativní hodnota s novým HTML
elementem. Tato konfigurace vyžaduje fototranzistor, který zde funguje jako svtelný senzor.
Fototranzistor je snadno rozpoznatelný, pestože na první pohled mže vypadat jako bžná LED.
Uvnit pouzdra má však velmi dobe patrný tmavý bod. Kolektor fototranzistoru má kratší elektrodu,
která se pipojuje k signálu +5 V. Do série s fototranzistorem se poté pipojí rezistor 10 o hodnot k.
Fototranzistor je pipojen k pinu A6 v sérii s rezistorem 10 k.
Program
Doposud byl website vždy vytvoen z nemnné stránky, která odesílá
data do kontroléru. V tomto pípad však dochází ke zmn website ped
samotným odesláním dat do prohlížee a zobrazením odpovídající
hodnoty svtelných podmínek prostednictvím fototranzistoru. Zdrojový
kód website bere v patrnost atribut placeholder, kterou program nahradí
hodnotou „bright“ po natení dat z programové pamti, aktuálními
hodnotami. Další ádek v HTML dokumentu zajišuje automatické
obnovení v intervalu nkolika sekund. Aktuální hodnota svtelných
podmínek se zárove zobrazuje v prohlížei.
První zmna v záhlavní ásti dokumentu:
<meta http-equiv="refresh" content="3">
Tento ádek zajišuje automatické obnovování website každé 3 sekundy. Není tak zapotebí stisku
tlaítka F5 na klávesnici, pro zobrazení nových, aktuálních hodnot. Druhá zmna spoívá v míst
zápisu, kde zpravidla bývá umístno formuláové pole.
<label for="hell">Current Brightness: *bright*</label> <BR>
<input type="range" max = "1024" name="hell" value=*bright*><BR>
Pro funkci této aplikace a výstup bude zapotebí pouze samotný website. Dva hlavní prvky label
a range jsou použity coby výstupní prvky. Label, který se zpravidla používá pro oznaení, obsahuje
položku „bright“ v textu. Posuvný prvek pro urení rozsahu má piazenou hodnotu „bright“, která není
legitimní hodnotou, ale bude pozdji zamována. Maximální hodnota rozsahu je 1024 a tato byla
pizpsobena do 10-bitového rozsahu ADC kontroléru. Proto je zapotebí zajistit zámnu placeholderu
hodnoty „bright“ skutenou (legitimní) hodnotou.
String createWebsite()
{
String xBuffer;
for (int i = 0; i <= sizeof(site); i++)
{
char myChar = pgm_read_byte_near(site + i);
xBuffer += myChar;
}
xBuffer.replace("*bright*",
String(analogRead(SENSOR)));
return xBuffer;
}
Placeholder je zamnn ve funkci createWebsite(). Jako první dochází k natení obsahu
Progmem z pamti a uložení do etzce. Pedtím, než funkce vrátí tento etzec, všechny „bright“
etzce jsou zamnny hodnotou aktuáln namenou fotosenzorem. Funkce replace() tuto funkci
provádí zcela automaticky. Na závr pozmnetzec mže být vrácen a penesen do prohlížee.
GPIO-Control
Tento nový experiment provádí jednoduché ovládání digitálních pin D2 – D7 prostednictvím website.
Stav píslušných pin je pitom prezentován v prohlížei a díky tomu tak máte neustálý pehled
o práv probíhající aplikaci. V projektu je použito 1 RGB–LED a 1 LED. Katody obou LED jsou
pipojeny k GND mimo desku. Po uvedení tchto pin do nízké rozhodovací úrovn (low) dojde
k souasnému rozsvícení obou LED.