
Prefácio
Se você leu meu artigo anterior ( Running line on Arduino ), provavelmente já sabe que temos a oportunidade de fazer projetos de cursos de hardware em nossa universidade. E eu, inspirado no meu trabalho anterior, decidi tentar novamente fazer algo com minhas próprias mãos. Só agora o tópico deveria ter sido mais sério. A propósito, comecei a pensar no que fazer durante as férias de inverno, ou seja, antes do semestre. Eu queria fazer algo interessante e útil ao mesmo tempo.Procure uma ideia
Certa vez, em um par sobre os Fundamentos da proteção de informações, tivemos um tópico relacionado à propriedade intelectual e patentes. O professor nos deu a tarefa de emitir uma patente para qualquer dispositivo de acordo com todos os requisitos e citou uma chaleira wifi como exemplo.Ele disse - e esqueceu. E todo mundo esqueceu, mas na minha cabeça esse tópico permaneceu. E quando chegou a hora de pensar no que fazer como curso no próximo semestre, lembrei-me desse bule de chá.A primeira coisa que decidi ver é o que já foi feito. E qual foi a minha surpresa quando vi que existem apenas três modelos de manequins com suporte a controle WiFi à venda e dois deles pertencem à mesma empresa. Estes eram o Smarter iKettle 1.0 e 2.0 e o Russian Polaris PWK 1792CGL.
É interessante que quase todas as casas possuam chaleiras elétricas comuns, e há tão poucas que são inteligentes. Comparando os recursos oferecidos pelo iKettle e Polaris, fiz uma lista dos mais necessários. Aqui está o que aconteceu:- ligar / desligar de um smartphone;
- definir qualquer temperatura para aquecer a água;
- a capacidade de descobrir a temperatura atual;
- rastrear o volume atual de água na chaleira;
- aviso e proteção contra ligar com um pequeno volume de água;
- definir hora de ativação automática;
- aviso de prontidão;
Parece real, é hora de começar a trabalhar.Procure os componentes necessários
Como não era possível fazer uma chaleira completamente nova, foi decidido modificar uma chaleira elétrica comum já pronta. Em casa, havia uma chaleira órfã com um interruptor quebrado.Então, a fundação já está lá, pensei.Agora eu tive que começar a procurar componentes para o hardware. Como já havia pouca experiência trabalhando com o Arduino, decidi implementar tudo nele. Além disso, o próprio Arduin e seus módulos são baratos.Desde que eu tive que inserir toda a parte do controle da chaleira dentro dela, a escolha recaiu sobre o Arduino Nano. É pequeno e possui uma interface para conectar um cabo, ao contrário do Pro Mini, que deve ser atualizado via UART.
O principal componente de uma chaleira wifi é, obviamente, um módulo wifi. Pesquisando na Internet por algo acessível e muitos tutoriais, encontramos o ESP8266. Ou seja, na versão 01. Eu parecia barato (cerca de US $ 2) e havia muitas instruções para conexão. Parou com isso. Quanto ao próprio módulo, a frase aqui é boa: barata e alegre. Mas mais sobre isso mais tarde.
Para controlar a temperatura, precisávamos de algum tipo de sensor de temperatura à prova d'água. Encontrei um termistor NTC à prova d'água no aliexpress, que pode suportar temperaturas de mais de 100 graus. Também encontrei um exemplo de trabalho com ele, então aqui decidi rapidamente.
Era necessário decidir como ligar a chaleira em um determinado momento, é claro, você poderia fazer o relógio do programa no Arduino e ligar a chaleira quando a hora coincidisse, mas isso funcionaria de maneira instável e, se o programa fosse reiniciado acidentalmente, tudo daria errado. Portanto, um relógio em tempo real veio em socorro aqui. Ou seja, DS1307. Eles têm energia independente (de uma bateria de 3 V) e também havia um chip de memória EEPROM de 32K bits no módulo em que eu estava parando, que eu economizava pontualmente.
Ah, sim, como a chaleira agora deve ligar programaticamente, também precisava de um relé de 1 canal.
Quanto ao sensor de nível de líquido, ele tinha que ser feito manualmente. Detalhes abaixo.Do resto, ainda eram necessários vários resistores de diferentes denominações, uma placa de ensaio para testes, uma placa de circuito para a instalação real, fiação, um ferro de solda com fluxo e solda e a maior parte da paciência.Início do desenvolvimento
Como o projeto é uma chaleira wifi, a primeira coisa que eu queria e precisava para lidar com o módulo wifi. Assim que o pacote chegou, eu imediatamente o desempacotei e comecei a conectar.Encontrei vários exemplos na Internet. Tudo está como deveria, regulador de tensão de 3,3 V, divisores de tensão para RX e TX. Coletei tudo pelo exemplo, conectei - ele não voou! Um monte de texto foi exibido no monitor da porta COM, como se viu, o módulo era constantemente redefinido. Ele não responde aos comandos AT enviados. O autor do artigo trabalha, eu não.Qual é o problema? Tentei procurar outros esquemas de conexão, etc., mas o módulo ainda é redefinido ou não exibe nada. E em todos os lugares está escrito em fonte vermelha: "Não se aplica ao módulo de 5 V, caso contrário, ele falhará." Assim, às vezes, a busca por soluções durava à noite, eu já estava pensando em comprar outro módulo, mas decidi verificar a tensão com um multímetro.Verificou-se que, quando o módulo está conectado a 3,3 V, a tensão cai abaixo de 3,2 V. Parece que, bem, tudo bem, cai e cai. Decidi alimentá-lo de outra fonte de alimentação e verificou-se que o módulo está funcionando normalmente com uma tensão acima de 3,2 V, e abaixo dele não é suficiente e é constantemente redefinido.Como resultado, por minha própria conta e risco, conectei-o a 5 V e tudo funcionou e ainda funciona bem.
Não houve problemas com outros componentes.Depois que descobri o wifi, tive que decidir o que fazer com o sensor de nível de líquido. Pesquisando, encontrei um artigo no qual o autor fez um sensor de umidade do solo. Quando o solo seca, a resistência do sensor aumenta e a tensão na porta analógica do Arduino aumenta. Ao detectar uma mudança na voltagem, a aparência de um líquido pode ser detectada. Em vez de dois contatos, 6 foi usado para determinar o nível de líquido em meu projeto: um deles está conectado à saída de 5 V e o restante às entradas analógicas e resistores de 10 kΩ ao GND.Aqui estão fotos dos testes.
Aqui está o que sensor de nível é o resultado.
A próxima coisa que testei é o relógio em tempo real. Mas trabalhar com eles é basicamente simples. Para definir o tempo e obter informações, usei exclusivamente exemplos que acompanham a biblioteca para trabalhar com o DS1307.Como resultado, quando tudo foi montado em uma tábua de pão, conseguimos um cruzamento entre fios e módulos. A propósito, nessas fotos há outro sensor de temperatura.
Introdução
Agora tudo isso tinha que ser soldado na placa de circuito. Não há nada de especial para comentar, apenas uma foto. Como você pode ver, outro botão foi adicionado para que você possa ligar a chaleira não apenas a partir de um smartphone, mas também da maneira usual.

