Anuncio TOP B1 Mensaje

Colapsar

Anuncio TOP B4 Mensaje (Mobile)

Colapsar

Anuncio

Colapsar
No hay anuncio todavía.

¿Es viable este proyecto? Lectura caudalimetro + enviar datos GSM

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • ¿Es viable este proyecto? Lectura caudalimetro + enviar datos GSM

    Buenos días.

    Tengo idea de realizar la lectura de un caudalímetro en medio del campo y mandar los datos resultantes todas las mañanas por GSM.

    La idea es coger la lectura actual del caudalímetro y por medio de pulsos ir aumentando la lectura en 1 (contador con flanco de subida).

    Dicha lectura actual del caudalímetro la ingresaré por primera vez, y a partir de ese dato que se vaya incrementando en 1, con cada pulso.

    Los pulsos que emite el caudalímetro, activarían un relé con el cual haría el aumento de la lectura, a través de una entrada digital.

    Esos datos quisiera que se guardaran en una Sd (seria una variable del tipo long), donde poder guardar el valor actual y ese dato que se mandara por SMS.

    Quisiera que si el arduino pierde la conexión eléctrica, continúe con el valor guardado en la Sd.

    Colocaría todos los dispositivos a una altura considerable, con lo que me gustaría poder modificar la programación por medio de una shield bluetooth.

    Los materiales que necesitaría:
    - Arduino uno.
    - Shield bluetooth.
    - Shield SD.
    - Shield GSM.
    - Relé auxiliar.

    Espero vuestros comentarios, muchas gracias por vuestra ayuda.

  • #2
    Hola, por lo que entiendo quieres utilizar un relé, cómo medio de interfaz entre el caudalímetro y el Arduino.
    Pero piensa, que tendrás rebotes en los contactos del relé. Así que yo utilizaría más bien un optoacoplador.

    Comentario


    • #3
      De momento he conseguido lo siguiente:

      - Poder poner el valor actual del caudalímetro.
      - realizar la cuenta, sin ninguna interferencia.
      - Guardar el valor actual en memoria, por hubiera fallo de corriente.

      Me falta acoplar el módulo gsm y realizar pruebas.

      A los más entendidos, ¿encontráis fallos en el programa?


      #include <EEPROM.h>
      bool dato = LOW;
      bool datoAnterior = LOW;
      unsigned long contador;
      unsigned long ValorActual=10000;
      int Direccion=0;


      void setup() {
      EEPROM.get (Direccion,contador);//Recoge el valor de la variable de la memoria eeprom
      pinMode(2,INPUT_PULLUP);
      Serial.begin(9600);

      }


      void loop() {
      if (ValorActual>contador){
      contador=ValorActual;
      }

      dato = digitalRead(2);
      if (dato == LOW && datoAnterior == HIGH)
      {
      contador++;
      EEPROM.put (Direccion,contador);
      }
      datoAnterior = dato;
      Serial.println(contador);

      }

      Comentario


      • #4
        Recuerda que los datos almacenados en EEPROM tienen formato de 1byte. Si utilizas variables long deberás partir cada variable y almacenarla en dos registros contiguos por ejem.

        Comentario


        • #5
          Si no entendí mal, la función eeprom. put se encarga de partir la variable long.
          He realizado pruebas y en principio funciona

          Comentario

          Anuncio Footer B3 Mensaje

          Colapsar

          Anuncio Footer B5 Mensaje (Mobile) 300x600

          Colapsar
          Trabajando...
          X