Autor Zpráva
Martinc
Profil
Představme si, že máme nějaký stroj řízeny MCU, třeba pec a té musíme na začástku zadat nějaká data, třeba teplotní profil v podobě 8 teplot a osmi časů. Po spuštění pak stroj informuje jak se mu to daří v podobě grafu s průběhem teplot.
Za tímto účelem do stroje dame nějaký jednodeskový počítač s Linuxem ala Malina (ta nejmenší nejočesanější verze) na kterém běží lighttp a z jedné strany má UART a z druhé Ethernet pro připojení k LAN a internetu, aby se obsluha mohl ke stroji přihlásit z PC nebo mobilu zadat teplotní profil a pak sledovat jak to "peče" nakonec jim to "piplo", že je dopečeno.
To co ted řeším je jak pojmut tu část na "Malině". S čímž nemám praktické zkušenosti stejně jako s tvorbou webu.
Včera jsem vytahl nějký jednodeskovy linux, nainstloval a rozchodil lighttpd, nakonfiguroval, aby a něm chodily cgi skripty a v C napsal jednoduchy cgi skript, který po UART přijal nějaké číslo a nasledně ho vytiskl což se při voláni z web prohližeče zobrazilo.
To o co mi jde, jak to pojmout koncepčně a případně najít nějaké příklady.

Ma současná fixní idea. Z webu přijde požadavek, na zobrazení index.html z te se zavola cgi skript ten přečte data z MCU a zobrazi, uživatel může vybrat přpraveny a uložený profil nebo vytvoři a připadně uloží nový a bud přes web nebo na stroji spusti "pečení", následně by měla byt třeba co 10s zobrazován aktuální stav třeba v podobě grafu a kdy by nastal problém, třeba někdo otevřel dveře nebo nastala chyba mělo by to vzbudit obsluhu.

Takže html zavola cgi script ,aktulne ho mam v C, ale možná je dnes vic in Perl nebo bych se snad naučil Python nebo PHP?
Cgi skript vrati stavova a konfigurační data z MCU, třeba v podobě JSON nebo jinak?
Grafy atd. na strance pro změnu Java script, stejně by nějak musel volat cgi, aby vytáhl data z MCU.
V jakém formátu ukladat přednastvené teplotní profily? Předstvuji si samstatný soubr pro každy profi tak, aby šli vytvářet editovat i na jiném PC.

Nebo jsem úplně mimo a dnes se to celé řeší jinak?


Děkuji
Kajman
Profil
Do prohlížeče (frontend) připravíte aplikaci z html, js, css, která bude data zobrazovat a AJAXem volat skripty na serveru a podle vrácených dat dynamicky upraví stránku.

Na serveru (backend) budete mít program, který bude umět komunikovat s požadavky z prohlížeče i se strojem.

Rozhraní, jak si budou frontend a backend předávat data (API) si navrhnete tak, aby se z obou míst s tím dobře pracovalo. Pro inspiraci mrkněte na REST a RPC. JSON by měla být vhodná volba. Klidně bych v tomto formátu ukládal i profily.

Pokud chcete z backendu vyvolat nějakými událostmi co nejdřívější změnu na frontendu a nečekat, až se fronend zeptá opakované sám, mrkněte na websocket.
Serg
Profil
Aby to fungovalo i s historií - a nebylo to závislé na aktuální instanci webové stránky, tzn že po refreshi by se graf začal kreslit od začátku - by to chtělo ještě nějaký společný bod, kam se budou ukládat hondoty z MCU a odkud je vyčte webový server. Takže buď soubor nebo databáze. Soubor by měl asi stačit v tomhle případě. Nebo jestli si historii pamatuje MCU tak taky možnost.
piiiiiiiip
Profil
Já bych tohle řešil pomocí MQTT protokolu. Přes UART může váš stroj komunikovat s ESP8266 modulem, který je mnohem levnější než ten jednodeskový počítač a pro tuto aplikaci dostačující. Ten pak bude posílat a přijímat data přes MQTT protokol. Vaše webová stránka pak pomocí js (Ajax, jQuery) může fungovat jako odběratel, přečte data od toho stroje a zobrazí je v grafu a případně uloží do nějakého souboru či databáze. Z té webové stránky by také bylo možné publikovat data (příkazy) pro váš stroj, když chcete změnit jeho chování.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0