Projekty, dokumentace, zajímavosti ...
|
MKS3x3 ( Open Source Project ) zde ...
MKS3x3 : Aktualizace1 ( 29.června 2020 ) ...
|
Hrátky s Raspberry PI
Zde ve zkratce popíšu, jak je možné s pomocí Raspberry aktualizovat LED zobrazovače, ať již číselné nebo textové, přes webové rozhraní. Podmínkou je, aby v místě, kde budou LED zobrazovače umístěné, bylo internetové připojení, fyzicky UTP kabel ( CAT5e s konektorem RJ-45 ) na připojení k Raspberry.
Začněme vytvořením webové stránky, kde budeme provádět aktualizaci, pro jednoduchost například dvou cen, které se nám mají kdesi zobrazovat na LED zobrazovačích.
Jednoduchý formulář, kam budeme zadávat data, ovšem místo HTML se bude jednat o PHP soubor, tj. HTML rozšířitelný o PHP skript, aby bylo možné aktualizovaná data načítat a ukládat do souborů přímo na server.
|
Webové rozhraní se tak bude skládat ze dvou PHP souborů.
Prvním souborem prvni.php otevřeme soubor dat texty.txt a tato naformátujeme do formuláře pomocí PHP příkazu echo().
Druhý soubor druhy.php je volán metodou GET po odeslání formuláře a jsou mu tak předána zaktualizovaná data. Jeho úkolem je tato data uložit zpět do souboru texty.txt ( přepsat soubor ).
Tím je webová prezentace vytvořena.
|
Nyní nastupuje na scénu Raspberry. Do /etc/rc.local napíšeme jednoduchý skript, kterým budeme v pravidelných intervalech např. 5 minut načítat soubor texty.txt z výše uvedeného webového rozhraní a obsah souboru přes sériový port odesílat do připojených zobrazovačů.
Soubor rc.local již v adresáři /etc je, dopsat skript do něho můžeme například textovým editorem nano takto:
|
sudo nano rc.local
|
Tímto otevřeme textový editor, ve kterém dopíšeme skript a nové úpravy uložíme stiskem CTRL+O, enter a editor ukončíme CTRL+X.
Aby se skript rc.local spustil automaticky pokaždé po nabootování, je nutné mu nastavit spouštěcí práva takto:
|
sudo chmod +x /etc/rc.local
|
Obdobným způsobem zakážeme výstup console na sériový port, tj. zkontrolujeme soubor /boot/cmdline.txt v editoru NANO takto:
|
sudo nano /boot/cmdline.txt
|
Najdeme a odstraníme (zvýrazněný) text z řádky:
console=serial0,115200 console=tty1 root...
|
Opět uložíme CTRL+O a editor ukončíme CTRL+X. Nyní Raspberry restartujeme, například příkazem:
|
sudo shutdown -r now
|
Po rebootu Raspberry už příkazem wget odesílá znak po znaku soubor texty.txt na sériový port ( pravidelná aktualizace každých 5 minut ).
Ještě výpis skriptu ( nutno nastavit parametry přenosové rychlosti sériového portu a přístupová práva na povolení zápisu do sériového portu, jen místo standardního linuxového ttyS0 je v Raspberry sériový port pod jménem /dev/ttyAMA0:
|
#!/bin/sh
#
# rc.local
#
sudo stty -F /dev/ttyAMA0 cs8 cstopb 9600; # nastaveni prenosove rychlosti serioveho portu
sudo chmod a+rw /dev/ttyAMA0; # povoleni zapisu do serioveho portu
while true; do
wget --no-check-certificate https://www.selfcontrol.cz/texty.txt -O /dev/ttyAMA0; # soubor texty.txt do serioveho portu
sleep 300; # pockej 300 vterin, tj. 5 minut a pak opakuj cyklus
done;
|
POZN: U Raspberry Pi3 změňte ttyAMA0 na ttyS0. Port ttyAMA0 je zde Bluetooth.
Popřípadě můžeme Bluetooth vypnout příkazem pi3-disable-bt a ttyAMA0 bude uvolněn pro sériovou linku UART {pin 8 TXD a pin 10 RXD}.
|
|
SW perličky, jednoduché prográmky, formáty souborů
|
|