Crie um site ESP8266 para controlar até 8 relés em nosso controlador de relé de canal XC4418 8

Use relés sem esforço com esta configuração simples de duas partes! Basta conectar qualquer dispositivo que você deseja testar ou ativar o módulo de relé; Em seguida, use o aplicativo de telefone embutido para controlá-los sempre que quiser. Defina relés para alternar, temporizador ou ativação momentânea; E até os colocou em determinados momentos do dia. Ótimo para kits de rega de plantas automáticos, dispositivos de teste, luzes de controle ou qualquer outra carga de até 10 amperes.
| Qty | Código | Descrição |
|---|---|---|
| 1 | XC4418 | Controlador de relé de 8 canais |
| 1 | XC4411 | Uno com wifi |
Como sempre, você deve ter a biblioteca ESP8266 instalada na sua ferramenta Arduino IDE, juntamente com o plug-in ESP8266 Data-Upload. Caso contrário, você pode obter qualquer um de baixo:
Este sistema é uma configuração bastante simples. Como sabemos, o XC4411 é um UNO e ESP combinado em uma única configuração da placa. A parte da ESP lidará com um programa simples de "web-aplicativo", que se comunicará com o UNO.

A parte UNO do código será simplesmente responsável por ativar e controlar os relés depois de receber um comando.
O XC4411 conecta o UNO e o ESP através da porta serial, o que significa que simplesmente teremos que fazer algum Serial.read() e Serial.write() para se comunicar entre os dois. Para simplificar as coisas, manteremos o fluxo de dados de uma maneira, para que o ESP nunca saiba como os relés se parecem, o que significa que o web-app não poderá mostrar como são os relés reais, mas podemos fazer palpites simples.
Esta é uma compilação simples de um módulo, graças à simplicidade da placa XC4411.

Basta conectar 5V e GND aos dois pinos superiores da placa de retransmissão (você deve descobrir que eles são rotulados por VCC e GND ). Em seguida, conecte tudo o outro IN# pins aos pinos digitais do UNO. Para simplificar as coisas, mantemos os pinos em ordem, a partir do Pin 2 e subindo até Pin 9 - isso corresponderá ao que está na placa de retransmissão, começando do lado inferior.
É uma idéia razoável manter a aba verde entre os pinos COM e GND também na placa de retransmissão.
No XC4411, você deve encontrar a linha de troca de dip-switches. Isso é usado para definir em que modo o dispositivo está.

(O nosso está um pouco sujo devido à frequência com que o usamos).
Para esta seção, queremos programar o lado da ONU, então use uma caneta ou de outra forma para definir as trocas de mergulho como tal:
| Alfinete | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| Estado | DESLIGADO | DESLIGADO | SOBRE | SOBRE | DESLIGADO | DESLIGADO | DESLIGADO | DESLIGADO |
Em seguida, abra a parte uno/uno.ino do código no editor do Arduino IDE e faça o upload normalmente.
Você deve ser capaz de testar esse lado, abrindo o Serial Monitor e definindo as opções para:
115200 BaudEm seguida, digite um comando como:
>4a
Se você realmente deseja depurar o código, deve encontrar alguns define na linha 10 e 11 do código ONO. O da linha 10 produzirá texto semelhante ao abaixo.

O outro define (na linha 11) não fará nada e simplesmente ligará o relé. Você deseja que a linha 11 seja definida quando finalizar o projeto.
Defina as trocas de mergulho como abaixo.
| Alfinete | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| Estado | DESLIGADO | DESLIGADO | DESLIGADO | DESLIGADO | SOBRE | SOBRE | SOBRE | DESLIGADO |
Para esta parte, você precisa abrir o código ESP/ESP.ino no Arduino IDE e alterar o tipo de placa para a placa Generic ESP8266 .
Altere o "tamanho do flash" do programa para 4M (3M SPIFFS) - isso será dividido em parte do código para que possamos caber em nossa data/ pasta. Você encontrará o código do nosso site na pasta de dados, que queremos colocar tudo no ESP. Abaixo está uma captura de tela de nossas configurações.

Em primeiro lugar, faça o upload do código normalmente. Se você pressionar o upload e descobrir que o IDE não está no upload, ou obterá alguma saída como esta:

