Temporizador Arduino

Buenas tardes Mi nombre es Nikita Sergeevich, tengo 14 años y en esta publicación quiero contarles sobre el dispositivo (y la aplicación) que desarrollé hace medio año, porque el dispositivo terminado fue soldado y ensamblado por mi padre. Aunque es posible que hayas visto un dispositivo de este tipo más de una vez, no me molesta.

Todo esto se creó para encender y apagar automáticamente la luz en el gallinero, pero también es aplicable para otros fines.





El dispositivo terminado y ensamblado puede enviar al pin digital arduino 1 o 0 especificado en el período desde y hasta el tiempo especificado, hasta exactamente minutos (fuera del período, se suministra el valor opuesto al especificado en la aplicación al agregar un temporizador).

Todos los parámetros están indicados en la aplicación. Pero a partir de aquí con más detalle ...

Hay una aplicación para Android en la que debes conectarte al módulo bluetooth y agregar un temporizador. La aplicación es intuitiva y creo que no habrá problemas con ella.





El archivo .apk estará en la carpeta de este proyecto.

Artículos requeridos:

  1. arduino;
  2. rtc module ds1307;
  3. módulo bluetooth HC-05;
  4. elementos de conexión (por ejemplo, cables);
  5. firmware para arduino; el boceto es complicado en mi opinión y es mejor no entrar en detalles.
  6. aplicación para android;

Nos ocupamos de arduino y complementos.

Sí, párrafos 1-4:



arduino - hc-05 5v - vcc gnd - gnd TX1 - RXD RX0 - TXD arduino - ds1307 5v - 5v gnd - gnd A5 - scl A4 - sda 

No olvide desconectar el pin RX0 del arduino al cargar el boceto. ¿Dijiste boceto?

5. Boceto al estudio:

 #include <Wire.h> //     i2c #include <iarduino_RTC.h> //  rtc ( c,    (Timer->firmware_for_timer->iarduino_RTC)) #include <EEPROM.h> //      iarduino_RTC time(RTC_DS1307); //        int values; //    unsigned int to_minutes(unsigned int hours, unsigned int minutes)//        { return (60*hours)+minutes; } void setup() { time.begin(); //   Serial.begin(9600); //   } void loop() { if(Serial.available() > 0) // -  { values = Serial.read(); time.settime(0,-1, values); //    delay(50); values = Serial.read(); time.settime(0, values); //    delay(50); //   for (int i = 0 ; i < EEPROM.length() ; i++) { EEPROM.write(i, 0); } ////////////////////////////////// values = Serial.read(); delay(50); //    ,    while (values > 0) //    { for(int i = 0; i < 7; ++i) { EEPROM.write(EEPROM.read(EEPROM.length() - 1) * 7 + i, Serial.read()); delay(50); } EEPROM.write(EEPROM.length() - 1, EEPROM.read(EEPROM.length() - 1) + 1); values = Serial.read(); delay(50); } ///////////////////////////////////////// } //    for(int i = 0; i < EEPROM.read(EEPROM.length() - 1); ++i) { if(EEPROM.read(i * 7 + 0) == 1) //    { bool find = 0; // time.gettime(); if((to_minutes(EEPROM.read(i * 7 + 1), EEPROM.read(i * 7 + 2)) <= to_minutes(time.Hours, time.minutes)) && //     (to_minutes(EEPROM.read(i * 7 + 3), EEPROM.read(i * 7 + 4)) > to_minutes(time.Hours, time.minutes))) { pinMode(EEPROM.read(i * 7 + 5), OUTPUT); //     digitalWrite(EEPROM.read(i * 7 + 5), EEPROM.read(i * 7 + 6)); //     } else //     { //      for (int j = 0; j < EEPROM.read(EEPROM.length() - 1); ++j) { if(EEPROM.read(i * 7 + 5) == EEPROM.read(j * 7 + 5) && (i != j) && (EEPROM.read(j * 7 + 0) == 1)) { //              if((to_minutes(EEPROM.read(j * 7 + 1), EEPROM.read(j * 7 + 2)) <= to_minutes(time.Hours, time.minutes)) && (to_minutes(EEPROM.read(j * 7 + 3), EEPROM.read(j * 7 + 4)) > to_minutes(time.Hours, time.minutes))) //     { pinMode(EEPROM.read(i * 7 + 5), OUTPUT); //     digitalWrite(EEPROM.read(i * 7 + 5), EEPROM.read(j * 7 + 6)); //     find = 1; //  } } } if(find == 0) //        { pinMode(EEPROM.read(i * 7 + 5), OUTPUT); //     digitalWrite(EEPROM.read(i * 7 + 5), !EEPROM.read(i * 7 + 6)); //      } } } } } 

Pero todo esto sin aplicación será frío e inmóvil como una piedra, así que sigue adelante.

6)
La aplicación es intuitiva y creo que no habrá problemas con ella.
Pero es mejor resolverlo de inmediato. Cuando ingrese por primera vez a la aplicación, deberá conectarse al módulo bluetooth, para ello, haga clic en "sincronizar dispositivo"
y selecciona nuestro módulo. Con la casilla de verificación "conectarse automáticamente", el teléfono intentará conectarse al módulo bluetooth cuando se abra la aplicación (este chip fue tomado de alex gyver). "Timers" es una lista de todos los temporizadores y su búsqueda por nombre. Al hacer clic en el nombre del temporizador, se abre la pantalla para cambiar este temporizador. Aquí (donde la lista de temporizadores) se encuentra en la esquina inferior derecha "+" haciendo clic en el cual se abre la pantalla Agregar temporizador, donde se indica:

  • su nombre
  • desde que hora (horas minutos)
  • a que hora (horas minutos)
  • pin controlado
  • valor para él
  • y estado (arduino lo encenderá o apagará en el momento adecuado).


Archivo de proyecto;
Hay una aplicación

En este sentido, quiero agradecerle su atención y decirle que si encuentra alguna jamba o error, no dude en escribir al respecto, lo arreglaremos.

Source: https://habr.com/ru/post/461561/


All Articles