Buonasera. Volevo sapere se possibile inserire 2 wifi per la connessione ad internet tramite programma per arduino cloud. nel senso che dal codice che ti si crea dal arduino cloud quando si va ad inserire le variabili ti crea un codice dove si gestisce la connessione tramite WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS); nel file thing properties. ho visto che ci sarebbe la libreria arduino_multiwifi ma gestisce la connessione tramite void setup e dovrei modificare tutto il codice penso.
questo è un codice banale per accendere un led da arduino cloud per farvi capire meglio quello che intendo:
#include "arduino_secrets.h"
#include "thingProperties.h"
int pinLed = 4;
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
delay(1500);
// Defined in thingProperties.h
initProperties();
// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
pinMode (pinLed, OUTPUT);
}
void loop() {
ArduinoCloud.update();
}
void onLedChange() {
digitalWrite (pinLed, led);
}
nel file thingproperties:
// Code generated by Arduino IoT Cloud, DO NOT EDIT.
#include <ArduinoIoTCloud.h>
#include <Arduino_ConnectionHandler.h>
const char DEVICE_LOGIN_NAME[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const char SSID[] = SECRET_SSID; // Network SSID (name)
const char PASS[] = SECRET_OPTIONAL_PASS; // Network password (use for WPA, or use as key for WEP)
const char DEVICE_KEY[] = SECRET_DEVICE_KEY; // Secret device password
void onLedChange();
bool led;
void initProperties(){
ArduinoCloud.setBoardId(DEVICE_LOGIN_NAME);
ArduinoCloud.setSecretDeviceKey(DEVICE_KEY);
ArduinoCloud.addProperty(led, READWRITE, ON_CHANGE, onLedChange);
}
WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);
Penso anch'io che non sia compatibile. Chiedo se c'è un modo per inserire 2 o piu wifi in modo che se sposto la scheda si colleghi da sola alle reti senza dover collegare il computer ogni volta e cambiare le credenziali
Ho visto nel forum inglese una domanda simile, come avere iot su 2 wifi diversi. Nessuna soluzione.
“IOT Cloud - multiple WIFI credentials and access points "
Forse, prova a vedere cosa risponde ArduinoCloud.begin. Ritorna un intero. 0 falso, diverso da zero dovrebbe essere vero.
Nel setup avere 2 begin su 2 oggetti ArduinoIoTPreferredConnection diversi.
ArduinoIoTPreferredConnection è solo il nome dell'oggetto.
Se la prima begin fallisce si usa la seconda.
In tutti i casi se funzionasse, solo all'avvio della Board potrebbe scegliere rete attiva. Ma non durante la loop (ovvero se cade connection)
// Connect to Arduino IoT Cloud
int chk=ArduinoCloud.begin(ArduinoIoTPreferredConnection);
if(chk==0) //fallito se falso?
{ ArduinoCloud.begin(ArduinoIoTSecondConnection);
}
Nel thingProperties.h provare come fa quel tizio al link
// Connect to Arduino IoT Cloud
int chk=ArduinoCloud.begin(ArduinoIoTPreferredConnection);
if(chk==0) //fallito se falso?
{ ArduinoCloud.begin(ArduinoIoTSecondConnection);
}