Go Down

Topic: compteur de likes Fb (Read 710 times) previous topic - next topic

chacall

merci pour l'info mais vu comme je patasse dans la puree je pense qu'une mise a jour drastique du materiel s'impose.... je vais opter pour du plus recent... merci quand meme
sinon plutot  la wemos ou l'esp32 ?

chacall

bon j'ai opte pour un wemos
par contre j'ai eu un gros bug et j'ai du reinstaller l'IDE.
je n'arrive pas a recuperer la bibliotheque  pour les esp8266

http://arduino.esp8266.com/staging/package_esp8266com_index.json

a chaque fois que je tente de passer par le gestionaire de cartes ça me met un message d'erreur: "Erreur pendant le telechargement de ....."

est ce que qqn a une idee ????

hbachetti

Je verrais plutôt :
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

chacall


chacall

#19
Apr 20, 2019, 08:10 pm Last Edit: Apr 20, 2019, 08:37 pm by chacall
dans la categorie le mec il comprend toujours pas.....
apres avoir acquis une wemos d1 et une matrice led ht1632
avoir installe toutes les bibliotheques necessaires ( enfin je pense ) j'ai un bug lors de la verification du sketch...

Code: [Select]
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <string.h>
#include <ArduinoJson.h>
#include <HT1632.h>
#include <font_5x4.h>
#include <font_8x5.h>
#include <images.h>

/****************************************** SETUP ****************************************/
char ssid[] = "xxxxxx";       // your network SSID (name)
char password[] = "xxxxxx";  // your network key (password)

String FACEBOOK_ACCESS_TOKEN = "xxxxx";
String FACEBOOK_PAGE_ID = "xxxxxx";

char *HOST_FACEBOOK = "graph.facebook.com";

const char *likes;

void facebook_get_likes();
void print_facebook(int pos);

typedef struct display_funct {
  void (*get)(void);
  void (*display)(int);
} display_funct;

display_funct function[1] = {{facebook_get_likes, print_facebook}};

WiFiClientSecure client;
DynamicJsonBuffer jsonBuffer(512);

