Índice:
- Etapa 1: Coisas que você vai precisar
- Etapa 2: algumas informações sobre ESP8266
- Etapa 3: Pinagem de ESP8266
- Etapa 4: O que deve ser usado para comunicação com o ESP8266?
- Etapa 5: Montagem do ESP8266 na placa de ensaio
- Etapa 6: Fonte de alimentação
- Etapa 7: Conversão de Nível Lógico
- Etapa 8: Conexões
- Etapa 9: Primeiros passos
- Etapa 10: Comandos AT
- Etapa 11: Sintaxe geral dos comandos AT
- Etapa 12: Conectando ao Wifi
- Etapa 13: Thingspeak
- Etapa 14: Mais alguns comandos AT
- Etapa 15: Configurando a conexão TCP
- Etapa 16: Enviando o Tweet
- Etapa 17: O que fazer depois disso
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Aprendi sobre o Arduino há 2 anos. Então, comecei a brincar com coisas simples como LEDs, botões, motores etc. Então pensei que não seria legal conectar-se para fazer coisas como exibir o tempo do dia, preços de ações, horários de trens um display LCD. Descobri que isso poderia ser feito enviando e recebendo dados pela internet. Portanto, a solução foi conectar-se à intenet. Aí comecei minha pesquisa sobre como conectar o Arduino à internet e enviar e receber dados. Aprendi sobre os módulos wi-fi na internet e achei que eram muito caros. Aí fiquei sabendo do ESP8266.
Li muito na internet sobre o módulo ESP8266 há cerca de um ano e comprei um, mas comecei a trabalhar com eles no mês passado. Na época não havia muitas informações disponíveis. No entanto, agora há muita documentação, os vídeos estão disponíveis na internet a respeito de firmware, comandos AT, projetos etc. Então decidi começar.
Escrevi este instrutível como um guia para iniciantes, pois enfrentei muitos problemas ao fazer a fiação e começar a usar o ESP8266. Portanto, decidi escrever este Instructable para que outras pessoas que encontrarem problemas com seus módulos possam resolvê-los mais rápido
Neste Instructable vou tentar mostrar
- Como conectar um ESP8266 e se comunicar com ele através do Arduino Uno.
- Também tentarei mostrar como um tweet pode ser enviado por meio dele usando o Thingspeak.
O que o ESP8266 pode fazer? É limitado pela sua imaginação. Já vi projetos e tutoriais na internet mostrando como obter a temperatura de uma cidade, cotação de ações, envio e recebimento de e-mails, ligações telefônicas e muito mais. Mostrarei em isso instrui como enviar um tweet.
Etapa 1: Coisas que você vai precisar
Aqui estão as coisas de que você precisa. A maioria deles pode ser comprada em qualquer loja de produtos elétricos ou online (forneci os links para referência).
- 1xESP8266 (ESP-01) -ebay
- Adaptador 1xBreadboard (aprenda a fazer um aqui ou use alguns fios de ligação)
- 1xLM2596 -ebay
- 1xLogic level converter -ebay
- 1xArduino Uno
- Cabo USB para Arduino Uno
- 1xBreadboard -ebay
- Wires -ebay
- IDE Arduino
- Uma conta com Thingspeak
O custo total será em torno de Rs 600 (cerca de US $ 9). Excluí o custo do Arduino Uno, pois depende se você quer um original ou um clone. Os clones mais baratos estão disponíveis em cerca de Rs 500 (cerca de US $ 4).
Etapa 2: algumas informações sobre ESP8266
ESP8266 foi lançado em 2014 há apenas um ano, por isso é bastante novo. Os chips são fabricados pela Espressif.
Vantagem
A maior vantagem do ESP8266 talvez seja o seu custo. É muito barato e você pode comprar alguns deles de uma só vez. Antes que eu soubesse disso, não conseguia nem pensar em comprar um módulo wi-fi. Eles eram muito caros. Novas versões do ESP8266 estão sendo lançadas com bastante frequência e a mais recente é o ESP 12. No entanto, neste Instructable, irei me concentrar apenas no ESP 01, que é bastante popular. Além disso, quando você compra o ESP8266, ele vem pré-carregado com o firmware AT padrão. você está pronto para começar assim que comprar um.. Também como você verá neste manual, é muito fácil fazer a interface deles.
Desvantagem
Cada dispositivo tem suas próprias vantagens e desvantagens e o ESP não é diferente. Às vezes, o ESP pode ser muito complicado e frustrante de se trabalhar. Por ser bastante novo, você achará difícil obter informações sobre ele. Felizmente, uma comunidade em esp8266.com existe, o que é de muita ajuda. Além disso, às vezes também começa a fazer coisas inesperadas, como jogar um monte de lixo através da conexão serial, etc.
Observe que há muita documentação disponível na internet e alguma parte dela é conflitante. Este Instructable não é diferente. Enquanto brinquei com meu ESP8266, descobri que ele se desviou muito do que foi mencionado na internet (o seu pode também), mas funcionou bem.
Etapa 3: Pinagem de ESP8266
O ESP8266 tem 8 pinos, conforme mostrado.
Gnd e Vcc devem ser conectados como de costume ao aterramento e alimentação respectivamente. O ESP8266 opera em 3,3V.
O pino RESET é usado para reinicializar manualmente o ESP. Ele normalmente deve ser conectado a 3,3 V. Se você deseja redefinir o ESP, conecte este pino ao aterramento momentaneamente e, em seguida, de volta a 3,3 V.
CH_PD é o desligamento do chip que deve ser normalmente conectado a 3,3V.
GPIO0 e GPIO2 são pinos de saída de entrada de uso geral. Eles devem ser normalmente conectados a 3,3 V. No entanto, ao atualizar o firmware, conecte o GPIO0 ao gnd.
Os pinos Rx e Tx são os pinos de transmissão e recepção do ESP8266. Eles operam na lógica de 3,3 V, ou seja, 3,3 V é a lógica ALTA para ESP8266.
Conexões detalhadas são fornecidas em etapas posteriores.
Etapa 4: O que deve ser usado para comunicação com o ESP8266?
Existem muitos dispositivos que podem ser usados para se comunicar com ESP8266, como programadores FTDI, conversor serial USB para TTL, Arduino etc. No entanto, usei um Arduino Uno simplesmente porque é o mais fácil e quase todo mundo tem. tem um Arduino, você também tem o IDE do Arduino e seu monitor serial pode ser usado para comunicação com o ESP8266. Portanto, não gaste dinheiro com programadores FTDI etc.
No entanto, se você quiser ou já tiver um, pode usar um programador FTDI ou um conversor serial USB para TTL (mais informações sobre como conectá-los mais tarde). Também há muitos softwares, como RealTerm ou putty. Você pode usar estes da mesma forma que o monitor serial do IDE do Arduino.
Etapa 5: Montagem do ESP8266 na placa de ensaio
Observe que os pinos do ESP8266 não são amigáveis à placa de ensaio. Isso pode ser superado de duas maneiras.
Use fios de ligação fêmea para macho que podem bagunçar as coisas ou
Faça como mostrado neste Instrutível ou
Use uma placa adaptadora, faça você mesmo (há muitas delas no Instructables) que é legal.
Etapa 6: Fonte de alimentação
O ESP8266 funciona com alimentação de 3,3 V. Não o conecte ao pino de 5 V do Arduino. Provavelmente, ele irá queimar.
Alguns tutoriais sugeriram fazer um circuito divisor de tensão usando resistores de 1k, 2k com 5 V como entrada e obter 3,3 V no resistor de 2k e fornecê-lo ao Arduino. No entanto, descobri que o ESP nem ligou quando fiz isso.
Consegui ligá-lo usando 3,3 V no Arduino, mas descobri que o ESP esquentou depois de algum tempo.
Você pode usar um regulador de tensão de 3,3V.
Ou você pode usar o conversor abaixador LM2596 dc-dc. Esses são muito baratos. E eu os usei. Dê 5 V do Arduino à entrada. Ajuste o potenciômetro no módulo, até que a saída se torne 3,3 VI, descubra que o ESP pode ser alimentado de um deles por horas. Faça as conexões conforme mostrado na figura.
Etapa 7: Conversão de Nível Lógico
É mencionado que o ESP tem lógica de 3,3 V enquanto o Arduino tem lógica de 5 V.
Isso significa que no ESP 3.3V é lógico ALTO, enquanto no Arduino 5V é lógico ALTO. Isso pode causar alguns problemas ao conectá-los.
Descobri na Internet que a conversão de nível lógico precisa ser aplicada durante a interface do ESP Rx e Tx com o Arduino.
Alguns tutoriais mencionaram que a conversão de nível lógico é necessária durante a interface do pino ESP Rx.
No entanto, descobri que apenas conectar os pinos ESP Rx e Tx ao Arduino não causou problemas
Eu conectei Rx e Tx através do conversor de nível lógico e também Rx sozinho, mas não obtive nenhuma resposta.
No entanto, descobri que conectar o pino Tx ESP através do conversor de nível lógico enquanto conectava o Tx diretamente também não causou problemas
Portanto, o conversor de nível lógico pode ou não ser usado.
Use qualquer método que funcione para você por tentativa e erro.
Etapa 8: Conexões
As conexões do ESP8266 são:
ESP8266
Gnd ------------------- Gnd
GPIO2 --------------- 3,3V
GPIO0 --------------- 3,3V
Rx -------------------- Rx do Arduino
Tx --------------------- Tx do Arduino (direto ou por meio de conversor de nível lógico)
CH_PD -------------- 3,3 V
REINICIAR -------------- 3,3V
Vcc -------------------- 3,3 V
(Observe que em algumas versões o ESP Rx deve ser conectado ao Arduino Tx e o ESP Tx deve ser conectado ao Arduino Rx).
Se você estiver usando um programador FTDI ou um conversor serial USB para TTL, conecte seus Tx e Rx a Rx e Tx de ESP8266 respectivamente.
Etapa 9: Primeiros passos
Depois de fazer as conexões, faça upload
void setup ()
{}
void loop ()
{}
ou seja, um esboço em branco para o Arduino..
Abra o monitor serial e defina-o como "Ambos NL e CR".
Faça experiências com a taxa de Baud. Geralmente deve ser 9600, embora às vezes possa ser 115200.
Etapa 10: Comandos AT
Simplesmente dizer que os comandos AT são comandos que podem ser enviados ao ESP8266 para habilitá-lo a executar algumas funções, como reiniciar, conectar-se ao wi-fi etc. O ESP em resposta enviará alguma confirmação na forma de texto. A seguir, expliquei algumas Comandos AT e como o ESP responde a eles. Observe que, por enviar, quero dizer digitar o comando e pressionar Enter (retornar).
Envie AT através do monitor serial
Este comando é usado como um comando de teste.
Como o ESP responde: OK deve ser retornado.
Envie AT + RST através do monitor serial
Este comando é usado para reiniciar o módulo.
Como o ESP responde: O ESP retorna uma carga de lixo. No entanto, procure por Pronto ou pronto.
Envie AT + GMR através do monitor serial
Este comando é usado para determinar a versão do firmware do módulo.
Como o ESP responde: A versão do firmware deve ser retornada.
Firmware é um software que é instalado em um dispositivo geralmente em sua ROM (memória somente de leitura), ou seja, não deve ser alterado com frequência ou não deve ser alterado. Ele fornece o controle e a manipulação de dados do dispositivo. O ESP8266 tem um número de diferentes firmwares, todos muito fáceis de atualizar (instalar).
Etapa 11: Sintaxe geral dos comandos AT
A sintaxe geral dos comandos AT para executar diferentes funções é fornecida:
AT + parâmetro =?
Quando um comando desse tipo é enviado por meio do monitor serial, o ESP retorna todos os valores que esse parâmetro pode assumir.
AT + parâmetro = val
Quando um comando desse tipo é enviado por meio do monitor serial, o ESP define o valor do parâmetro como val.
Parâmetro AT +?
Quando um comando desse tipo é enviado por meio do monitor serial, o ESP retorna o valor atual do parâmetro.
Alguns comandos AT podem aceitar apenas um dos tipos acima, enquanto alguns podem aceitar todos os 3.
Um exemplo de comando que é possível em todos os 3 tipos acima é CWMODE, que é usado para definir o modo wi-fi.
Enviar AT + CWMODE =? através do monitor serial
Como o ESP responde: Todos os valores que o ESP CWMODE pode assumir (1-3) são retornados especificamente + CWMODE (1-3). Onde
1 = Estático
2 = AP
3 = Estático e AP
Envie AT + CWMODE = 1 por meio do monitor serial
Como o ESP responde: OK deve ser retornado se houver uma alteração no CWMODE de seu valor anterior e estiver definido como estático, caso contrário, nenhuma alteração deve ser retornada se não houver alteração no valor CWMODE.
IMPORTANTE: A menos que CWMODE seja definido como 1, os comandos nas etapas posteriores não funcionarão.
Enviar AT + CWMODE? através do monitor serial
Como o ESP responde: O valor presente de CWMODE deve ser retornado, especificamente se você seguiu a etapa acima + CWMODE: 1 deve ser retornado.
Etapa 12: Conectando ao Wifi
Envie AT + CWLAP através do monitor serial
Este comando é usado para listar todas as redes na área.
Como o ESP responde: Uma lista de todos os pontos de acesso ou redes wi-fi disponíveis deve ser retornada.
Enviar AT + CWJAP = "SSID", "senha"
(incluindo as aspas duplas).
Este comando é usado para ingressar em uma rede wi-fi.
Como o ESP responde: OK deve ser retornado se o módulo tiver sido conectado à rede.
Enviar AT + CWJAP? através do monitor serial
Este comando é usado para determinar a rede à qual o ESP está conectado no momento.
Como o ESP responde: A rede à qual o ESP está conectado será retornada. Especificamente + CWJAP: "SSID"
Envie AT + CWQAP através do monitor serial
Este comando é usado para se desconectar da rede à qual o ESP está conectado no momento.
Como o ESP responde: O ESP sai da rede à qual está conectado e retorna OK.
Envie AT + CIFSR através do monitor serial
Este comando é usado para determinar o endereço IP do ESP.
Como o ESP responde: o endereço IP do ESP é retornado.
Etapa 13: Thingspeak
Se você ainda não fez uma conta no Thingspeak, faça uma agora.
Depois de fazer uma conta no Thingspeak vá em Apps> ThingTweet.
Vincule sua conta do Twitter a ele.
Observe a chave API que é gerada.
Aqui, após o aplicativo ThingTweet ter sido usado para vincular uma conta do Twitter à sua conta ThingSpeak, você pode enviar um tweet usando a API TweetContol.
Uma API (interface de programa de aplicativo) é um código que permite que dois programas de software se comuniquem entre si.
Algumas outras APIs que estão disponíveis para desenvolvedores são a API do Google Maps, a API Open weather etc.
Somente após o ESP ter sido configurado, verificado e conectado ao wi-fi (basicamente todas as etapas fornecidas nas 2 etapas anteriores), execute as etapas abaixo
Etapa 14: Mais alguns comandos AT
Envie AT + CIPMODE = 0, através do monitor serial
Como o ESP responde: OK é retornado.
O comando CIPMODE é usado para definir o modo de transferência.
0 = modo normal
1 = modo de passagem UART-WiFi
Envie AT + CIPMUX = 1 através do monitor serial
Como o ESP responde: OK é retornado.
O comando CIPMUX é usado para definir conexões únicas ou múltiplas.
0 = conexão única
1 = conexão múltipla
Etapa 15: Configurando a conexão TCP
Observe que a partir do primeiro comando, assim que enviar o primeiro, a conexão será estabelecida por um período limitado de tempo. Portanto, envie os comandos o mais rápido possível.
Envie AT + CIPSTART = 0, "TCP", "api.thingspeak.com", 80 através do monitor serial
Como o ESP responde: Linked é retornado se a conexão foi estabelecida.
Este comando é usado para estabelecer uma conexão TCP.
A sintaxe é AT + CIPSTART = ID do link, tipo, IP remoto, porta remota
Onde
link ID = ID de conexão de rede (0 ~ 4), usado para multi-conexão.
type = string, "TCP" ou "UDP".
IP remoto = string, endereço IP remoto (endereço do site).
porta remota = string, número da porta remota (geralmente selecionado como 80).
Envie AT + CIPSEND = 0, 110 através do monitor serial
Como o ESP responde:> (maior que) é retornado se o comando for bem-sucedido.
Este comando é usado para enviar dados.
A sintaxe é AT + CIPSEND = ID do link, comprimento
Onde
link ID = ID da conexão (0 ~ 4), para conexão múltipla. Visto que CIPMUX foi definido como 1, é 1.
comprimento = comprimento de dados, MAX 2.048 bytes. Em geral, escolha um número grande para o comprimento.
Etapa 16: Enviando o Tweet
Agora para enviar o tweet
Envie GET / apps / thingtweet / 1 / statuses / update? Api_key = yourAPI & status = yourtweet por meio do monitor serial.
Substitua yourAPI pela chave da API e yourtweet por qualquer tweet que desejar.
Assim que enviar o comando acima, pressione Enter (retornar) em intervalos de aproximadamente 1 segundo. Depois de algum tempo, ENVIAR OK, + IPD, 0, 1: 1 e OK serão retornados, o que significa que o tweet foi postado.
Abra o seu twitter e verifique se o tweet foi postado ou não.
Observe também que o mesmo tweet não pode ser enviado repetidamente.
A string acima enviada (GET….) É uma solicitação HTTP GET.
A solicitação GET é usada para recuperar dados de um determinado servidor (api.thingspeak.com).
Etapa 17: O que fazer depois disso
(Assista ao vídeo em pelo menos 360p)
Acesse este repositório para baixar o código e os esquemas. Clique no botão "Clonar ou Baixar" (de cor verde no lado direito) e selecione "Baixar ZIP" para baixar o arquivo zip. Agora extraia o conteúdo em seu computador para obter o código e os esquemas (na pasta de esquemas). Eu também carreguei uma folha de cheatsheet, que resume todos os comandos AT, para este repositório.
Existem muitos recursos excelentes disponíveis na Internet sobre ESP8266. Mencionei alguns deles aqui:
- Vídeos de Kevin Darrah.
- TODOS os vídeos sobre EE.
- esp8266.com
Você também pode experimentar mais com os comandos AT. Existem várias APIs disponíveis na Internet que podem fazer todos os tipos de coisas, como obter a previsão do tempo, preços de ações, etc.
Documentação completa do comando AT
Além disso, estou trabalhando em um programa que tweeta automaticamente os valores analógicos de um sensor e irei postá-lo assim que estiver funcionando corretamente.
Se você gostou do meu voto instrutível para ele no concurso de todas as coisas do Arduino.