Hola a todos,
Estoy siguiendo un tutorial de hackster.io sobre como conseguir un contador en tiempo real de seguidores de facebook
A nivel técnico he intentado ceñirme al máximo en los requerimientos de hardwware. Lo único que he variado es usar una pantalla de 8 digitos en lugar de 4.
He logrado compilar y subirlo al ESP8266.
He introducido todas las variables en el código y todo ok
sin embargo solo aparecen digitos aleatorios.
Supongo que tiene que ver con la libreria para el lcd---o bien que esta pensado para el de 4 dígitos.. qué opináis?
Hay alguna forma de modificar el codigo para usar otro lcd que no sea del tipo TM1637? Estos son solo de 4 digitos.... y querria 6 u 8
este es el enlace Facebook Fan Count - Hackster.io
estoy un poco frustrado la verdad
os pongo el código
Fingerprint
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include "SevenSegmentTM1637.h"
#include <ArduinoJson.h>
// Wifi
const char* ssid = "";
const char* password = "";
// Facebook
// esp8266-Arduino/client-secure-examples.md at master · gbrault/esp8266-Arduino · GitHub
const char* host = "graph.facebook.com";
const String url = "/AAA?access_token=BBB|CCC&fields=fan_count";
const int httpsPort = 443;
const char* fingerprint = "DDD";
// Display GitHub - bremme/arduino-tm1637: Arduino library for using a 4 digit seven segment display with TM1636 or TM1637 driver IC
const byte PIN_CLK = D3; // define CLK pin (any digital pin)
const byte PIN_DIO = D4; // define DIO pin (any digital pin)
String payload;
SevenSegmentTM1637 display(PIN_CLK, PIN_DIO);
void setup() {
Serial.begin(115200);
// Wifi
WiFi.begin(ssid, password);
Serial.println();
Serial.print("Connecting ");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
display.print("CONNECTING");
}
Serial.println();
Serial.print("Connected, IP address: ");
Serial.println(WiFi.localIP());
// Display
display.begin(); // initializes the display
display.setBacklight(100); // set the brightness to 100 %
display.print("START");
}
void loop() {
String wifistatus = "WIFI OK";
// Use WiFiClientSecure class to create TLS connection
WiFiClientSecure client;
if (!client.connect(host, httpsPort)) {
String wifistatus = "WIFI FAIL";
Serial.println("connection failed");
return;
}
display.print(wifistatus);
if (client.verify(fingerprint, host)) {
Serial.println("certificate matches");
} else {
Serial.println("certificate doesn't match");
}
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"User-Agent: BuildFailureDetectorESP8266\r\n" +
"Connection: close\r\n\r\n");
Serial.println("request sent");
while (client.connected()) {
String line = client.readStringUntil('\n');
if (line == "\r") {
Serial.println("headers received");
break;
}
}
// JSON
String line = client.readStringUntil('\n');
DynamicJsonBuffer jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(line);
int fancount = root[String("fan_count")];
if (fancount > 0) {
Serial.print("Fans: ");
Serial.println(fancount);
display.clear();
display.print(fancount);
} else {
display.clear();
display.print("ERR1");
display.blink();
}
delay(30000);
}