Controlo com Bluetooth Nano
Com um pouco de’ o tempo disponível Pensei em colocar uma via bluetooth controle. A coisa é muito simples, utilizando os módulos disponíveis no mercado. Tomei um HC-06, que permite a comunicação através de dados em série simples. O projeto não é recente, perdoar qualquer falta de inexperiência.
Eu também tentei com um PIC 16F84A, com algum sucesso, mas por problemas de agenda microcontrolador I suspendeu o projeto. Um micro vez ultrapassada, mas eu acho que eu poderia fazê-lo com um 16F628A ou 16F182x, que são pino compatível. Também porque agora não tenho mais esses microcontroladores em gavetas.
É uma operação simples de ligar as saídas de’ Arduino com os seguintes módulos e um punhado de componentes discretos para comandar um altifalante e para remover o’ de energia para o módulo de Bluetooth, a fim de desconexão de dispositivos ligados quando se esquece.
descrição
Um projeto consiste em Arduino Nano, um módulo Bluetooth e um relê’ opto-isolados.
O projeto inclui algumas características especiais :
-
O número de saídas e portas são configuráveis via firmware. Você tem que ajustar 2 variáveis [1].
-
As saídas são configuráveis alta ou baixa activa. No programa padrão tomou as saídas baixas ativos.
-
As saídas pode ser configurado quer como fixo ou como cronometrado. eu’ Arduino cuida de contagem de manutenção, mesmo aqueles que chamam o comando não está mais presente. Eu faço isso porque eu notei programas de temporização com o seu smartphone, que deve ter a contagem do prazo fixado. Isso implica uma conexão constante com o seu telefone.
-
comandos [2] Eles enviar um comando fim por meio de caracteres espaço ou um devolver-de-cabeça, ao limite quando foram enviados 6 caracteres Termina sozinho. Por que essa, pelo simples fato de que muitos programas, por Android, não dão a capacidade de adicionar caracteres não-impressão, tais como retorno-de-cabeça.
Eu escolhi o programa DCmote. O Spartan para configuração, mas fácil de entender. Especialmente para aqueles que não sabem muito l’ uso de funções de smartphones complicado. eu’ especificação de interface, e tão simples quanto possível e permite acesso rápido aos comandos, depois de ter ligado ao controle. -
As desconexões de controlo, os’ inativa usuário (sem retornos de carro) depois 30 segundos. Isso permite que outros usuários para acessar o controle. Talvez seja uma lacuna receptor Bluetooth, ao invés de uma melhoria. Desta forma, se esquece uma conexão ativa, É desligado e os outros membros (da minha família) Eles podem acessar comandos.
-
piscando, só para ver o que o sistema está em funcionamento.
-
Um comando para soar um alarme ou um outro som.
Le-mail [1] e [2] veja mais baixa.
Esquema elétrico
Obviamente, os transistores não são críticos, qualquer NPN e PNP fazer o trabalho. O R2 tem um valor de 330 Ohm, de modo a conduzir um LED para ser colocado no painel de contentor.
Os jumpers será utilizado para a programação no local, removê-los pode-se programar o’ Arduino, sem interferência, mas então eu inclinou tanto que eu esperava cascos para acomodar o Nano. Isto irá evitar possíveis fugas de tensão no sentido da’ bloco de poder.
eu’ fonte de alimentação deve ser de 5 Volt estabilizado e um tanto robusto ao poder o relé, se alimentado a partir do cartão. Melhor do que ambos um Ampere.
eu’ não Arduino’ incluídas na impressão. Neste diagrama denota uma série de conectores (4 da 8 poli) para acomodar o’ Arduino.
Circuitos impressos
ABAIXO![]() |
ACIMA ![]() |
CUIDADO !
O impresso abaixo está corretpara, para colocá-lo na acobreado rosto.
FPrograma UNCTIONALITY
Conforme definido pelas peculiaridades você também pode modificar o firmware a fim de obter a flexibilidade desejada.
[1] As variáveis que são usadas para configurar o seguinte:
#definir ACTIVE_LOW se ele veio com linha de comentário, as saídas se tornar ativo alto. I rele’ I usado em vez trabalhar em lógica negativa.
#definir buflen Você está alterado se você pode usar uma capacidade diferente da entrada serial. Para aqueles que desejam modificar o firmware para fins diferentes.
#definir OUTPUTMASK Ele define as saídas que não serão afetados por uma ignição geral. No meu caso, Eu não posso manter contato fechado para o comando definido para uso impulso para mover o portão. O sistema de portão já tem seus valores mobiliários, obviamente.
#definir NUMTIMER Você está alterado se você pode determinar quantas saídas você deseja vincular. Eu tenho um módulo 4 retransmitir, então não colocar quatro. Mas você pode aumentar até oito, tendo em conta que as atribuições definidas pelo programa são os 12,11,10,9 pernas, A0, A1, A2, A3. Estes também podem ser facilmente modificados, veja abaixo.
#definir INPUT_TMO uma definição de quanto tempo esperar antes de desconectar um usuário inativo. O valor é em segundos meios. O valor máximo é 255 (sobre 4 minutos), sem afetar outras partes do programa.
port_pin matriz[] você pode definir quais pés atribuir. Da esquerda como o primeiro atribuído.
Como você pode imaginar os valores foram colocados em uma lista de’ firmware início. Para aqueles que compreendem a programação será fácil identificá.
[2] Os comandos para serem enviados para o controlo são tais:
-
Para a ignição de uma saída fixa é controlado com uma carta capital da UMA uma H. Interverruma’ o limite imposto por quantas saídas tem sido configurado com NUMTIMER.
-
Para iniciar uma melodia usando uma carta p, independentemente de capitalizados ou miniscola. As melodias são realizados em sequência. Para os mais experientes, você pode configurá-lo para até jogar uma espécie de sirene ou outro. Basta colocar na lista const uint16_t melodia e mudança TUNENUM que estabelece quantas são. Há um limite na seg-Ghezza de uma matriz que é 127. Por segurança, o único a primeira função de carga 126 valores, ou paradas com dois zeros conseguitivi. para esclarecer, a função espera um par de valores que estão a frequência e duração.
-
Para desligar todas as saídas usando a letra X minúsculo incluindo saídas cronometrada.
-
para o’ Ignição de todas as saídas, usando uma carta X capital. Eles serão excluídos aqueles definidos não acessível a partir da máscara de saída.
-
Para comandos com temporizadores, utilizando a seguinte cadeia:
t (protagonista)
definição para indicar um temporizador, Não importa se maiúsculas ou minúsculas.um número de 0 o número de temporizadores
definido pelo firmware. CUIDADO que’ carga HEX para 4 saídas. (segundo personagem). Agora só conta 4. Se não foi habilitado comunicação serial, você vê as mensagens de erro. Assim, por exemplo 0 uma 3. A indexação começa em zero.s o m ou h
definição de unido’ medidas para definir. com s Ele indica os segundos, m Ele vai indicar os minutos e h as horas.por um período de três dígitos
bravurae para ajustar o temporizador com o tamanho desejado anterior. Para horas é o limite em 9 minério. Pode haver um problema de conjunto 999 minutos. Acho que vamos atualizar o programa mais cedo.um espaço
Ele conclui a seqüência recebida. DCmote em seguida, o programa deve definir os controles com uma terminação com espaço. As extremidades de retorno-de-cabeça.Por exemplo, t3s45, se traduz eu’ saída 4 para ativo 45 segundos.
Caso limite, enviando um valor de zero a um temporizador, este é concluído.
o pacote Ele está sempre disponível em sua totalidade, incluindo o esboço para Arduino. Se houve alguma dificuldade em compilá-lo, deixe-me saber.
I também fez o programa que converte RTTTL em valores a serem carregados para C. Como você pode notar a partir da listagem existem vários melodie Eu converti meu programa. incluído no pacote. Para a função versão necessidade python 3.5 .






Tem certeza de que não pode obter um impresso no único rosto extremamente fácil de conseguir para um hobby, Tenho a intenção de levá-lo à minha garagem / oficina quando eu criei uma rede wi-fi fiável
Para o momento em que pode obter internet lá apenas transportando a linha sobreposta sobre os cabos do 230V fonte de alimentação e local de decodificação. Enquanto alcançar a meta que eu tenho forte limitação na quantidade de dados que podem transmitir-lo, outras soluções provaram ser mais caro e menos eficiente ou menos confiável.