Em seguida, você precisa colocar tudo dentro da chaleira.


Uma inserção de amianto foi adicionada para proteger todo o interior do superaquecimento.
É verdade que a caixa teve que ser levemente levantada com uma inserção plástica adicional.

Agora vá para a parte móvel.
Quanto ao aplicativo, como foi desenvolvido no sistema operacional Android, foi originalmente planejado o uso do Android Studio. Mas, para estudar novas tecnologias, decidiu-se usar uma plataforma pronta para o desenvolvimento de programas no campo da Internet das coisas. Como resultado, a escolha recaiu sobre o produto Evothings - Evothings Studio.
Aqui estão suas principais vantagens:- Um grande número de exemplos padrão no trabalho com vários módulos (Wifi, Bluetooth);- desenvolvimento de aplicativos usando JS, HTML, CSS, que permite escrever um código que funcione igualmente no Android e iOS, ou seja, a ligação a apenas uma plataforma desaparece;- facilidade de teste do aplicativo: um aplicativo é instalado no smartphone para visualizar seu desenvolvimento e todas as mensagens de teste e mensagens de erro são exibidas no programa no computador;- Uma grande quantidade de informações na Internet sobre desenvolvimento usando JS, HTML, CSS;Neste Evothings Studio, havia um exemplo de ativação do LED transmitindo uma solicitação de ativação através do ESP8266. Decidi tomar este exemplo como base, porque havia a coisa mais valiosa para mim - a comunicação com o módulo WiFi via soquete TCP. E, de maneira semelhante à forma como a solicitação de ativação do LED foi transmitida, solicitei a atualização dos sensores da chaleira, para definir o horário, a temperatura, etc.Então eu estraguei as notificações de prontidão e uma pequena quantidade de água, o benefício é que tudo em nosso tempo é facilmente pesquisado. O resultado é uma aplicação desse tipo (uma coisa boa é fazer a interface do aplicativo usando CSS):




