[RISOLTO] Lettura messaggi da Telegram con arduino nano 33 IoT

Salve a tutti, sarò Franco: ho un problema con il mio arduino nano 33 IoT. Scritto lo sketch si collega al wifi ma, non appena mando in esecuzione lo sketch e scrivo messaggi su telegram, questi, non compaiono nella seriale.

devo fare un progetto per l'università e spero che qualcuno mi possa dare una mano

Buongiorno,

prima di tutto ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana ... la prossima volta potrebbe venire direttamente eliminato, dopo di che ...

... essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nel rispetto del suddetto regolamento nessuno ti risponderà (eventuali risposte verrebbero cancellate), quindi ti consiglio di farla al più presto. :wink:

Salve, mi scuso per la mia mancata presentazione, ma ho gia provveduto. Perdoni la mia indecenza, ma io devo risolvere a tutti i costi questo problema che cerco di risolvere da giorni senza nessun risultato

Se non metti il codice che stai usando (mi raccomando, come da regolamento, il codice, una volta inserito va TUTTO selezionato e va premuta l'icona </> nella barra degli strumenti per contrassegnarlo, appunto come codice. Inoltre, affinché sia ben leggibile, esso deve essere correttamente "indentato" ... questo lo si fa premendo ctrlT su un PC o cmd T su un Mac all'intero del IDE), difficilmente qualcuno potrà aiutarti ... :roll_eyes:

Guglielmo

#include<SPI.h>
#include<WiFiNINA.h>
#include<TelegramBot.h>





//char ssid []= "Vodafone-C00010245";
char ssid [] = "Franco";
char pass [] = "private";

//char pass [] = "krscs67s4LEarpqn";

int status =  WL_IDLE_STATUS;

WiFiSSLClient client;

char token [] = "private";

TelegramBot lillobot(token, client);



void setup() {

  Serial.begin(150200);

  pinMode(2, OUTPUT);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  // check for the WiFi module:
  if (WiFi.status() == WL_NO_MODULE) {
    Serial.println("Communication with WiFi module failed!");
    // don't continue
    while (true);
  }


  // attempt to connect to WiFi network:
  while (status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid, pass);

    // wait 10 seconds for connection:
    delay(2000);
  }
  Serial.println("Connected to WiFi");

  lillobot.begin();

  Serial.println("Bot started\n");
  // Read new messages

}

void loop() {




  message  m = lillobot.getUpdates(); // Read new messages
  String msg;

  Serial.println(m.text);

  if ( m.chat_id != 0 ) { // Checks if there are some updates

    digitalWrite(2, HIGH);
    Serial.println(String(m.text));





    // Reply to the same chat with the same text
  } else {
    Serial.println("no new message");
  }



}

Questo riportato è il codice, larduino si collega al wifi, ma non legge i messaggi da telegram

il led si accende, ma non vengono visualizzati i messaggi sulla seriale

Ma nel sorgente c'è veramente questa riga ho hai sbagliato a riportarla ???

Serial.begin(150200);

Guglielmo

C è perche ho provato con diverse baud rate, l'ho impostata a 9600

I baud rate disponibili sono queli che puoi impostare nel Monitor Seriale e, di sicuro, 150200 NON è un valore valido. Devi avere esattamente lo stesso valore sia nel codice che nel Monitor Seriale ...

Detto questo, NON ho mai usato quella libreria, mentre posso assicurati che QUESTA (installabile dal Library Manager del IDE dato che è una libreria accettata) NON ho avuto alcun problema.

Guglielmo

questa quale mi scusi? json?

La parola QUESTA in blu è un link ... se ci fai click sopra ... :roll_eyes:

Guglielmo

ho cliccato è mi spunta la libreria universaltelegrambot, lei l ha mai usata?

Perdona, ma ... li leggi con attenzione i messaggi che ti si scrivono ?

... che, ovviamente, sta ha significare che l'ho usata e non ho avuto problemi.

Guglielmo

#include <SPI.h>

// ----------------------------
// Additional Libraries - each one of these will need to be installed.
// ----------------------------
#include <WiFiNINA.h>
// Library for using network deatures of the official Arudino
// Wifi Boards (MKR WiFi 1010, Nano 33 IOT etc)

// Search for "nina" in the Arduino Library Manager
// https://github.com/arduino-libraries/WiFiNINA

#include <UniversalTelegramBot.h>
// Library for connecting to Telegram

// Search for "Telegram" in the Arduino Library Manager
// Install the "Universal Telegram" one by Brian Lough
// https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot

#include <ArduinoJson.h>
// Library used for parsing Json from the API responses

// Search for "Arduino Json" in the Arduino Library manager
// https://github.com/bblanchon/ArduinoJson

// Wifi network station credentials
char ssid[] = "Franco";         // your network SSID (name)
char password[] = "  "; // your network password
// Telegram BOT Token (Get from Botfather)
#define BOT_TOKEN "private"

const unsigned long BOT_MTBS = 1000; // mean time between scan messages

int status = WL_IDLE_STATUS;



WiFiSSLClient client;
UniversalTelegramBot bot(BOT_TOKEN, client);
unsigned long bot_lasttime; // last time messages' scan has been done

void handleNewMessages(int numNewMessages)
{
  for (int i = 0; i < numNewMessages; i++)
  {
    bot.sendMessage(bot.messages[i].chat_id, bot.messages[i].text, "");
  }
}

void printWiFiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your board's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

void setup()
{
    //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // check for the WiFi module:
  if (WiFi.status() == WL_NO_MODULE) {
    Serial.println("Communication with WiFi module failed!");
    // don't continue
    while (true);
  }

  String fv = WiFi.firmwareVersion();
  if (fv < "1.0.0") {
    Serial.println("Please upgrade the firmware");
  }

  // attempt to connect to WiFi network:
  while (status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid, password);

    // wait 10 seconds for connection:
    delay(10000);
  }
  Serial.println("Connected to wifi");
  printWiFiStatus();
}

void loop()
{
  if (millis() - bot_lasttime > BOT_MTBS)
  {
    int numNewMessages = bot.getUpdates(bot.last_message_received + 1);

    while (numNewMessages)
    {
      Serial.println("got response");
      handleNewMessages(numNewMessages);
      numNewMessages = bot.getUpdates(bot.last_message_received + 1);
    }

    bot_lasttime = millis();
  }
}

dopo aver installato la libreria UniversalTelegrambot.h e scritto il codice riportato sopra, funziona, si collega al wifi, ma non legge i messaggi da telegram

Non so che dirti ... magari cattiva configurazione del BOT su Telegram ...
... ripeto, io la uso regolarmente e NON ho alcun problema.

Hai configurato bene il BOTtoken ed il BOTchatnum (se vuoi mandare messaggi al BOT) che ti servono per parlare con Telegram?

Guglielmo

Hai provato ad usare il loro esempio (examples/WifiNINA/EchoBot/EchoBot.ino) così com'è, senza modifiche, solo mettendo dentro le giuste credenziali ? Che succede ?

Guglielmo

Finalmente sono riuscito a farlo funzionare, bastava solo il downgrade del firmware del wifiNina al firmware più datato (1.3.0). Spero che tanta gente che ha avuto il mio stesso problema, possa finalmente risolverlo.