ESP8266 do Rui, em português

Twitter a partir do ESP8266

A dica é usar o serviço gratuito IFTTT, um plataforma que viabiliza controle para uma variedade de serviços web e apps. Enviar uma requisição HTTP ao IFTTT pode significar disparar um gatinho para o envio de um e-mail ou a publicação de um tweet pré-configurados.

Criando a conta no IFTTT

  1. Acesse ifttt.com
  2. Clique o botão Sign Up no meio da página.
  3. Preencha o(s) formulário(s) seguindo em frente

Configurando a ação ‒ exemplo

Ou: criando o "recipiente".

  1. Conecte sua conta ao Maker Channel
  2. Conecte sua conta ao Twitter Channel

O resultado deverá ser uma tela assim:

Imagem: Maker Channel e Twitter Channel conectados

Você deverá preencher o recipiente com informações suas:

  1. Digite "post_tweet" para o nome do evento
  2. Edite o texto desejado para o ESP8266 enviar como tweet
  3. Pressione o botão "Add"

Imagem: configuração do recipiente

Chave secreta

Será necessária para a realização das requisições.

  1. Acesse ifttt.com/maker
  2. Copie a chave secreta e a guarde em local seguro
    • No exemplo, a chave é: b6eDdHYblEv2Sy32qLwe

A tela para o conhecimento da chave secreta é como na imagem abaixo:

Uso

Substitua a chave secreta na URL de ação (requisição para o recipiente):
https://maker.ifttt.com/trigger/post_tweet/with/key/YOUR_API_KEY

Assim:
https://maker.ifttt.com/trigger/post_tweet/with/key/b6eDdHYblEv2Sy32qLwe

Teste

Imagem: teste de ação (tweet por IFTTT) no navegador de Internet

Exemplo: código LUA ‒ versão 1

  • O módulo deverá estar com NodeMCU
  • Use o ESPlorer para fazer a transferência do arquivo
  • Não esqueça de editar a linha 5 com suas credenciais de rede
  • Não esqueça de editar a linha 13 com sua chave secreta
-- Rui Santos
-- Complete project details at http://randomnerdtutorials.com

wifi.setmode(wifi.STATION)
wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD")

-- A simple http client
conn = nil
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) end)
conn:connect(80,"maker.ifttt.com")
conn:on("connection", function(conn, payload)
conn:send("POST /trigger/post_tweet/with/key/YOUR_API_KEY HTTP/1.1\r\nHost: maker.ifttt.com\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n") end)
conn:close()
print('Posted Tweet')

Limitação: o Twiter não permite o envio de tweets repetidos.

Exemplo: código LUA ‒ versão 2

  • Lembre-se dos mesmo requisitos da versão 1
-- Rui Santos
-- Complete project details at http://randomnerdtutorials.com

wifi.setmode(wifi.STATION)
wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD")

-- A simple http client
conn = nil
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) end)
conn:connect(80,"maker.ifttt.com")
conn:on("connection", function(conn, payload)
conn:send("POST /trigger/post_tweet/with/key/YOUR_API_KEY HTTP/1.1\r\n"..
  "Host: maker.ifttt.com\r\nConnection: close\r\nAccept: */*\r\nContent-Type: application/json\r\n" ..
  "Content-Length: 17\r\n\r\n{\"value1\":true}\r\n") end)
conn:close()
print('Posted Tweet')

O parãmetro value1 está sendo enviado com valor True.

IFTTT suporta até três parâmeteros: value1, value2 e value3. Eles servem customizar tweets e torná-los únicos.