![]() |
|
|
|
| VHF: Canal 77 |    | ![]() |
![]() |
![]() |
![]() |
![]() |
|
#1
|
||||
|
||||
|
La idea es continuar con el sistema de telemetría de a bordo que ya comenté en otro hilo (http://foro.latabernadelpuerto.com/s...ght=telemetria), y poder ver el máximo de información a través de Internet, de lo que ocurre en nuestro barco, esté donde esté.
La página que resume los datos actuales es www.olaje.com/telemetria.htm Bien, pues ya que tenemos en la Red todos los datos NMEA y Sea Talk de a bordo, ahora estoy incorporando una placa con un micro-controlador y diversas entradas/salidas analógicas y digitales, y muy fácil de programar, además de bastante económico. He empleado la plataforma de la placa Arduino (http://www.arduino.cc/) que me ha parecido suficiente para las necesidades previstas. Así, la idea es que podamos medir temperaturas interior y exterior, humedad relativa (casi tenemos una completa estación climática, puesto que los datos de viento ya los obtenemos), un sensor de movimiento que nos avise si alguien entra en nuestro buque y envíe un sms de alerta, medir el voltaje de las baterías, avisarnos si hay agua en la sentina, etc. Por lo pronto, el prototipo está trabajando y ya lee temperaturas (ext. e interior), humedad, tensión de baterías y detecta intrusos a bordo. ![]() ![]() El software para programar la placa es gratuito, y la programación muy fácil, así que es sumamente sencillo acceder al barco desde cualquier lugar. Yo he comprado el hard en Libelium (http://www.libelium.com/tienda/catalog/), y por muy pocos n€uros podemos montar el sistema. Ya colgaré la información completa cuando el prototipo pase a versión usable y esté instalado en el barco, pero si alguno se anima a ir probandillo... ![]() Genera también una sentencia pseudo-NMEA-casero para enviar los datos de la placa Arduino junto con el resto de los equipos de a bordo. En principio, será del tipo $OJMTR (OlaJeMeTeR) recién inventado ![]() Este es el código de la primera Beta. Copiar y pegar...y funciona : #include <SoftwareSerial.h> //declarar variables float tempC; float Humedad; float Bateria; float tempCI; int tempPin = 0; int tempiPin = 3; int humPin = 1; int volPin = 2; int ledPin = 13; int interruptor = 4; int sensorPIR = 5; int PIRactivo=0; long contador = 0; #define rxPin 2 #define txPin 3 SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin); void setup() { Serial.begin(4800); //opens serial port, sets data rate to 4800 bps pinMode(ledPin, OUTPUT); pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); // set the data rate for the SoftwareSerial port mySerial.begin(4800); } void loop() { tempC = analogRead(tempPin); tempC = (5.0 * tempC * 100.0)/1024.0; tempCI = analogRead(tempiPin); tempCI = (5.0 * tempCI * 100.0)/1024.0; Humedad = analogRead(humPin); Humedad = (Humedad * 100.0) / 1024.0; Bateria = analogRead(volPin); Bateria = Bateria * 53.2 / 984; int b = 12; PIRactivo=digitalRead(sensorPIR); // Lee el sensor PIR if (PIRactivo==HIGH){ contador=1; } if (contador > 0) { contador = contador + 1; digitalWrite(interruptor,HIGH); } else { digitalWrite(interruptor,LOW); } if (contador > 20) { contador = 0; } Serial.print(b, BYTE); Serial.println("Datos enviados desde Arduino"); Serial.print("Temperatura Exterior: "); Serial.print(tempC); Serial.println("C "); Serial.print("Temperatura Interior: "); Serial.print(tempCI); Serial.println("C "); Serial.print("Humedad relativa .. : "); Serial.print(Humedad); Serial.println("% "); Serial.print("Tension Bateria ... : "); Serial.print(Bateria); Serial.println("V"); if (contador >0) { Serial.print("A L A R M A D E M O V I M I E N T O"); } mySerial.print("$OJMTR"); mySerial.print(","); mySerial.print(tempC, BYTE); mySerial.print(","); mySerial.print(tempCI, BYTE); mySerial.print(","); mySerial.print(Humedad, BYTE); mySerial.print(","); mySerial.print(Bateria, BYTE); mySerial.println(); digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); delay(500); //Pausa de un segundo y parpadeo del led } Salu2. Carmelo ( O L A J E ) ![]()
__________________
Call Sign: EA7AZH & 23Oscar2 en REMER |
| 8 Cofrades agradecieron a olaje este mensaje: | ||
capitan necora (23-03-2009), Marconcio (23-03-2009), PIK (24-03-2009), Rik (24-03-2009), robinson crusoe (23-03-2009), rolando1943 (23-03-2009), teteluis (23-03-2009), vicand66 (23-03-2009) | ||
|
|