Arduino – Přijímání hodnot z webu – NodeMCU #4

Vítejte u dalšího dílu ze seríe o NodeMCU. Po díle, kde jsme si ukázali, jak odeslat hodnoty z NodeMCU na web, kde ji uložíme do databáze, si ukážeme opačný postup. Ukážeme si jak na webu udělat jednoduché pole, které zobrazíme jako JSON. Díky tomu dokážeme nejen odesílat jedinou hodnotu, ale několik pojmenovaných.

Jako vždy budeme potřebovat někde provozovat PHP skript, to znamená, že musíme mít nějaký server nebo webhosting. U PHP si ukážeme, jak vytvořit pole a toto pole zobrazit jako JSON. Pokud chcete hodnoty brát z databáze, můžete se inspirovat předchozím dílem pro propojení PHP a MySQL. Poté stačí využít funkci SELECT.

$arr = array('led' => 'off');

echo json_encode($arr);

V druhém případě, můžeme také použít čistý JSON soubor.

{"led":"on"}

PHP soubor můžete stáhnout zde – https://mega.nz/#!h9cVQSoZ!LkRbuqyO7XV1BeA-f7mWolfP5Mke4rp6L1lTrS5HNX4, JSON zde – https://mega.nz/#!AhE0XYxY!q9zCxM1_H5BtAlVfrSmB2Dn-KhbRuVj4IVxuc4vBEGU.

Tak a konečně k Arduinu! Nebudu zde rozebírat celý kód, většina kódu je podobná jako minule, zde se koukneme jen na to jak pracovat s JSONem. Pro ten potřebujeme knihovnu ArduinoJSON.

int section = 1;
int i = 0;

while(client.available()){
String line = client.readStringUntil('\r');

switch (section) {
case 1:
if (line=="\n") {
section = 2;
}
break;
case 2:
i++;

if (i == 2) {
String result = line.substring(1);
//Serial.print(result);

int size = result.length() + 1;
char json[size];
result.toCharArray(json, size);
StaticJsonBuffer<200> jsonBuffer;
JsonObject& json_parsed = jsonBuffer.parseObject(json);
if (!json_parsed.success())
{
Serial.println("parseObject() selhalo");
return;
}

if (strcmp(json_parsed["led"], "on") == 0) {
Serial.println("Web rika, ze LEDka ma byt ZAPNUTA");
}
else {
Serial.println("Web rika, ze LEDka ma byt VYPNUTA");
}
}
break;
}
}

Tento kód je určen pro výstup z PHP, pokud chcete použít čistý JSON, musíte odstranit tento if:

if (i == 2) {
...
}

Nachází se v časti se switchem, v case 2.

Celý kód pro Arduino naleznete zde – https://mega.nz/#!9hlT1LqQ!Pj3j6eL83np7OdjGmc6MsZ7dCxoz7J8PZ7f7SglsN-8.

To je pro tento díl všechno. Tento díl opět naleznete na YouTube:

 

Pokud jste nalezli nějakou chybu, prosím, upozorněte nás označením textu a zmáčknutím zkratky Ctrl+Enter.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *