Erreur téléversement Stats Instagram dans Serial

Bonjour à tous,

Je suis nouveau dans Arduino avec un kit Elegoo depuis quelques mois. Aujourd'hui j'ai acheté un ESP8266 NodeMCU, et j'aimerai recuperer le nombre d'abonnés a mon compte instagram, et l'afficher dans le Serial Moniteur.
Ensuite je verrai pour faire un afficheur.

J'ai reussi à connecter mon ESP8266 à mon wifi, pas de problème et j'ai recupéré un code complet qui recupère le nombre d'abo, et l'affiche, donc j'ai supprimé ce qui est inutile pour la première étape, et gardé juste l'essentiel.

La compilation est ok, mais au téléversement j'ai des erreurs et donc ça ne fonctionne pas.

Pourrier vous m'aider ?

// ESP8266 WiFi main library
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>

//Libraries for INSTAGRAM Stat
#include "InstagramStats.h"       // Thanks to Brian Lough for creating this awesome Library. https://github.com/witnessmenow/arduino-instagram-stats
#include "JsonStreamingParser.h"

// Libraries for internet time
#include <WiFiUdp.h>
#include <NTPClient.h>          // include NTPClient library
#include <TimeLib.h>            // include Arduino time library

// Libraries for SSD1306 OLED display
#include <SPI.h>
#include <Wire.h>              // include wire library (for I2C devices such as the SSD1306 display)

WiFiClientSecure client;
InstagramStats instaStats(client);

unsigned long delayBetweenChecks = 60000; //mean time between api requests

//UID
String userName = "electropoint4u"; // follow this instagram url https://www.instagram.com/electropoint4u/

#define OLED_RESET   -1     // define SSD1306 OLED reset at ESP8266 GPIO5 (NodeMCU D1)

// set Wi-Fi SSID and password
const char *ssid     = "SSID";
const char *password = "PASSWORD";

WiFiUDP ntpUDP;
// 'time.nist.gov' is used (default server) with +1 hour offset (3600 seconds) 60 seconds (60000 milliseconds) update interval
NTPClient timeClient(ntpUDP, "time.nist.gov", 3600, 60000);

void setup()
{
  Serial.begin(115200);
  delay(10);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  Serial.print("Connecting.");

  while ( WiFi.status() != WL_CONNECTED )
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println("connected");
  client.setInsecure();
  delay(10);
}

void loop()
{
  if (WiFi.status() == WL_CONNECTED)  // check WiFi connection status
  {
    delay(200);
    getInstagramStatsForUser();
  }
}

void getInstagramStatsForUser() {
  Serial.println("Getting Instagram user stats for " + userName);
  Serial.print(userName);

  InstagramUserStats response = instaStats.getUserStats(userName);
  Serial.println("Response:");
  Serial.print("Number of followers: ");
  Serial.println(response.followedByCount);
}
// End of code.

et l'erreur est :

Arduino : 1.8.13 (Windows 10), Carte : "NodeMCU 0.9 (ESP-12 Module), 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), 4MB (FS:2MB OTA:~1019KB), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

Executable segment sizes:

IROM   : 358412          - code in flash         (default or ICACHE_FLASH_ATTR) 

IRAM   : 26892   / 32768 - code in IRAM          (ICACHE_RAM_ATTR, ISRs...) 

DATA   : 1260  )         - initialized variables (global, static) in RAM/HEAP 

RODATA : 1448  ) / 81920 - constants             (global, static) in RAM/HEAP 

BSS    : 25792 )         - zeroed variables      (global, static) in RAM/HEAP 

Le croquis utilise 388012 octets (37%) de l'espace de stockage de programmes. Le maximum est de 1044464 octets.

Les variables globales utilisent 28500 octets (34%) de mémoire dynamique, ce qui laisse 53420 octets pour les variables locales. Le maximum est de 81920 octets.

C:\Users\2M\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1/python3 C:\Users\2M\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4/tools/upload.py --chip esp8266 --port COM6 --baud 115200 --before default_reset --after hard_reset write_flash 0x0 C:\Users\2M\AppData\Local\Temp\arduino_build_233099/FPH7CAQJD4UN3ST.ino.bin 

esptool.py v2.8

Serial port COM6

Traceback (most recent call last):

  File "C:\Users\2M\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4/tools/upload.py", line 65, in <module>

    esptool.main(cmdline)

  File "C:/Users/2M/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/esptool\esptool.py", line 2889, in main

    esp = chip_class(each_port, initial_baud, args.trace)

  File "C:/Users/2M/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/esptool\esptool.py", line 237, in __init__

    self._port = serial.serial_for_url(port)

  File "C:/Users/2M/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/pyserial\serial\__init__.py", line 88, in serial_for_url

    instance.open()

  File "C:/Users/2M/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/pyserial\serial\serialwin32.py", line 62, in open

    raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))

serial.serialutil.SerialException: could not open port 'COM6': PermissionError(13, 'Acc�s refus�.', None, 5)

serial.serialutil.SerialException: could not open port 'COM6': PermissionError(13, 'Acc�s refus�.', None, 5)
14:24:51.914 -> Getting Instagram user stats for "moncompteinsta"
14:24:52.356 -> Response:
14:24:52.356 -> Number of followers: 0

Bonjour,
J'ai réussi a faire tourner le code, je précise que j'ai bien changer le nom de mon compte correctement,
Par contre il me recupère toujours "0 followers"

Le problème doit se passer ici :

InstagramUserStats response = instaStats.getUserStats(userName);

Je me demande si on peut toujours le faire de cette façon ??

Sauriez vous m'aider ?
Merci

si vous essayez ce code

#include "InstagramStats.h"
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include "JsonStreamingParser.h"

//------- A REMPLIR  ------
char ssid[] = "SSID";
char password[] = "PASSWORD";
String userName = "electropoint4u"; 

unsigned long delayBetweenChecks = 60000UL; //mean time between api requests
unsigned long lastTime = 0;
WiFiClientSecure client;
InstagramStats instaStats(client);

void readData()
{
  Serial.println("Getting instagram user stats for " + userName);
  InstagramUserStats response = instaStats.getUserStats(userName);
  Serial.print("Nombre de followers: ");
  Serial.println(response.followedByCount);
}

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED);
  Serial.println(F("WiFi connected"));
}

void loop() {
  unsigned long timeNow = millis();
  if (millis() - lastTime >= delayBetweenChecks)) {
    readData();
    lastTime = millis();
  }
}

en remplissant le bon nom de réseau wifi et mot de passe

char ssid[] = "SSID";
char password[] = "PASSWORD";

si vous ouvrez la console série à 115200 bauds, que voyez vous ?

(leur bibliothèque a plus de 2 ans et les APIs ont peut-être été modifiées depuis)

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.