Codigos versión cliente y servidor del 29 de mayo
![](/sites/default/files/styles/imagenes_grandes/public/default_images/defecto_0_5.jpg?itok=9WTQWNnR)
Codigo servidor
#include <SoftwareSerial.h>
SoftwareSerial mySerial (8,9); // rx, tx
int ledPin = 13;
void setup(){
mySerial.begin (9600);
Serial.begin (9600);
pinMode(ledPin, OUTPUT);
pinMode(8, INPUT);
pinMode(9, OUTPUT);
}
void loop(){
//leer de 1
Serial.println("leer 1");
mySerial.print("g1");
Serial.print("g1");
//leer respuesta
String lectura="";
while(mySerial.available()){
lectura+=(char)mySerial.read() ;
}
if(lectura!=""){
Serial.println("\n1 dice:");
Serial.print(lectura);
}else{Serial.println("no hay respuesta");}
delay(3000);
}
/*
while(mySerial.available()){
Serial.println(mySerial.read( ));
Serial.println("");
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
}
delay(1000);
Serial.print(".");
*/
-------------------------------------------------------------------------------------
Codigo cliente
/*
Isaac espinosa Arduino_lm35
*/
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8,9); //rx,tx
int pin = 0; // seleccion del pin de entrada analogica
int tempc = 0,tempf=0; // variables de temperatura
int tempc1 = 0,tempf1=0; // variables de temperatura
int samples[5]; // variable para guardar el numero de iteraciones para mejorar la medicion
int maxi = -100,mini = 100; // Limites de temperatura
int i;// variable de iteraciones
char MS = 'm'; // variable para diferenciar si el arduino es master o esclavo.
void setup()
{
pinMode(8,INPUT);
pinMode(9,OUTPUT);
mySerial.begin(9600); // inicia la comuncación serial
Serial.begin(9600); // inicia la comuncación serial
}
void loop()
{
String content = "";
String texto = "el contenido es ";
char character;
while(mySerial.available()) {
character = mySerial.read();
content.concat(character);
}
texto.concat(content);
Serial.println(texto);
if (content == "g1") {
leerLM35C();
escribir_terminal();
}
tempc = 0; //inicialisa la variable con valor de 0
delay(1500); // retardo para iniciar de nuevo el proceso
}
float leerLM35C(){
for(i = 0;i<=4;i++){ // realizara 5 iteraciones
samples[i] = ( 5.0 * analogRead(pin) * 100.0) / 1024.0; //iteraciones entre resolucion
tempc = tempc + samples[i];
delay(100); //retardo para realizar de nuevo el muestreo
}
tempc = tempc/5.0; // mejoramos la precision
tempf = (tempc * 9)/ 5 + 32; // conversor a grados fahrenheit
if(tempc > maxi) {
maxi = tempc;
} // max temperatura
if(tempc < mini) {
mini = tempc;
} // min temperatura
return tempc;
}
//
void escribir_terminal(){
mySerial.print(tempc,DEC); //variable de temperatura
Serial.print(" Temperatura, "); // impresion de temperatura en Celsius
Serial.print(" Sensor Master, "); // impresion de temperatura en Celsius
Serial.print(" Celsius, "); // impresion de temperatura en Celsius
Serial.print(tempc,DEC); //variable de temperatura
Serial.print(", Fahrenheit"); // impresion de temperatura en Fahrenheit
Serial.print(tempf,DEC); //variable de temperatura
Serial.print("-> Max ");
Serial.print(maxi,DEC);
Serial.print(", Min ");
Serial.print(mini,DEC);
Serial.println(" ,Arduino_lm35"); //nombre del proyecto
}