Semana 14¶
Esta semana conectaremos sensores y actuadores a dispositivos de cómputo mediante WiFi.
Objetivos¶
- Integrar sensores y actuadores con dispositivos de cómputo utilizando WiFi
Ejercicio 1:¶
Analice el funcionamiento del siguiente código escrito en processing:
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 | import processing.net.*;
final int MAXCLIENTS = 2;
Server myServer;
Client myclients[] = new Client[MAXCLIENTS];
int numberOfClients = 0;
int val = 0;
void setup() {
size(200, 200);
myServer = new Server(this, 5204);
}
void draw() {
val = (val + 1) % 255;
background(val);
for (int i = 0; i<MAXCLIENTS; i++) {
Client clientConnected = myclients[i];
if (clientConnected != null) {
if (clientConnected.active()) {
if(clientConnected.available()>0){
String line = clientConnected.readStringUntil('>');
myServer.write(line);
myServer.write("\r\n");
sendGroup();
}
} else {
myclients[i] = null;
}
}
}
}
void sendGroup(){
Client clientToSend;
for (int i = 0; i<MAXCLIENTS; i++) {
clientToSend = myclients[i];
if (clientToSend != null) {
if (clientToSend.active()) {
clientToSend.write("Hello\r\n");
} else {
myclients[i] = null;
}
}
}
}
void serverEvent(Server someServer, Client someClient) {
int i;
for (i = 0; i<MAXCLIENTS; i++) {
if (myclients[i] ==null) {
myclients[i] = someClient;
println("We have a new client: " + someClient.ip());
break;
}
}
if (i == MAXCLIENTS) {
println("Client: " + someClient.ip()+ " is rejected");
someClient.stop();
}
}
|
- ¿Qué hace el programa? Corra el programa y conecte clientes utilizando un simulador como
- hercules.
Ejercicio 2:¶
Utilizando como base el código anterior realice un programa que permita leer el valor de un sensor BME280 y modificar el estado de un LED. El programa correrá en un computador y el sensor y actuador en un ESP32.
Ejercicio 3:¶
Simule dos sensores y actuadores más, para un total de 3.