sensor de temperatura y humedad con resultados en .txt

hola he visto varios proyectos de temperatura y humedad con DTH11 que usa arduino UNO 328 y pantalla LCD, ahora mi inquietud a ver si pueden guiarme:

quiero sacar los datos conectando el UNO por USB y que se me genere un archivo .txt con los valor de temp y hum. algo asi:

32º 25%

O que me genere un archivo TXT con cada valor un .txt con la temperatura y otro .txt con la humedad Que genere solo un valor el el TXT por cada actualizacion, es para usarlo en un software de automatizacion de RAdio

Espero apoyo saludos

Pasar los datos al pc por usb es facil, ya que puedes usar la comunicacion serial, pero necesitaras hacer la aplicacion en el pc, que grabe esos datos en un txt.

Realmente, con un programa de terminal serial, como por ejemplo putty, puedes grabar en un txt todo lo recibido por serial. Quizá eso te podria servir.

el tema que no tengo las librerias y no se python, tengo algo de nocion en VB

si huera un codigo fuente podria modificarlo, pero no he encontrado nada

Codigos en VB hay por todos lados Codigos para el arduino por puerto serie hasta en los ejemplos.

Ulises ve a documentación y mira los dos tutoriales clases 1 a 7 y 8 hasta no se donde.

nada, el no se hasta donde no sirve, no es pago gracias por tu apoyo, pero no necesito ese tipo de comentarios

ulises2012 aquí tampoco necesitamos comentarios como el tuyo, una búsqueda de menos de 1 minuto me ha dado tu respuesta: https://ardubasic.wordpress.com/2013/11/04/comunicacion-con-visual-basic/ (Español) http://www.instructables.com/id/Using-Visual-Basic-to-control-Arduino-Uno/ (Inglés)

Si surbyte, te recomendó esos tutoriales es porque tu pregunta es muy básica y no tiene nada de malo que sea básica, si no que ha sido respondida miles de veces.

Por último, te dejo el link con las normas del foro: http://forum.arduino.cc/index.php?topic=310954.0

El punto 3 lo deja bien claro.

jaja listo gracias no sabia que habia que buscar por google jaja si hice un post es por que no encontre nada en google, lo que me pasaste no me sirve de nada, no tiene nada que ver con lo que necesito

quiero sacar los datos conectando el UNO por USB y que se me genere un archivo .txt con los valor de temp y hum.
algo asi:

32º
25%

O que me genere un archivo TXT con cada valor un .txt con la temperatura y otro .txt con la humedad
Que genere solo un valor el el TXT por cada actualizacion, es para usarlo en un software de automatizacion de RAdio

Ulises2012.
Para lograr lo que quieres un archivo .txt de temp y otro de humedad, debe haber un programa del lado que recibe datos serie luego del USB (PC por ejemplo) , que lo haga.
Lo que te pasó gepd es exactamente eso programado en VB.NET.
Escribes un programa con esa guía, NO ESE PROGRAMA, que lea los valores serie que recibe de temp y humedad, y con cada un lo ruteas a un archivo .txt

ulises2012: jaja listo gracias no sabia que habia que buscar por google jaja si hice un post es por que no encontre nada en google, lo que me pasaste no me sirve de nada, no tiene nada que ver con lo que necesito

Si no tiene NADA que ver con lo que necesitas entonces no es culpa nuestra, deberías reconsiderar reescribir tu petición. Tú estás buscando que alguien te escriba un programa de VB en un foro de Arduino... Estoy casi seguro que lo que necesitas está en los enlaces anteriores, lo único que falta es escribir la información en un archivo.

Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter("c:\test.txt", True)
file.WriteLine("Here is the first string.")
file.Close()

También lo encontré en el primer resultado de google. Con eso está todo lo que solicitas en tu primer post.

Si estás pidiendo ayuda lo mínimo es que nos ayudes a entenderte...

ulises2012: jaja listo gracias no sabia que habia que buscar por google jaja si hice un post es por que no encontre nada en google, lo que me pasaste no me sirve de nada, no tiene nada que ver con lo que necesito

Loooooool te pasan herramientas para ayudarte y así le agradeces al compañero del foro? Wooow o eres un usuario troll o de verdad eres arrogante muchacho y quieres que alguien te haga el trabajo y gratis.

si me va a dar un concejo o una supuesta herramienta que sea la indicada sino que no pierdan tiempo, veo que todos los que saltan en el foro quieren dinero, es un foro de ayuda o un foro comercial

Cual es tu duda finalmente, intenta aclararle a la comunidad que es lo que no entendemos?

