O Pushbullet é um serviço muito útil que permite enviar notificações instantâneas com o texto que você quiser para smartphones, tablets, browsers, etc. Antes de usar este exemplo certifique-se de que o serviço Pushbullet funciona para você usando o que está explicado neste outro post.
Este exemplo foi baseado neste aqui que por sua vez é baseado no exemplo HTTPSRequest.ino da biblioteca. Eu incluí algumas modificações que gosto de fazer.
Não tem checagens de erro, mas por sem bem simples fica também simples de entender.
Note que por usar HTTPS requer muita RAM. Eu incluí uma função para mostrar o impacto disso.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
#include <ESP8266WiFi.h> #include <WiFiClientSecure.h> // ============= Você precisa preencher com seus dados =================================== const char* ssid = ""; const char* password = ""; const char* PushBulletAPIKEY = ""; //A sua chave de API. Veja na sua conta Pushbullet. const String message_title = "Enviado do ESP8266"; const String message_body = "Funciona!"; // ======================================================================================== const char* host = "api.pushbullet.com"; const int httpsPort = 443; //Tenha em mente que este fingerprint muda toda vez que a Pusnbullet renovar seu certificado const char* fingerprint = "E7 06 F1 30 B1 5F 25 72 00 4D 99 F0 ED 90 4D F9 60 D3 FB 75"; void printFreeRAM(){ Serial.print("RAM livre: "); Serial.print(ESP.getFreeHeap()); Serial.print(" bytes."); } void setup() { Serial.begin(115200); //Serial.setDebugOutput(true); printFreeRAM(); WiFi.mode(WIFI_STA); //Apenas para me certificar de que o AP não seja ativado por uma configuração anterior gravada na flash Serial.println(); Serial.print("Conectando a: "); Serial.println(ssid); Serial.print("Com a senha: "); Serial.println(password); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi conetado."); Serial.println("Endereco IP do modulo: "); Serial.println(WiFi.localIP()); // Use WiFiClientSecure class to create TLS connection WiFiClientSecure client; Serial.print("Conectando a: "); Serial.println(host); if (!client.connect(host, httpsPort)) { Serial.println("Falha na conexao."); return; } if (client.verify(fingerprint, host)) { Serial.println("O certificado confere."); } else { Serial.println("O certificado não confere."); } printFreeRAM(); //A RAM livre cai uns 20KB neste ponto. Serial.println("Enviando POST."); String url = "/v2/pushes"; String messagebody = "{\"type\": \"note\", \"title\": \""+message_title+"\", \"body\": \""+message_body+"\"}\r\n"; Serial.print("requesting URL: "); Serial.println(url); client.print(String("POST ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Authorization: Bearer " + PushBulletAPIKEY + "\r\n" + "Content-Type: application/json\r\n" + "Content-Length: " + String(messagebody.length()) + "\r\n\r\n"); client.print(messagebody); Serial.println("Esperando resposta."); while (client.available() == 0); while (client.available()) { String line = client.readStringUntil('\n'); Serial.println(line); } } void loop() { } |
Leave a Comment