Uma breve descrição da interação do smartphone e da chaleira
A comunicação entre o servidor e o cliente é realizada usando o módulo WiFi. Quando você liga o módulo de controle da chaleira, o módulo WiFi começa a distribuir uma rede chamada artKettle. Isso é feito usando os comandos AT no lado do servidor. Portanto, por exemplo, para colocar o módulo no modo de ponto de acesso, ele precisa enviar o comando AT + CWMODE = 2. Em seguida, usando esses comandos, você precisa atribuir parâmetros de rede, permitir a conexão de vários dispositivos e obter o endereço IP do próprio wifi.Do lado do cliente, a conexão é feita através de uma porta específica e pelo endereço IP do módulo wifi usando chrome.tcp.socket.Depois de conectar o cliente ao servidor, você pode controlar a chaleira do seu smartphone. Considere o exemplo de ligar a chaleira.Quando você clica no botão liga / desliga no aplicativo artKettle, a função correspondente da inclusão de app.kettleOn () é chamada. Dentro desta função, duas linhas são transferidas para o lado do servidor:app.sendString('H');
app.sendString('U');
A seguir, o trabalho já está do lado do Arduino. Depois que a primeira linha chega com o caractere 'H', o seguinte código é executado:if(message.indexOf("H") >= 0 && waterDetected()) {
digitalWrite(POWER_PIN, LOW);
IS_ON = true;
Serial.println("ON");
sendCIPData(0, "ON");
}
Primeiro, ele verifica se há água na chaleira chamando o método waterDetected (). Considere a opção quando houver água na chaleira.Um nível de baixa tensão é aplicado ao pino de controle do relé, que corresponde à sua inclusão, ou seja, circuito de energia fecha:digitalWrite(POWER_PIN, LOW);
Em seguida, o sinalizador é definido para indicar que a chaleira está ligada e uma mensagem na saída para o monitor da porta serial é exibida.Depois disso, é chamada uma função que transmite uma mensagem de resposta ao lado do cliente de que toda a inclusão foi bem-sucedida:sendCIPData(0, "ON");
No lado do cliente, após verificar a mensagem recebida, o botão liga / desliga está definido no estado Ativado:if (buf.substr(0, 2) == "ON") {
app.setButtonOn();
}
Depois disso, a mensagem de texto é processada com o caractere 'U' enviado do cliente para o servidor. Aqui, de maneira semelhante à inclusão, são atualizadas informações sobre a temperatura atual e o volume de líquido na chaleira.Assim, a comunicação bidirecional entre o cliente e o servidor é organizada, para que um deles saiba sobre o estado do outro a qualquer momento.Conclusão
Como resultado do projeto do curso, foi desenvolvida uma modificação para uma chaleira elétrica convencional, que permite controlá-la a partir de um smartphone via wifi. Agora, este bule pode ser atribuído aos representantes da Internet das coisas. Conseguimos implementar totalmente todas as funções; agora, esta chaleira possui os seguintes recursos:- ligar / desligar a partir de um smartphone;- definir qualquer temperatura para aquecer a água;- a capacidade de descobrir a temperatura atual;- rastrear o volume atual de água na chaleira;- aviso e proteção contra ligar com um pequeno volume de água;- definir a hora de ligar;- notificação de prontidão;As vantagens do projeto implementado são a acessibilidade da base de elementos, porque tudo o que você precisa pode ser encontrado nas lojas de componentes eletrônicos, a extensibilidade do projeto. Como a chaleira possui todos os sensores necessários instalados, ela pode ser modificada de forma programática e não piorada do que os análogos. Dada a versatilidade do módulo wifi usado, você pode conectá-lo à Internet e organizar o controle da chaleira, estando em qualquer lugar do mundo e, usando o serviço on-line para o processamento de mensagens SMS, você pode organizar a inclusão por SMS. I.e. o projeto ainda é muito expansível, há oportunidades para isso, mas eles não foram implementados, pois não faziam parte dos objetivos do projeto em desenvolvimento.Obviamente, existem desvantagens no projeto. O primeiro é a operação instável do módulo Wifi. Às vezes, um módulo perde sua rede, começa a redefinir as configurações ou simplesmente não processa os sinais recebidos. Além disso, esses são problemas populares entre os usuários deste módulo. A segunda desvantagem é a falta de desligamento mecânico da chaleira. O desligamento é implementado no software; quando o ponto de ebulição é atingido, o circuito é interrompido com a ajuda de um relé. Se o programa travar repentinamente, a chaleira pode não desligar. A terceira desvantagem é o problema de monitorar a temperatura de aquecimento. Por exemplo, se você desligar a chaleira a uma temperatura de 60 graus, o aquecimento dez continuará emitindo calor e, depois de um tempo, a temperatura da água já estará em cerca de 70 graus. Mas isso é corrigido fazendo ajustes no programa.