NOTA: Estas reescribiendo tu pregunta en cuanto post viejo encuentras. Eso es doble post y ya te he reportado. En dos hilos.

No te hagas drama surbyte tienes el sindrome del moderador ja y no lo sos
Dejando de lado tu comentario quiero aportar lo poco que he podido hacer por mi estado de novato

Logre hacer con python que me genere un .txt con los resultados del monitor serie, pero aqui vuelve mi ignoracia

Me genera ambos datos y no se renueva el .txt siempre muestra todos los datos q va generando uno debajo del otro, el otro problema q hay que ir ejecuntandolo manualmente para q de el .txt

Con lo ya obtenido como puedo hacer para que me tire 2 .txt uno con la temp. y el otro con la humedad
y siempre en una sola linea. He logrado ser claro o todavia me falta mas profesionalismo.

Adjunto el .py y el .txt que genera

accel.txt (22 Bytes)

ulises, ¿para qué el sarcasmo, qué ganas con eso? no te das cuenta aquí hay solo gente intentando ayudarte.

Si te hace falta profesionalismo, pero no en el sentido del conocimiento, si no de saber respetar al resto de las personas.

Por último te has olvidado del archivo .py

Aca va el .py

https://mega.nz/#!ZkNlFb7B!UvNU1yk8YMh5CRsPYIezKkia_OskgO6nRkZda4rRcR8

Lo que entiendo es que ¿quieres que el txt siempre contenga dos valores?

si es así debes modificar

fmode = 'ab'

por

fmode = 'wb'

mil respetos hacia ti gepd, hasta ahora ningun moderador me a llamado la atencion.
que un usuario se crea moderador no es una ayuda, pero bueno espero que me puedas ayudar a solucionar mi tema, o por lo menos pude hacer un pequeño aporte, saludos cordiales

Veo difícil que algún moderador te llame la atención ya que no hay muchos, de hecho creo que hay uno y no pasa muy seguido por el foro.

Para los que estamos más seguido por aquí, es de ayuda para nosotros mismo mantener el foro porque es la forma en que podemos seguir ayudando. Si todo fuese tan desordenado no habría manera de encontrar información, ni de entender explicaciones. Imagina que la utilización de tags es una de las cosas más básicas que se pide y sin embargo la mayoría de usuarios nuevos llegan aquí a solicitar ayuda "urgente" con un post que es difícil de entender, porque no está toda la información, está desordenada o también, está mal redactada.

Espero que entiendas la situación, de todos en general, a veces es un poco agotador tener que repetir TODOS los días el mismo discurso y como te digo son cosas básicas. El lenguaje escrito hoy día suele ser más complicado, no sé por que la mayoría se quedó con la impresión que los foros son igual que un celular e intentan escribir lo menos posible, como si alguien les fuese a cobrar por palabras. Recuerda que uno "cosecha lo que siembra"

Volviendo al código

import serial

addr  = 'COM5'
baud  = 9600
fmode = 'ab'
reps  = 11
nfiles = ['hum.txt','temp.txt']

arduino = serial.Serial(addr, baud, timeout=.1)

with serial.Serial(addr,baud) as port:

    for i in range(reps):
        x = port.read(size=2)
        if(x):
            data = x.split("#") # divide la información recibida con el simbolo "#"
            index = 0
            for values in data:
                    outf = open(nfile[index],fmode) # escribe en cada archivo
                    outf.write(values)
                    outf.flush()
                    index += 1

Así es como deberías tener tu archivo python para que te escriba en cada txt, Lo único que debes cambiar es la forma en que envías la cadena desde arduino.

en vez de enviar:

H = 18.00%  T = 29.0

Modifícalo para que sea

H = 18.00%#T = 29.0

Ese símbolo se utilizará para dividir la cadena en python. Puede que te encuentres con algún error, no probé el código, pero esa es la idea.

muchas gracias mañana lo pruebo y comento los resultados, bendiciones

Hola mi muy distinguido amigo:

Por lo que he leído desde el principio, buscas un registro de datos, también conocido data log o logger. Ese ejemplo que buscas lo tengo pendiente en mi recolección de futuro documentación y ejemplo que estoy haciendo poco a poco en el cual puedes ver algo aquí.

Buscas que Visual Basic .net registre datos y lo guarde en un archivo .txt. Estoy haciendo ese ejemplo por mi mismo con Visual C# que es el mejor que entiendo, luego lo paso a Visual Basic y Visual C++ tal como he hecho con otros tutoriales como este que puedes ver. (27 MB de pdf).

