Webový server poháněný jednorázovou e-cigaretou

Webový server poháněný jednorázovou e-cigaretou

Inženýr a origami umělec Bogdan Ionescu, známý také jako BogdanTheGeek, vytvořil webový server, který běží na jednorázové e-cigaretě. Inspirován svou rostoucí sbírkou těchto jednorázových výrobků a předchozí prací na semihostingu na jakémkoli Arm CPU vytvořil projekt nazvaný VapeServer.

Jednorázové e-cigarety mohou obsahovat překvapivé množství výpočetního výkonu a komponentů. Bogdan několik let sbíral vyřazené jednotky pro „budoucí projekty“ se záměrem znovu využít baterie. Nedávno si však všiml „fancy“ jednotek, které obsahují pokročilejší integrované obvody a mikrokontroléry.

Technické specifikace

Bogdan zjistil, že jedna z pokročilejších jednotek obsahovala čip PY32F002B s následujícími parametry:

24 MHz Arm Cortex M0+ procesor
24 KB flash paměti
3 KB statické RAM
několik periferních rozhraní

Podle Bogdanova odhadu je tento čip „asi 100krát pomalejší“ než deset let starý mobilní telefon. Pro účely webového serveru však považoval PY32F002B s USB-C portem za dostatečný pro vytvoření „bleskově rychlého“ zařízení.

Optimalizace výkonu

Metoda spočívala v emulaci dial-up modemu na mikrokontroléru pomocí SLIP (Serial Line Internet Protocol) přes USB sériové připojení. Linuxové utility ‚slattach‘ a ‚socat‘ umožnily přenos IP paketů a mikrokontrolér využil kompaktní uIP stack pro komunikaci přes TCP/IP a nastavení webového serveru.

První testy byly podle Bogdana „směšně pomalé“ – pingy trvaly přibližně 1,5 sekundy a načtení jednoduché stránky zabralo 20 sekund. Po optimalizaci kódu, přidání bufferu a dávkového zpracování zápisů se mu však podařilo snížit ping na 20 ms bez ztráty paketů a načítání celé stránky na přibližně 160 ms.

„Téměř jsem to vzdal po prvních testech,“ přiznává Bogdan, ale hlavním problémem byl jeho kód, nikoli hardware.

Bogdan sdílel kód projektu semihost-ip pro VapeServer na GitHubu. Webová stránka hostovaná na tomto serveru je dostupná k vyzkoušení, i když může být přetížená návštěvníky.

Zdroj: tomshardware.com

Leave a Comment