Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Arduino+PHPWebSockets Ethernet Shield

29-12-2016 21:32

Consegui um código ao qual funciona no Arduíno. Já que é uma tarefa bastante difícil para quem quer algo que funcione só para modificar. Usei portas 8 e 9 para os leds exemplos feito com led para acender e apagar através do Socket. Exemplo bem simples:
Index.php

<!DOCTYPE html> <html> <head> <title>LEDs</title> <style> .body { text-align: center; } .botao { width: 200px; height: 50px; margin-top: 20px; margin-left: 20px; } </style> </head> <body> <div class="body"> <h2>Acionamento de LED com Web Socket</h2> <form method="POST" action="arduino.php"> <button class="botao" type="submit" value="led1_ligado" name="estadoLed">Liga LED 1</button><br /> <button class="botao" type="submit" value="led2_ligado" name="estadoLed">Liga LED 2</button><br /> <button class="botao" type="submit" value="led1_desligado" name="estadoLed">Desliga LED 1</button><br /> <button class="botao" type="submit" value="led2_desligado" name="estadoLed">Desliga LED 2</button><br /> </form> </div> </body> </html>



arduino.php

<?php $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($sock,"192.168.31.10", 80); if ($_POST['estadoLed']=="led1_ligado"){ socket_write($sock, "1"); } if ($_POST['estadoLed']=="led2_ligado"){ socket_write($sock, "2"); } if ($_POST['estadoLed']=="led1_desligado"){ socket_write($sock, "3"); } if ($_POST['estadoLed']=="led2_desligado"){ socket_write($sock, "4"); } header("Location: index.php"); socket_close($sock); ?>

Código a ser gravado no Arduíno Substituir o IP pelo IP da sua rede. tanto do arquivo arduino.php quando deste código do Arduíno:

#include <SPI.h> #include <Ethernet.h> EthernetServer server = EthernetServer(80); void setup(){ pinMode(9, OUTPUT); pinMode(8, OUTPUT); byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,31,10); IPAddress subnet(255, 255, 255, 0); IPAddress gateway(192,168,31,1); Ethernet.begin(mac, ip, gateway, subnet); server.begin(); } void loop(){ EthernetClient client = server.available(); if(client){ switch (client.read()){ case '1': digitalWrite(9, HIGH); break; case '2': digitalWrite(8, HIGH); break; case '3': digitalWrite(9, LOW); break; case '4': digitalWrite(8, LOW); break; default: delay(1); } } client.stop(); }

1

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado