Selfcontrol



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}.
Raspberry Pi3, popis I/O jumperu 2x20







SW perličky, jednoduché prográmky, formáty souborů





 



Řídící DPS pro číselník.