WiFiManager_NINA_Lite

Salve a tutti!
Spero che qualcuno di voi mi sappia dare una mano.
Sto utilizzando la libreria WiFiManager_NINA_Lite (GitHub - khoih-prog/WiFiManager_NINA_Lite: Light-Weight WiFi/Credentials Manager for AVR Mega, Teensy, SAM DUE, SAMD, STM32, etc. boards running U-Blox WiFiNINA modules/shields. Powerful-yet-simple-to-use feature to enable adding dynamic custom parameters. Now using WiFiMulti_Generic library).

La libreria funziona perfettamente, riesco a collegarmi alla rete mediante configurazione del web portal e si collega alla nuova rete.
Quello che non riesco a capire è come integrare il codice che vedete sotto.
Cioè, non riesco a farlo agganciare alla rete che seleziono mediante la libreria.

Qualcuno mi sa dare una mano?

Ringrazio in anticipo.

#include <SPI.h>

#include <WiFiNINA.h>


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

#include <ArduinoJson.h>

#define BOT_TOKEN "MyToken"

#define chat_id "MyID"

char SSID[] = "Myssid";         // your network SSID (name)
char PASS[] = "Mypass"; // your network password

int status = WL_IDLE_STATUS;

WiFiSSLClient client;
UniversalTelegramBot bot(BOT_TOKEN, client);

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); {
    // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
  // Defined in thingProperties.h
  }

  // 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, PASS);

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

  pinMode (4, INPUT);
  
  bot.sendMessage(chat_id, "Connesso!", "");
}

void loop() {

  if (digitalRead(4)) {
    bot.sendMessage(chat_id, "Aperto", "");
    // Attesa tempo 8 ore per ripristino tasto
    delay(28800000);
  } else {
  }
}

Buongiorno,

essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del regolamento di detta sezione (… 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 su citato REGOLAMENTO

... poi, in conformità al suddetto regolamento, punto 7, cortesemente edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona </> nella barra degli strumenti per contrassegnarla come codice.

Inoltre, così com'è, non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac, sempre all'interno del IDE). Grazie.

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread e sistemato il codice come da regolamento, nel rispetto del citato regolamento nessuno ti risponderà (eventuali risposte verrebbero temporaneamente nascoste), quindi ti consiglio di fare il tutto al più presto. :wink:

spero di aver fatto tutto bene :smiley:
Grazie 1000 :wave:

:arrow_up: :arrow_up: :arrow_up:

@herobyte che significa integrare?

Prendi l'esempio incluso con la libreria, lo analizzi per bene cosi da capire come usare le funzioni della libreria e poi aggiungi quello che serve nel tuo sketch.

Gli esempi fanno uso di tante opzioni configurabili che magari a te non servono.
In teoria dovrebbe bastare di base qualcosa del genere (usando tutto il resto con i valori di default):

#include "defines.h"
#include "Credentials.h"
#include "dynamicParams.h"
WiFiManager_NINA_Lite* WiFiManager_NINA;

void setup()
{
  // Debug console
  Serial.begin(115200);
  WiFiManager_NINA = new WiFiManager_NINA_Lite();
  WiFiManager_NINA->setConfigPortalChannel(0);
  WiFiManager_NINA->begin();
}

void loop()
{
  WiFiManager_NINA->run();
}

Ovviamente devi aggiungere i file "defines.h", "Credentials.h" e "dynamicParams.h" nella cartella del tuo sketch.

Ciao, grazie per la risposta.
Integrare nel senso unire, cioè, se io uso il mio sketch da solo, in quel caso si collega alla rete wifi che seleziono e che come vedi configuro dallo sketch stesso, quello che non capisco è come fare connettere la libreria WIFIMANAGER al mio sketch, cioè, una volta che configuro tramite il portal della libreria la rete, come la imposto nel mio sketch e dirgli di agganciarsi alla rete selezionata?

Come mi hai suggerito tu, mi sembra di togliere tutta la configurazione necessaria a selezionare la rete

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