Go Down

Topic: Galpón Automatizado para la Cría de Conejos (Read 1 time) previous topic - next topic

gatul

#30
Dec 14, 2020, 04:02 am Last Edit: Dec 14, 2020, 04:08 am by gatul
Si, me imagino las temperaturas que se pueden alcanzar porque ha habido algún galpón en casa de mis padres y recuerdo que podía ser un infierno, también en el trabajo había grandes galpones y las diferencias de temperatura eran abismales entre las zonas ventiladas (cerca de los accesos por ej.) y las zonas menos ventiladas.

Estoy imaginando alternativas para aislar un sensor que se sopecha que está fuera de rango, de la forma planteada no me convence (creo que ya lo dije antes...).
En cuanto tenga algo consistente te cuento y lo vemos.

lindbergf

Hola a todos, mi proyecto ha avanzado bastante pero todavia me queda trabajo por hacer, y nuevamente les tengo una pregunta,

tengo una tarjeta Sim800l EVB, la cual conecto a mi Arduino Uno con toma de corriente de externa, y funciona pero cuando la quiero pasar para mi Arduino Mega, no me funciona.

cambio los puertos de comunicación en el Uno son 10 y 11 y en el mega 18 y 19, quiero recalcar que es el mismo código, y las mismas conexiones de voltaje externas, 

Code: [Select]
#include <SoftwareSerial.h>
SoftwareSerial sim(18, 19);
int _timeout;
String _buffer;
String number = "+123456789"; //-> change with your number
void setup() {
  //delay(7000); //delay for 7 seconds to make sure the modules get the signal
  Serial.begin(9600);
  _buffer.reserve(50);
  Serial.println("Sistem Started...");
  sim.begin(9600);
  delay(1000);
  Serial.println("Type s to send an SMS, r to receive an SMS, and c to make a call");
}
void loop() {
  if (Serial.available() > 0)
    switch (Serial.read())
    {
      case 's':
        SendMessage();
        break;
      case 'r':
        RecieveMessage();
        break;
      case 'c':
        callNumber();
        break;
    }
  if (sim.available() > 0)
    Serial.write(sim.read());
}
void SendMessage()
{
  //Serial.println ("Sending Message");
  sim.println("AT+CMGF=1");    //Sets the GSM Module in Text Mode
  delay(200);
  //Serial.println ("Set SMS Number");
  sim.println("AT+CMGS=\"" + number + "\"\r"); //Mobile phone number to send message
  delay(200);
  String SMS = "Hola Roma avisame si te llego este mensaje";
  sim.println(SMS);
  delay(100);
  sim.println((char)26);// ASCII code of CTRL+Z
  delay(200);
  _buffer = _readSerial();
}
void RecieveMessage()
{
  Serial.println ("SIM800L Read an SMS");
  sim.println("AT+CMGF=1");
  delay (200);
  sim.println("AT+CNMI=1,2,0,0,0"); // AT Command to receive a live SMS
  delay(200);
  Serial.write ("Unread Message done");
}
String _readSerial() {
  _timeout = 0;
  while  (!sim.available() && _timeout < 12000  )
  {
    delay(13);
    _timeout++;
  }
  if (sim.available()) {
    return sim.readString();
  }
}
void callNumber() {
  sim.print (F("ATD"));
  sim.print (number);
  sim.print (F(";\r\n"));
  _buffer = _readSerial();
  Serial.println(_buffer);
}


este código no es mío, pero debido al error que me presentaba buque muchos códigos a ver cual funcionaba, este lo hace pero solo en Uno y no en Mega, Sabrán ustedes el porque.

abajo coloco la conexión del Uno y en el mega solo cambian los pines

Saludos desde Cumaná Venezuela.






gatul

Recuerda que la SIM800 necesita 2A como mínimo, no puedes alimentarla tomando los 5V desde el arduino.

Saludos

lindbergf

Hola a todos, Gracias Gatul, mira ya solucione el problema en parte, ya puedo enviar SMS con el Mega pero no recibo la respuesta del envió ni los mensajes entrantes en el monitor serial, y con el Uno si podía, aclaro que es el mismo código, por la corriente y voltaje estoy tranquilo tengo una fuente regulada de 5v 4A, solo para el Sim800l.

Aun sigo en la lucha.

Saludos desde Cumaná Venezuela.

surbyte

Hola @lindbergf no he leido completamente tu hilo pero hasta la mitad y el problema del DHT11 quiero decirte que no es un buen sensor. Justamente es de los peores que existen.
En cambio el DHT22 esta entre los mejores. La gran diferencia a priori mas alla de la precisión de ambos es que uno (DHT11) solo muestra grados Celcius y el otro (DHT22) decimas de grado Celcius.
Recuerdo un trabajo donde se comparaban todos los sensores y el DHT22 resultó ser el mejor de todos incluido el DS18b20, el LM35, DHT11, etc, (otro que no recuerdo).


Luego te haré mas comentarios pero quería dejarte este por ahora mas allá que puedas o no cambiarlo. Solo tenlo en cuanta si se da la oportunidad de cambiarlo.

baruk

me sumo a la sugerencia de surbyte, el sensor DHT11 es pésimo, te recomiendo que lo sustituyas y te ahorrarás unos cuantos dolores de cabeza.
No hay dada mejor que una buena silla gaming para sentarse a programar las piruetas de mi Arduino :) (https://www.sillasgaming.page)

Go Up