Automat pro LED noviny je založen na RPI. K automatu se připojuje LED panel pomocí konektoru RS232 (COM1). Funkce zařízení je následující: po zapnutí napájení RPI se provede reset LED panelu, proběhne kontrola dostupnosti připojení k Internetu, stáhne se soubor ledtext.txt z webové stránky a začne se vyčítat obsah souboru na RS232 port. Tento cyklus se neustále opakuje...
DONATE
- zdroj led.py Python
Kontrola dostupnosti sítě se provádí po každém přehrátí obsahu souboru ledtext.txt (taktéž stažení souboru z webu. Toto zajistí okamžité přehrátí nového souboru...)
Pokud je dostupné připojení k Internetu provádí se před začátkem výpisu souboru ledtext.txt výpis aktuálního datumu a času. RPI nemá RTC obvod a v případě že není dostupná síť neproběhne NTP synchronizace. RPI ukazuje nesprávný čas a datum (zobrazuje čas a datum před vypnutím systému). Pokud není připojení dostupné výpis času a datumu se nebude na LED panelu provádět.
Upload souboru ledtext.txt
Nahrátí souboru ledtext.txt do LED panelu se provádí "komfortně" přes webové rozhraní. Stačí vybrat soubor v PC, zadat heslo a stisknout nahrát na server... Soubor musí být: menší než 10 MB, formát ANSI. Pozor vkládaný text nesmí obsahovat uvozovky!
Webová stránka pro upload souboru
Před začátkem provedeme aktualizaci systému a instalaci GPIO do Pythonu (pokud jsme to již udělali jedeme dál...)
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio
Pokud využíváme sériový výstup (v Pythonu) musíme do RPI doinstalovat modul sériového rozhraní
V příkazovém řádku zadáme:
sudo apt-get install python-serial
Dále vytvoříme soubor led.py:
sudo nano led.py
Do editoru, který se nám otevřel zkopírujeme text ze souboru v příloze:
Pro uložení stiskeme Ctrl + O a [enter] následované Ctrl-X.
sudo chmod 777 led.py
Vyzkoušíme funkčnost programu a sériového rozhraní:
sudo python led.py
Pokud vše funguje jak má, měli bychom vidět následující řádky objevující se opakovaně...
Přidáme příkaz do rc.local pro samočinné spouštění našeho skriptu:
sudo nano /etc/rc.local
a přidáme před exit tento text:
/bin/echo "Startuji led panel..."
cd /home/pi/
sudo python led.py
Protože se při bootování používá také sériová linka pro výpis - zakážeme používání sériové linky v tomto souboru /boot/cmdline.txt odstraníme odkaz na sériové rozhraní. Soubor bude po úpravě vypadat takto:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
Dále bude potřeba k našemu RPI připojit nějaký převodník z úrovně 3,3V na RS232 (+-12V)
RPI má sice vestavěný UART sériový port, ale abychom ho mohli používat musíme přidat RS232 převodník (modul) a udělat nějaké jednoduché rekonfigurace. Modul musí být připojen mezi piny GPIO RPI a sériové zařízení (ústředna, GPS, meteostanice atd., nebo můžeme připojit počítač pomocí sériového kabelu a používat sériovou konzoli). Co přesně provádí modul RS232? Mikroprocesor a další komponenty na RPI byly navrženy na logice 0 a 3,3V. (Starší zařízení v minulosti používala logiku 0 a 5V) . Tyto logické úrovně je potřeba převést. Připojit RS232 přímo na GPIO piny by znamenalo poškození RPI. RS232 standard se používal po celá desetiletí a určuje rozsah hodnot napětí mezi ± 5 a ± 15 voltů. PC používá ± 12 Voltů tj. rozdíl napětí 24 voltů. Modul převodníku musí být kompatibilní s 3.3V napěťovou logikou. Rozhodl jsem se koupit hotový modul osazený obvodem MAX3232 . MAX3232 pracuje jak s 3.3V tak 5V logikou. Stačí připojit napájení 3.3V.
Zakoupený modul RS232 osazený IO MAX3232 (130,- Kč včetně poštovného) - modul je osazen 2x LED pro info RX/TX. Použití převodníku pro ovládání LED panelu (signál Rx, Tx, DTR)
Pro připojení RPI k síti Internet pomocí WiFi, nebo 3G modemu použijeme nastavení viz tyto články:
Program kontroluje soubor uložený na www a soubor uložený lokálně na SD kartě. V případě shody neproběhne synchronizace (toto omezuje neustálé stahování stejného souboru).
Propojovací kabel na propojení led panelu a automatu RPI
2x Cannon DSUB 9-M (samec)
propojení pinů v kabelu:
2-3 Rx
3-2 Tx
4-4 DTR
5-5 GND
Video - ukázka nahrátí programu a zobrazení na panelu