canibalimao
Posts: 557
Joined: Tue Aug 07, 2012 8:48 pm
Location: Portugal

LCD HD44780 16x2

Sat Dec 22, 2012 6:41 pm

Boas pessoal,

Quem é que usa destes displays com o Raspberry Pi?
Há pouco tempo comprei um ao texy (na secção de vendas de add-ons ele tem lá um post para venda destes ecrãs. Quem não se quiser preocupar com soldas nem breadboards nem nada disso, recomendo-o vivamente. Além de mandar tudo direitinho ainda ajuda no caso de precisarmos de alguma coisa) e tenho me andado a divertir com isto.

Tenho vários scripts feitos com a ajuda de vários utilizadores daqui deste fórum e de videos do youtube com códigos lá postados. Basicamente peguei em tudo o que me podia dar jeito, pedi ajuda na secção de Python para algumas partes e fiz uns scripts à minha medida.
Tenho um para mostrar as condições do tempo (tal como faz o Widget do Windows Vista/7), outro para o IP, outro para o MPD/MPC (um media player que, neste momento, só o uso para reproduzir rádio). Enfiei em todos um relógio, para ficar mais bonitinho.

Deixo aqui o link do meu github que tem lá tudo: https://github.com/canibalimao/LCD-16x2-44780
Usem à vontade para os vossos projectos e mostrem aqui os resultados :D


PS: Antes que perguntem o que são aquela quantidade enorme de ciclos IF em quase todos os scripts, aviso já que são traduções que andei a fazer para deixar isto mais apresentável (gosto muito do meu Portugês) e não sabia de nenhuma maneira mais fácil :mrgreen:

magno23
Posts: 136
Joined: Sun Aug 12, 2012 4:11 pm
Location: Penafiel, Portugal

Re: LCD HD44780 16x2

Sat Dec 22, 2012 7:25 pm

estive a ver o código e reparei que quando é para apresentar o ip é apresentado o ip externo será possível editar para apresentar o ip de rede local?

canibalimao
Posts: 557
Joined: Tue Aug 07, 2012 8:48 pm
Location: Portugal

Re: LCD HD44780 16x2

Sat Dec 22, 2012 7:41 pm

Experimenta o seguinte:

Define a variável ipaddr assim:

Code: Select all

ipaddr = socket.gethostbyname(socket.gethostname())
e vê se funciona.

Se funcionar assim vou editar o programa e até ponho aquilo a mostrar o IP local e o externo.

PS: Não te esqueças de adicionar nas importações o seguinte:

Code: Select all

import socket

magno23
Posts: 136
Joined: Sun Aug 12, 2012 4:11 pm
Location: Penafiel, Portugal

Re: LCD HD44780 16x2

Sun Dec 23, 2012 2:45 pm

assim mostra 127.0.1.1 e não o meu ip de rede

canibalimao
Posts: 557
Joined: Tue Aug 07, 2012 8:48 pm
Location: Portugal

Re: LCD HD44780 16x2

Sun Dec 23, 2012 3:28 pm

Pois, esse era um dos problemas daquele código. Mas aqui no desktop funciona direito...

Então experimenta assim:

Antes do def main escreve isto:

Code: Select all

cmd = "ip addr show eth0 | grep inet | awk '{print $2}' | cut -d/ -f1"
 
def run_cmd(cmd):
p = Popen(cmd, shell=True, stdout=PIPE)
output = p.communicate()[0]
return output
(se estiveres a usar uma pen wifi, muda o "eth0" para "wlan1" ou "wlan0")

E depois, dentro do main e do while escreve isto:

Code: Select all

ipaddr = run_cmd(cmd)

PS: É capaz de ser preciso fazer este import:

Code: Select all

from subprocess import *

magno23
Posts: 136
Joined: Sun Aug 12, 2012 4:11 pm
Location: Penafiel, Portugal

Re: LCD HD44780 16x2

Mon Dec 24, 2012 5:37 pm

obrigado funcionou

magno23
Posts: 136
Joined: Sun Aug 12, 2012 4:11 pm
Location: Penafiel, Portugal

Re: LCD HD44780 16x2

Wed Dec 26, 2012 4:21 pm

já consegui colocar a iniciar o programa no boot do raspberry pi.
o lcd na primeira linha faz scroll com o ip local e o ip de internet, na segunda linha mostra as horas

canibalimao
Posts: 557
Joined: Tue Aug 07, 2012 8:48 pm
Location: Portugal

Re: LCD HD44780 16x2

Wed Dec 26, 2012 4:47 pm

Costumas usar o ambiente gráfico do raspbian (especialmente o LXDE)?

Se sim, diz-me se no gráfico da utilização do CPU não ficas com as barras verdes praí em 15/20% por estar a correr o relógio? É que a mim acontece-me isso sempre que aparece o relógio está no ecrã e quando desaparece aquilo desce logo um pedaço :lol:

magno23
Posts: 136
Joined: Sun Aug 12, 2012 4:11 pm
Location: Penafiel, Portugal

Re: LCD HD44780 16x2

Wed Dec 26, 2012 5:47 pm

nunca reparei mas tem logica isso acontecer

canibalimao
Posts: 557
Joined: Tue Aug 07, 2012 8:48 pm
Location: Portugal

Re: LCD HD44780 16x2

Wed Dec 26, 2012 6:11 pm

Tem lógica, mas não pensei que consumisse tantos recursos.
Gostava de saber se há maneira de pôr aqueles códigos mais leves, mas a única maneira que vejo é deixar de ter aquilo funcional como está agora...

magno23
Posts: 136
Joined: Sun Aug 12, 2012 4:11 pm
Location: Penafiel, Portugal

Re: LCD HD44780 16x2

Wed Dec 26, 2012 9:35 pm

se calhar com um rtc melhora, não sei

canibalimao
Posts: 557
Joined: Tue Aug 07, 2012 8:48 pm
Location: Portugal

Re: LCD HD44780 16x2

Thu Dec 27, 2012 10:33 am

Pelo que andei agora a ver, o RTC é outra função para o tempo. Acho que acaba por ser o mesmo porque ele vai estar todos os segundos a actualizar o relógio...

Bem, mas acho que não faz assim tanta diferença como isso. Se alguém tiver problemas logo se há-de acusar :D

canibalimao
Posts: 557
Joined: Tue Aug 07, 2012 8:48 pm
Location: Portugal

Re: LCD HD44780 16x2

Tue Jan 15, 2013 5:33 pm

Actualizei o meu repositório (sou o único que não gosta desta palavra por que me faz lembrar outra coisa? :lol: ) do GitHub. Meti lá um script para controlar a reprodução do MPC/MPD com uns botões e um chip MCP23017.

Pode ser que faça jeito a alguém...

Return to “Português”