void setup() {
  Serial.begin(115200);
  HT1632.begin(D2, D3, D4);
  HT1632.clear();
  HT1632.drawText(".", 0, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
  HT1632.render();
  while (wifi_connect() != true);
  facebook_get_likes();
}

/************************************ LOOP FUNCTION *************************************/
void loop() {
  int pos = 0;
  if (WiFi.status() == WL_CONNECTED) {
    for (int i = 0; i < 3; i++) {
      HT1632.clear();
      function[i].display(pos);
      HT1632.render();
      function[i].get();
      delay(2000);
      HT1632.clear();
      function[i].display(pos);
      HT1632.render();
      delay(2000);
      while (pos < 9) {
        yield();
        HT1632.clear();
        if (i + 1 == 3)
          function[0].display(pos - 9);
        else
          function[i + 1].display(pos - 9);
        function[i].display(pos);
        HT1632.render();
        delay(100);
        pos++;
      }
      pos = 0;
    }
  } else {
    HT1632.drawText("no wifi", 0, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
    delay(2000);
    wifi_connect();
  }
}

/*********************************** DISPLAY FUNCTION ***********************************/

void print_facebook(int pos) {
  HT1632.drawImage(IMG_FB2, IMG_FB_WIDTH,  IMG_FB_HEIGHT, 0, 0);
  HT1632.drawText(likes, 13, pos, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
  Serial.println(likes);
}
/******************************************************************************************/

/*********************************** FACEBOOK FUNCTION ***********************************/
void facebook_get_likes() {
  String line;
  char buff[400];
  int i = 1, y = 0;
  if (client.connect(HOST_FACEBOOK, 443)) {
    Serial.println("Connected to graph.facebook.com");
    client.print("GET /v3.2/");
    client.print(FACEBOOK_PAGE_ID);
    client.print("?fields=access_token%2Cfan_count&access_token=");
    client.print(FACEBOOK_ACCESS_TOKEN);
    client.println(" HTTP/1.1");
    client.println("Host: graph.facebook.com");
    client.println("User-Agent: arduino/1.0.0");
    client.println();
    while(client.connected() && !client.available());
      while (client.available()) {
        line = client.readStringUntil('\r');
        if (line[1] == '{')
          while (line[i - 1] != '}') {
            buff[y] = line[i];
            y++;
            i++;
          }
      }
    buff[y] = '\0';
    client.stop();
    Serial.println(buff);
    JsonObject& root = jsonBuffer.parseObject(buff);
    if (!root.success())
      Serial.println("!!!!Json failed!!!!");
    else
      likes = strdup(root["fan_count"]);
    Serial.println(likes);
  } else {
    Serial.println("Connection to graph.facebook.com failed...");
  }
}
/****************************************************************************************/

/************************************* WIFI FUNCTION ************************************/
bool wifi_connect() {
  int retry = 0;
  int pos = 0;
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    if (retry == 20) {
      HT1632.clear();
      HT1632.drawText("no wifi", 0, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
      HT1632.render();
      delay(2000);
      return (false);
    }
    if (pos == 32)
      pos = 0;
    HT1632.drawText(".", pos, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
    HT1632.render();
    Serial.print(".");
    delay(500);
    retry++;
    pos++;
  }
  Serial.println("WiFi connected");
  IPAddress ip = WiFi.localIP();
  Serial.println("IP address: ");
  Serial.println(ip);
  return (true);
}


l'erreur est la suivante

exit status 1
cannot declare variable 'client' to be of abstract type 'WiFiClientSecure'

alors la je comprend pas tout....
est ce que qqn a une idee

chacall

après
 pas mal de recherches je ne comprend toujours pas le problème avec cette variable client ...

J-M-L

#21
Apr 22, 2019, 09:25 am Last Edit: Apr 23, 2019, 11:46 am by J-M-L
quand je vois cela je suis inquiet:
Code: [Select]

typedef struct display_funct {
  void (*get)(void);
  void (*display)(int);
} display_funct;

display_funct function[1] = {{facebook_get_likes, print_facebook}};
On est bien d'accord que function est un tableau à une seule entrée, qui sera function[0]


mais plus tard ça ne vous traumatise pas de faire (je n'ai conservé que les appels au tableau)
Code: [Select]
    for (int i = 0; i < 3; i++) {
      function[i].display(pos);
      function[i].get();
      function[i].display(pos);
         if (i + 1 == 3)  function[0].display(pos - 9);
        else  function[i + 1].display(pos - 9);
        function[i].display(pos);
      }
    }
tous ces appels où i sera non nul, ça ne m'encourage pas à lire le code...


-----> commencez par vérifier votre installation des librairies et IDE

- testez un des codes de démo qui utilise HTTPS pour voir si tout est bien installé

puis faites simple:

- faites fonctionner quelque chose qui écrit dans la console série.
- ensuite rajoutez votre écran etc


Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

chacall

alors pour rappel je n'ai rien écrit , je n'y connait rien ....
j'ai tout récup sur un autre projet ....
donc les problèmes sus mentionnes , en effet , ne me choquent pas....

 ensuite le put*** de problème c'est wificlientsecure qui bloque je ne comprend pas pourquoi cette ligne est incorrecte. sur le projet que j'ai pompe
ca marche et sans problème.

j'ai bien sur pris le temps,avant, de paramétrer le wemos pour fonctionner avec wifi sur mon reseau avec une ip locale ( en 192.168.x.x)

je demande donc juste que l'on m'eclaire un peu plus sur le probleme wificlientsecure....
( les docs en anglais que je trouve de ci de la ne font que me perdre encore plus)

hbachetti

Si tu regardais un peu plus loin sur la page de l'auteur, tu pourrais des commentaires qui reportent le même problème que le tien. Et l'auteur ne répond pas.

Le projet contient ses propres librairies ESP8266WiFi, HT1632, ArduinoJson.
Du grand n'importe quoi !

En procédant de la sorte, on est absolument d'avoir des problèmes à court terme.
Sa librairie ESP8266WiFi n'a aucune chance d'être compatible avec les librairies ESP8266 standard au fur et à mesure des changements de versions du package ESP8266.

Si tu vires la librairie ESP8266WiFi, un autre problème apparaît :
Code: [Select]
/mnt/sdc1/riton/Arduino/libraries/HT1632-for-Arduino-master/HT1632.cpp:251:57: error: no matching function for call to 'min(unsigned char&, int)'
    copyInNextStep = min(copyInNextStep, (height - src_y));


Apparemment le compilateur a lui aussi évolué.


Pour résumer :
Tu balances le répertoire ESP8266WiFi.
Et tu remplaces la déclaration ligne 248 :

Code: [Select]

// uint8_t copyInNextStep = 8 - max((src_y & 0b111), (dst_y & 0b111));
int copyInNextStep = 8 - max((src_y & 0b111), (dst_y & 0b111));


Ça compile.

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

hbachetti

Si l'on veut pousser le raisonnement plus loin :

Supprimer la librairie ArduinoJson du projet et installer celle-ci dans le répertoire Arduino/libraries :

https://github.com/bblanchon/ArduinoJson

Malheureusement on ne peut pas appliquer la même recette pour la librairie HT1632.

Il semblerait que l'auteur l'ait modifiée pour y ajouter ses propres images.

Un parfait exemple de ce qu'il ne faut pas faire.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

chacall

ok ca commence a rouler
le hic du moment

exit status 1
Erreur de compilation pour la carte WeMos D1 R1

configuration voir la piece jointe

hbachetti

#26
Apr 22, 2019, 01:40 pm Last Edit: Apr 22, 2019, 01:40 pm by hbachetti
Tu as remarqué le bouton "Recopier les messages d'erreur" en bas à droite ?
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

chacall

ben non j'avais pas tilté


Arduino : 1.8.9 (Windows 10), Carte : "WeMos D1 R1, 80 MHz, Flash, Disabled, 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

In file included from C:\Users\romain\AppData\Local\Temp\arduino_modified_sketch_445397\sketch_apr22a.ino:7:0:

E:\mes documents\Arduino\libraries\WiFiConnect\src/WiFiConnectOLED.h:37:25: fatal error: OLEDDisplay.h: No such file or directory

 #include "OLEDDisplay.h"

                         ^

compilation terminated.

exit status 1
Erreur de compilation pour la carte WeMos D1 R1

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.


hbachetti

Un instant.
Tu pars d'un code utilisant un HT1632. Et maintenant tu comptes utiliser un OLED.

Tu es bien parti d'un code exemple pour cet écran non ?

Alors il faut installer la librairie correspondant à ton exemple.

Pourquoi ? par ce qu'il existe certaine quantité de librairies ESP8266 pour OLED SSD1306.

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

hbachetti

De plus dans ton post #1 tu parles d'une matrice led 8*32 max7219
C'est contradictoire.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Go Up