Cronômetro conectado: 5 etapas
Cronômetro conectado: 5 etapas
Anonim
Cronômetro conectado
Cronômetro conectado
Cronômetro conectado
Cronômetro conectado
Cronômetro conectado
Cronômetro conectado

Olá! Neste tutorial você descobrirá como conectar qualquer dispositivo compatível com Arduino, equipado com WiFi, a APIs REST! Isso usa o webapp GitKraken Glo Board para criar placas, colunas e cartões para organizar as coisas!

É necessário algum conhecimento de como a API pública funciona. Este projeto tem como objetivo usar a API do GitKraken Glo para rastrear o tempo que você gasta em tarefas em suas listas de tarefas.

Por exemplo, você deve fazer estas tarefas:

- Beba café

Você pressiona iniciar ao iniciar, quando terminar, pressiona Concluído e voilà, o tempo que você gasta é comentado.

Etapa 1: construir

Construir
Construir
Construir
Construir

Para construir, você pode pensar em qualquer coisa. Um pequeno cronômetro seria ótimo, mas eu não fiz nada pequeno por aí.

Então, botões de papelão e fliperama eram o caminho a percorrer!

A placa que usei é uma ESP8266 WeMos D1 Mini. É mais barato do que um Arduino e tem WiFi a bordo!

A tela é um LCD Nokia 5110.

n

Lista de peças no AliExpress:

  • Nokia 5110
  • 2 botões de arcade
  • ESP8266
  • Fios de ligação
  • Caixa de papelão

Mas você pode basicamente encontrá-lo em qualquer lugar ou em outros sites como Amazon ou eBay.

Conta geral: 5 € 86

Conexões de pinos:

ESP8266 WeMos D1 Mini ↔ Nokia 5110 LCD

  • D2 (GPIO4) ↔ 0 RST
  • D1 (GPIO5) ↔ 1 CE
  • D6 (GPIO12) ↔ 2 DC
  • D7 (GPIO13) ↔ 3 DIN
  • D5 (GPIO14) ↔ 4 CLK
  • 3V3 ↔ 5 VCC
  • D0 (GPIO16) ↔ 6 BL
  • G (GND) ↔ 7 GND

ESP8266 WeMos D1 Mini ↔ Botões Arcade

D3 (GPI18) ↔ Botão esquerdo

D4 (GPI17) ↔ Botão direito

O outro pino do botão sendo conectado ao aterramento (GND).

Etapa 2: Código

Código
Código
Código
Código
Código
Código

Apenas me dê o código

Você pode encontrar o código-fonte completo aqui:

github.com/antoinech/glo-stopwatch

Para que funcione para você, você precisará alterar estas variáveis:

// Coloque suas credenciais WiFi hereconst char * ssid = "--your - ssid--"; const char * password = "--sua - senha--"; // Coloque seu token de acesso pessoal (https://support.gitkraken.com/developers/pats/) const char * bearer = "Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

Você também precisará de 2 bibliotecas Adafruit:

github.com/adafruit/Adafruit-GFX-Library

github.com/adafruit/Adafruit-PCD8544-Nokia…

E este incrível Arduino Json:

arduinojson.org/

Explicações

No código-fonte você descobrirá:

  • como se conectar a um endpoint
  • como fazer uma solicitação POST ou GET
  • como serializar uma resposta JSON para obter objetos e matrizes
  • como exibir texto e imagens em um LCD Nokia 5110

Se você quiser saber mais sobre esta API:

support.gitkraken.com/developers/overview/

Essa solicitação pode funcionar remotamente com qualquer API que use solicitações POST e GET:)

Etapa 3: Conecte-se a um site

Este pseudocódigo explica como se conectar a um site HTTPS. Seus primeiros passos são os mesmos de um

Cliente WiFiClient

mas com uma etapa de verificação. Você precisa ir para o endpoint da API que deseja verificar e verificar a impressão digital SHA1 do certificado. Copie, cole-o como uma string em seu código e chame client.verify (impressão digital, hosturl).

Cliente WiFiClientSecure;

// Conectar ao WiFi WiFi.mode (WIFI_STA); WiFi.begin (ssid, senha); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } if (! client.connect (host, httpsPort)) {Serial.println ("conexão falhou"); Retorna; } if (client.verify (fingerprint, host)) {Serial.println ("certificado corresponde"); } else {Serial.println ("o certificado não corresponde"); }

Etapa 4: fazer solicitações POST / GET

PUBLICAR

Esta é a sintaxe para fazer uma solicitação POST:

String PostData = "{"; PostData + = "\" text / ": \" minha mensagem / ""; PostData + = "}"; Serial.print (PostData); client.print (String ("POST") + url + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Autorização:" + bearer + "\ r / n" + "User-Agent: BuildFailureDetectorESP8266 / r / n" + "cache-control: no-cache / r / n" + "Content-Type: application / json / r / n" + "Content-Length:" + PostData. comprimento () + "\ r / n" + "\ r / n" + PostData + "\ n"); Serial.println ("solicitação enviada");

o PostData são os dados que você envia como JSON, neste caso:

{

"text": "minha mensagem"}

A variável url é o url do terminal, host, url do site, portador é o token de acesso da API.

PEGUE

Este é o pseudocódigo para uma solicitação GET:

client.print (String ("GET") + url + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Autorização:" + bearer + "\ r / n" + "Agente do usuário: BuildFailureDetectorESP8266 / r / n" + "Conexão: keep-alive / r / n / r / n"); Serial.println ("solicitação enviada"); while (client.connected ()) {String line = client.readStringUntil ('\ n'); if (linha == "\ r") {Serial.println ("cabeçalhos recebidos"); pausa; }} String line = client.readStringUntil ('\ n');

O resultado deste comando será armazenado na variável de linha.

Etapa 5: JSON e NOKIA LCD

Para realizar um projeto semelhante, você precisará exibir imagens, textos e símbolos no LCD do Nokia 5110. Você pode assistir a este Tutorial em profundidade dos últimos minuteengineers.

Para lidar com JSON no Arduino C ++, use o site do ArduinoJson que lhe contará tudo sobre isso!

Não hesite em postar perguntas, se tiver alguma, ou postar o que você fez com este código-fonte / tutorial.