User manual
Poznámka: LED musí být pipojeny bez pedadného rezistoru. Vzhledem k tomu, že jsou LED
umístny mezi 2 porty, jsou již pipojené do obvodu s pedadným rezistorem o hodnot 60 .
V závislosti na typu a barv LED se jejich povolený proud pohybuje v rozsahu 15 – 30 mA.
Program
Website tohoto programu používá zaškrtávací políka coby HTML prvek. Po natení programu
a volání stránky modulu, bude k dispozici vtší množství políek, které je možné zaškrtnout.
Symbol zaškrtnutí v políku pedstavuje vysokou rozhodovací úrove pinu (high).
Nezaškrtnuté políko znamená pin na nízké úrovni (low). Vyzkoušejte proto následn,
která políka je nutné zaškrtnout proto, aby se rozsvítili ob LED.
HTML kód používá website coby vstupní formulá a výstupní prvek zárove. Zaškrtávací políka mají
svoje názvy, které jsou odvozeny z názv pin. Placeholder v textu je text „checkedX“ ve všech
pípadech. Pakliže je uritý pin uveden do nízké rozhodovací úrovn low, placeholder je jednoduše
vymazán. V opaném pípad (úrove high) program zamní „checkedX“ zápisem CHECKED, což
zajistí zobrazení zaškrtávacího pole s píslušným symbolem bhem naítání. V tom okamžiku musí
dojít ke stisku tlaítka po výbru správných polí pro penos dat z formuláe.
<form method="GET">
<input type="checkbox" *checked2* name="ld2">D2
<input type="checkbox" *checked3* name="ld3">D3
<input type="checkbox" *checked4* name="ld4">D4
<br><br>
<input type="checkbox" *checked5* name="ld5">D5
<input type="checkbox" *checked6* name="ld6">D6
<input type="checkbox" *checked7* name="ld7">D7
<br><br>
<input type="submit" value="Send">
</form></HTML>
Programovaný proces pak funguje následovn: Pedpokládejme, že pole 3, 5 a 7 jsou zaškrtnutá. URL
se pak zmní na:
[IP]/?ld3=on&ld5=on&ld7=on
To znamená, že pouze vybraná pole a jejich hodnoty budou pevzaty a identifikovány v rámci
základního indexu, což se provádí díky funkci loop-routine. Port D, na kterém dochází
k vyhodnocování stavu, je pepnutý do úrovn low. Díky funkci while-loop dojde k prohledávání všech
„ld“ ve zdrojovém ádku. V indexu je nalezeno ld, na ld3 mže být napíklad hodnota 3, která generuje
1 bajtový posun uvedeného indexu, batju 0b0001000. Jedná se tak o funkci or-linked aktuální hodnoty
bajtu. Tento proces se provádí pro všechny potvrzené indexy, dokud výchozí registr D nedosáhne
správné hodnoty. Tento druh výstupu (namísto digitalWrite()) je pro uživatele Arduino možná ponkud
zvláštní, avšak v tomto pípad vychází z praktického hlediska.
if (esp8266.find("+IPD,"))
{
debug("Incoming Request");
int connectionId = esp8266.parseInt();
if (esp8266.find("/?")) PORTD = B00000000;
while (esp8266.findUntil("ld", "\n"))
{
int ld = esp8266.parseInt();
PORTD |= (1 << ld);
}
}
Zaškrtávací pole pak funguje následovn: Placeholder z HTML dokumentu je zamnn díky funkci
createWebsite(). For-loop prochází všemi porty zapojenými v sérii. Pakliže má pin aktuální úrove
high (znovu urenou bajtem, který byl vytvoen pesunutím high bitových íslic v indexu), placeholder
s indexem je zamnn oznaeným textem. Pakliže má pin low úrove, placeholder bude smazán.
Tím je zajištno odpovídající zobrazení aktivních port.
String createWebsite()
{
String xBuffer;
for (int i = 0; i <= sizeof(site); i++)
{
char myChar = pgm_read_byte_near(site + i);
xBuffer += myChar;
}
for (int x = 2; x <= 7; x++)
{
if (PORTD & (1 << x))
{
xBuffer.replace("*checked" + String(x) + "*", "checked");
}
else
{
xBuffer.replace("*checked" + String(x) + "*", "");
}
}
return xBuffer;
}
Pi vývoji tohoto programu však došlo k zaznamenání uritých problém a jejich píina nebyla
ihned patrná. Chybový stav nastal pi naítání website a po zaškrtávání uritých polí.
Jednoduché ešení však poskytuje aplikace Arduino-MemoryFree-Master-Library na webu:
http://playground.arduino.cc/Code/AvailableMemory
Po dosažení maximální kapacity SRAM docházelo k zvláštním a náhodným chybovým procesm.
Díky aplikaci se však podailo všechny tyto procesy odstranit. Funkce string.replace() je velmi
praktická, pesto však zabírá velké množství pamti. Pakliže zaznamenáte rzné chyby v urité
ásti programu, doporuuje se výrazná redukce zdrojového kódu HTML souboru a optimalizace
nkterých etzcových operací. Shora uvedená knihovna vám pitom mže výrazn pomoci.
Insert: Přístup k modulu z internetu
Vtšina experiment, kterými jsme se doposud zabývali mají praktické využití v ovládání modulu
prostednictvím domácí sít. Speciální funkce modulu však umožují jeho ovládání i na vtší
vzdálenost. Moderní technologie a inteligentní systémy souasných domácností však vyžadují velmi
nároné aplikace, jakými jsou napíklad ovládání domácích spotebi a osvtlení na dálku teba
bhem dovolené. Spínaní osvtlení má využití zejména z bezpenostních dvod, kdy je zapotebí
navodit pítomnost osob v objektu. Použití svtelných senzor zase umožuje spínání osvtlení
na uritých místech a nebo osvtlení za snížených svtelných podmínek a pohybu osob (napíklad
na zahrad). Pro to, aby bylo možné využít všech tchto funkcí, je nezbytné provést nkolik málo
úprav u používaného routeru. Každý router vyžaduje svj specifický software. V následující ásti bude
prezentován obecný postup pro konfiguraci Fritz!Box routeru. Konfigurace jiného routeru však bude
prakticky obdobná.