Escolar Documentos
Profissional Documentos
Cultura Documentos
Enviando Por Email PHP Potter e o Arduino Filosofal
Enviando Por Email PHP Potter e o Arduino Filosofal
Intro:
A materia desse ano pode ser dividida em 2 partes separadas que
funcionam juntas: montagem de circuito & arduino e php. Da pra cobrir cada
topico separadamente e mostra como que eles conversam entre si. (Nota: não
fala sobre o cron por motivos de preguica e também porque já tem mt tutorial
de 5 min na internet)
Ainda existe o monitor serial, que funciona como entrada e saida. Ele não
existe fisicamente , então pra acessar ele, tem que ser virtualmente, pela
própria IDE do arduino. Ele funciona quenem um terminal, pode tanto inprimir
quanto ler dados. Para utilizado, é preciso rodar o comando Serial.begin(freq)
(Normalmetne, a freq vale 9600).
Como eu disse, ele funciona quenem um terminal, então nada mais justo
que ele tenha suas funcoes equivalentes ao printf() e scanf(). Para imprimir
qualquer coisa no monitor serial, basta usar o Serial.println(). Ja para ler
alguma coisa, é possível usar o serail.read(), que retorna sempre o primeiro
byte no buffer do serial, ou retorna -1 caso não haja nada no buffer. Então, se
você escrever “pau no cu do gato asiatico” no serial e usar o serial.read(), ele
ira retornar ‘p’. para evitar que o metodo retorne -1, pode se usar o metodo
serial.avaliable() junto de um if, que checa se existe caracteres para leitura no
buffer.
Segue um exemplo de um programa que liga e desliga um led conforme
o que foi escrito no serial
Ok, e o que it have bird? Bom, tudo comeca no local onde o php roda: no
Linux. A maneira como o Linux lida com entradas, drivers, etc é um tanto
peculiar: o Linux enxerga qualquer coisa como um arquivo. Ou seja, da pra
você abrir, e mexer em qualquer coisa no Linux como se fosse um arquivo,
seja essa coisa um fone na entrada de audio, um executavel, um drive de dvd
(não o dvd dentro do drive, o drive em si), ou ate mesmo… um arduino
conectado na porta usb do seu pc.
Ou seja, ce pode abrir a porta usb usando php e se comunicar com o
arduino como se fosse um arquivo. Pqp genial o cara que penso nisso é um
fudido parabéns.
As entradas USBs do Linux estao na pasta /dev, e tem o nome de
ttyUSBN (sendo N um numero). Entao, da pra você rodar o comando $porta =
fopen(“/dev/ttyUSB0”, “w+”) e você tera uma variavel $porta com acesso a
placa arduino.
E agora vem o plot twist: o que você esta abrindo de fato, nada mais é do
que o monitor serial. Ou seja, se você rodar o fwrite() (que escreve no arquivo),
vai ser como se escrever no monitor serial, e se você rodar o fgets() (que
retorna uma linha do arquivo), ele vai retornar o que foi escrito no monitor
serial.
Como da pra ver no exemplo, da pra fazer uma comunicacao de dados
entre o arduino e o php. Isso significa que qualquer dado do arduino pode ser
usado em, por exemplo, uma pagina web, ou salvos em um banco de dados,
sei la, as possibilidades são quase inifinitas. O php possui funcoes nativas pra
lidar com banco de dados, então com algumas alteracoes no codigo, podemos
salvar no banco de dados toda vez que alguém mexer no led, por exemplo.
(caraio fico grande, mal coube hsauehsaue)