Temporizador Arduino

Boa tarde Meu nome é Nikita Sergeevich, tenho 14 anos e, neste post, quero falar sobre o dispositivo (e aplicativo) que desenvolvi há meio ano, porque o dispositivo final foi soldado e montado por meu pai. Embora você possa ter visto esse dispositivo mais de uma vez, ele não me incomoda.

Tudo isso foi criado para ligar e desligar automaticamente a luz no galinheiro, mas também aplicável para outros fins.





O dispositivo pronto e montado pode enviar para o pino digital especificado arduino 1 ou 0 no período de e para o tempo especificado, até exatamente minutos (fora do período, é fornecido o valor oposto ao especificado no aplicativo ao adicionar um timer).

Todos os parâmetros são indicados no aplicativo. Mas daqui em mais detalhes ...

Existe um aplicativo para Android no qual você precisa se conectar ao módulo bluetooth e adicionar um temporizador. O aplicativo é intuitivo e acho que não haverá problemas com ele.





O arquivo .apk estará na pasta deste projeto.

Itens Necessários:

  1. arduino;
  2. módulo rtc ds1307;
  3. módulo bluetooth HC-05;
  4. elementos de conexão (por exemplo, fios);
  5. firmware para arduino; o esboço é complicado na minha opinião e é melhor não entrar em detalhes.
  6. pedido de android;

Lidamos com arduino e plug-ins.

Sim, parágrafos 1-4:



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

Não esqueça de desconectar o pino RX0 no arduino ao carregar o sketch. Você disse esboço?

5. Faça um esboço para o estúdio:

 #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)); //      } } } } } 

Mas tudo isso sem aplicação será frio e imóvel como uma pedra, então siga em frente.

6
O aplicativo é intuitivo e acho que não haverá problemas com ele.
Mas é melhor descobrir isso imediatamente. Quando você entra no aplicativo pela primeira vez, é necessário conectar-se ao módulo bluetooth. Para isso, clique em "sincronizar dispositivo"
e selecione nosso módulo. Com a caixa de seleção “conectar automaticamente”, o próprio telefone tentará se conectar ao módulo bluetooth quando o aplicativo for aberto (este chip foi retirado de alex gyver). “Timers” é uma lista de todos os temporizadores e sua pesquisa por nome. Clicar no nome do cronômetro abre a tela para alterar esse cronômetro. Aqui (onde a lista de cronômetros) está localizada no canto inferior direito "+", clique no botão em que a tela Adicionar cronômetro é aberta, onde é indicado:

  • o nome dele
  • a partir de que horas (horas minutos)
  • a que horas (horas minutos)
  • pino controlado
  • valor para ele
  • e estado (o arduino o ativará ou desativará na hora certa).


Arquivo do Projeto;
Existe uma aplicação.

Sobre isso, quero agradecer sua atenção e dizer que, se você encontrar algum batente ou inseto - sinta-se à vontade para escrever sobre isso, nós vamos consertar.

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


All Articles