Isso significa apenas que o IDE está esperando o ESP reiniciar. Pressione o botão RESET na placa quando vir o IDE mostrar esta mensagem. Deve ser carregado sem problemas.
Depois que o código for concluído, use a ESP Data Upload Tool (conforme destacado na imagem acima) para fazer upload de nosso site no ESP. Você precisará pressionar o botão de redefinição semelhante a antes. Depois de programado, você pode desligar o switch 7 e abrir o monitor serial para ver qual saída o ESP tem quando se conectar ao ponto de acesso "Controlador de relé" e navegar para http://192.168.4.1 - ou apenas continuar.
Semelhante ao código ONO, temos outro grupo de define para depuração. Você pode ativar ou desativar as mensagens de depuração dessa maneira.
Algumas coisas importantes a lembrar, ao alterar o código:
Flash size da mesma forma. Se você alterar, terá que reaparecer o código e o site.Depois que as duas metades estiverem programadas, finalmente mude os interruptores de mergulho para abaixo.
| Alfinete | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| Estado | SOBRE | SOBRE | DESLIGADO | DESLIGADO | DESLIGADO | DESLIGADO | DESLIGADO | DESLIGADO |
Isso conectará a série do ESP à série da ONU. Agora é alimentado apenas pelo USB e o monitor serial não estará conectado a nada.
Abra o Wi -Fi do seu telefone e reinicie o XC4411 - você deve descobrir que existe uma nova rede sem fio chamada "Controlador de Relé". Conecte -se a ele, depois abra o navegador e vá para: http://192.168.4.1

O site não tem muito o que olhar, mas funciona. Você deve poder pressionar botões e encontrar os relés ligados e desligados. Se você souber como fazer com que um site pareça bom e deseja ter uma foto para fazer isso parecer melhor, faça um novo desenvolvimento de um novo data/ pasta e envie -o na guia Github Issles ou bifurque o repositório e envie uma solicitação de tração.
Se você encontrar algumas coisas que não estão funcionando, conecte seu computador à rede (alternativamente, conecte o ESP à sua rede doméstica) e abra o site no seu computador. Você poderá abrir a "Ferramenta de Inspetor Chrome" e encontrar um console que produza mensagens.
Uma maneira segura de testar o que está acontecendo, no entanto, é conectar o monitor serial ao dispositivo (com as trocas de mergulho correspondentes à seção que você está testando) e testar cada parte do código conforme necessário.
>3a liga o relé 3 e >3d desliga o relé 3.>1a no monitor serial. Obviamente, o site precisa de trabalho, mas qualquer número de alterações pode acontecer com este projeto. Você ainda deve ter alguns pinos livres e tudo o que você precisa fazer para acrescentar algo é:
Abaixo estão alguns segmentos de código para explicar.
No site está um botão que usamos para ativar o relé, é um elemento simples <button id='3' class='relay'></button> que tem o id do pino (não inteiramente, mas próximo o suficiente para este exemplo).
Em seguida, temos algum código JavaScript (simplificado):
$ ( "button.relay" ) . on ( "click" , function ( ) {
//do this when a button with the class 'relay' is clicked
} ) ; Nesta função fetch() uma nova página da web, que aponta para /relay , e se o status de retorno estiver ok, adicionamos a classe "ison" ao botão:
fetch ( "relay?relay=3&mode=activate" ) . then ( response => {
if ( response . status == 200 ) {
button . addClass ( "isOn" ) ;
}
} ) ; Isso significa que o site tentará acessar uma nova página da web em http://192.168.4.1/relay com os parâmetros de ?relay=3&mode=activate . Vamos verificar o código ESP:
// firstly, set the handler function in the setup():
server.on( " /relay " , handleRelayCommand);
// ... later ...
void handleRelayCommand (){
String relayNumber = server. arg ( " relay " );
String mode = server. arg ( " mode " );
// ...
} O comando server.arg("relay"); Simplesmente recebe o que o argumento "revezamento" foi definido. Em nossa solicitação original : ?relay=3&mode=activate essa string "3" . Da mesma forma, o argumento do modo é definido como uma string "activate"
Em seguida, simplesmente fazemos alguns cheques, encontre o que o retransmissão o "3" corresponde e se "activate" significa que estamos ligando o relé e enviamos isso como um comando para o UNO:
Serial.write( ' > ' ); // start of command
Serial.write( ' 3 ' ); // relay 3
Serial.write( ' a ' ); // activate, or turn onIsso será interpretado pelo UNO, que realmente ligará o relé:
No UNO.ino (novamente, simplificado):
while (Serial.read() != ' > ' ) // do nothing until we get '>'
continue ;
char relay = Serial.read(); // next character is relay;
char mode = Serial.read(); // next character is mode;
// ... do some checks, turn char into int, see if it's valid, etc.
digitalWrite (theRelay, theMode); Uma coisa a observar é que o fluxo de dados é apenas uma direção neste código, não há Serial.write() no UNO para ser Serial.read() pelo ESP.