Hay que tener las cosas claras de que es lo que queremos para hacer algo.

Usar una entrada analógica para el DTH11 (También vale para el DTH22/RHT03).

Para saber cual usar si elDHT11 o el 22 mirar esta librería.

#include <DHT.h>
DHT dht(2, 11);

void setup() {
 Serial.begin(9600);
 dht.begin();
}

void loop() {
      float h,t;
      h = dht.readHumidity();
      t = dht.readTemperature();
      if (isnan(t) || isnan(h)) {
      Serial.println("Algo falló ");
      } else {
      Serial.print("Humedad: ");
      Serial.print(h);
      Serial.print(" %\t");
      Serial.print("Temperatura: ");
      Serial.print(t);
          Serial.println(" *C");
      }
}

Si lo que quieres es guardar los datos en una tarjeta SD para mirarlo con más calma sin tener que usar el puerto serie.

#include <SD.h>
#include <DHT.h>
DHT dht(2,11);
const int intervalo = 10*1000; 
long tiempoUltimaLectura = 0;  
long tiempoActual = 0;         
float h,t;       
              
void setup() {
  if (inicioSD() == true) {
     dht.begin();
  }
}

void loop(){
  tiempoActual = millis();
  if (tiempoActual > tiempoUltimaLectura + intervalo) {
    h = dht.readHumidity();
    t = dht.readTemperature();
    if (!isnan(t) || !isnan(h)) {
 File mifichero = SD.open("datalog.csv", FILE_WRITE);
 if (mifichero==true) {
     mifichero.print(h);
     mifichero.print("\t");  
     mifichero.println(t);
     mifichero.close();
     tiempoUltimaLectura = millis();
 }  
    }
}

boolean inicioSD() {
  boolean resultado = false;
  pinMode(10, OUTPUT); 
  if (SD.begin(4)==false) {
    resultado = false;
  } 
  else {
    File mifichero = SD.open("datalog.csv", FILE_WRITE);
    if (mifichero == true) {
      mifichero.println();
      mifichero.println("rH (%) \t temp. (*C)");
      mifichero.close();
      resultado = true;
    }
  }  
  return resultado;
}

Si vas a usar el primer código ya que quieres generar un archivo .txt con Visual Basic .net
Crear un protocolo de comunicación con el puerto serie o USB como se explica en los tutoriales de arriba, incluido este que hice hace días, menos de una semana.
Guardar en una variable los datos recibidos del sensor DHT11 y guardaro en un richTextBox. Aquí decidirás si guardar los datos de la temperatura y humedad directamente en el .txt ya creado tanto de forma manual o automático si no hay archivo desde antes.
También puedes poner fecha y hora en cada medida del sensor. La fecha y hora corresponde el que tienes en el PC o odenador que tengas conectado Arduino.
Lo de actualizar cada archivo cada cierto tiempo, tienes que tener claro que es lo que quieres realmente. Que cree un archivo por cada día, cada mes, cada año…???
También por cada cierto minutos crea un registro o log de tamperatura y humedad, si lo haces en cada segundo, se llenará al momento.
Todo eso hay que programarlo.

Como puedes ver en este enlace, tengo pendiente hacer el sensor de temperatura con Visual Studio .net 2015, usando todos los lenguajes y tecnología WPF.

El PDF de 27 MB indica como leer los datos de entrada del puerto de Arduino, aunque este son datos de textos que lee, también lee entradas analógicas, lo que tienes que programarlo que se muestre en dos label, el de Humedad y el de Temperatura. Exactamente lo que pides, cuando sepas separar los dos valores que recibes por el puerto serie, y podrás hacer el archivo .txt. (En estos momentos estoy averiguando como se hace de la mejor forma).

Estoy usando en este momento el Visual Studio Community 2015 gratuito bajo C#, como dije, lo pasaré luego a VB y VC++.

Como vez arriba, tiene que mostrar esos valores de forma independiente, se guarda en las variables correspondiente, luego lo pasas a un .txt.

Del pdf de 27 MB indicado arriba, puedes probar el ejemplo siguiendo el tutorial exactamente en la página 181. Si aún tienes dudas, puedes ir cogiendo ejemplos e ideas por este vídeo tutorial que puedes verabajo.

Ver vídeo.

Un cordial saludo, ánimos y adelante. :wink:

PD: En estos momentos estoy haciendo el documento sobre recibir entrada digital, por otro lado inventigando como crear un archovo .txt y guardar datos en su interior para el otro tutorial. :wink: