Como mandar datos de php a arduino?
Publicado por Marcos (6 intervenciones) el 16/09/2018 17:27:21
Hola buenas tardes, tengo un problemas y es que tengo una pagina web con unos botones que tiene que encender un actuador, el tema es que no puedo mandar esos datos a arduino, y no puedo crear la estructura del html en el sketch de arduino (algo que no me conviene), ademas de que cuando quiero recibir los datos en php en el arduino me imprimi br/ pero cuando pongo una variable fija me imprimi bien.. Adjunto el codigo
Codigo de Arduino
Codigo PHP
Codigo de Arduino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <Ethernet.h>
#include <SPI.h>
////////////////////////////////////////////////////////////////////////
//CONFIGURE
////////////////////////////////////////////////////////////////////////
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // Direccion MAC
byte ip[] = { 192, 168, 0, 150 }; // Direccion IP del Arduino
byte server[] = { 192,168,0,101 }; // ip del Hosting
IPAddress dnServer(192,168,0,101);
// the router's gateway address:
IPAddress gateway(192,168,0,1);
// the subnet:
IPAddress subnet(255, 255, 255, 0);
EthernetClient client;
String location = "http://192.168.0.100/javascript/index.php HTTP/1.0";
//EthernetClient client;
char inString[32]; // string for incoming serial data
int stringPos = 0; // string index counter
boolean startRead = false; // is reading?
void setup(){
Ethernet.begin(mac);
Serial.begin(9600);
}
void loop(){
String pageValue = connectAndRead(); //connect to the server and read the output
Serial.println(pageValue); //print out the findings.
delay(3000); //wait 3 seconds before connecting again
}
String connectAndRead(){
//connect to the server
Serial.println("connecting...");
//port 80 is typical of a www page
if (client.connect(server, 80)) {
Serial.println("connected");
client.print("GET ");
client.println(location);
client.println();
//Connected - Read the page
return readPage(); //go and read the output
}else{
return "connection failed";
}
}
String readPage(){
//read the page, and capture & return everything between '<' and '>'
stringPos = 0;
memset( &inString, 0, 32 ); //clear inString memory
while(true){
if (client.available()) {
char c = client.read();
if (c == '<' ) { //'<' is our begining character
startRead = true; //Ready to start reading the part
}else if(startRead){
if(c != '>'){ //'>' is our ending character
inString[stringPos] = c;
stringPos ++;
}else{
//got what we need here! We can disconnect now
startRead = false;
client.stop();
client.flush();
Serial.println("disconnecting.");
return inString;
}
}
}
}
}
Codigo PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form method="get">
<input type="submit" name="enviar" value="Encender">
<input type="submit" name="enviar" value="Apagar">
</form>
</body>
</html>
<?php
// $azar = 1;//base_convert (rand (10000,9999999), 10, 36);
// echo '<'. $azar . '>';
//$var = $_POST['enviar'];
$var = 12121;
echo '<'. $var .'>';
?>
Valora esta pregunta
0