Nota

Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 con altri appassionati.

Perché unirti a noi?

  • Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.

  • Impara e condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime.

  • Sconti esclusivi: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e giveaway: Partecipa a promozioni e giveaway durante le festività.

👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi!

8. Auto IoT

Abbiamo utilizzato l’APP Blynk sul cellulare per controllare l’auto in questo progetto. Ma è necessario fare riferimento a Progetti con la Macchina per assemblare l’auto e avere una comprensione di base del suo funzionamento. Nell’era della diffusione della rete 5G, questa modalità potrebbe diventare uno dei principali metodi di produzione in molte industrie, quindi sperimentiamo questo approccio in anticipo.

1. Costruisci il circuito

../_images/wiring_iot_car.png

2. Modifica del Dashboard

Blynk su cellulare non può modificare i Datastream, quindi dobbiamo eseguire questi passaggi sul lato web.

  1. Crea un Datastream di tipo Virtual Pin sulla pagina Datastream, per registrare il valore dell’asse X del joystick. Imposta NAME su Xvalue, DATA TYPE su Integer, e MIN e MAX su -10 e 10.

    ../_images/sp220613_164507.png
  2. Crea un Datastream di tipo Virtual Pin per registrare il valore dell’asse Y del joystick. Imposta NAME su Yvalue, DATA TYPE su Integer, MIN e MAX su -10 e 10.

    ../_images/sp220613_164717.png

Successivamente, è necessario fare quanto segue sul telefono.

  1. Cerca «Blynk IoT» (non Blynk(legacy)) in GOOGLE Play o APP Store per scaricarlo.

  2. Dopo aver aperto l’APP, effettua l’accesso, utilizzando lo stesso account del client web.

  3. Vai su Dashboard (se non ne hai uno, creane uno) e vedrai che i Dashboard per cellulare e web sono indipendenti tra loro.

../_images/APP_11.jpg
  1. Clicca sull’icona Modifica.

  2. Clicca sull’area vuota.

  3. Seleziona un widget Joystick.

../_images/APP_21.jpg
  1. Ora vedrai un widget Joystick apparire nell’area vuota, cliccaci sopra.

  2. Nelle Impostazioni del Joystick, seleziona i valori Xvalue e Yvalue che hai appena impostato nei datastream.

  3. Torna alla pagina Dashboard e potrai utilizzare il Joystick quando desideri.

../_images/APP_31.jpg

3. Esegui il codice

  1. Apri il file 8.iot_car.ino nel percorso 3in1-kit\iot_project\8.iot_car, oppure copia questo codice nell”Arduino IDE.

  2. Sostituisci il Template ID, Device Name, e Auth Token con i tuoi. Devi anche inserire il ssid e la password del WiFi che stai utilizzando. Per tutorial dettagliati, fai riferimento a 1.3 Collegare la scheda R3 a Blynk.

  3. Dopo aver selezionato la scheda e la porta corrette, clicca sul pulsante Upload.

  4. Apri il Monitor seriale (imposta il baudrate su 115200) e attendi un messaggio che confermi la connessione avvenuta con successo.

    ../_images/2_ready.png

    Nota

    Se appare il messaggio ESP non risponde quando ti connetti, segui questi passaggi.

    • Assicurati che la batteria da 9V sia collegata.

    • Resetta il modulo ESP8266 collegando il pin RST a GND per 1 secondo, quindi scollegalo.

    • Premi il pulsante di reset sulla scheda R3.

    A volte, potrebbe essere necessario ripetere l’operazione sopra 3-5 volte, abbi pazienza.

  5. Ora scollega il cavo USB e alimenta il carrello solo con una batteria da 9V, quindi attendi che il LED si accenda, il che significa che l’auto è connessa a Blynk.

  6. Apri Blynk sul telefono e puoi usare il widget Joystick per controllare il movimento dell’auto.

    ../_images/iot_car.jpg

Come funziona?

Queste funzioni vengono utilizzate per controllare il movimento dell’auto.

void moveForward(int speed) {...}
void moveBackward(int speed) {...}
void turnRight(int speed) {...}
void turnLeft(int speed) {...}
void stopMove() {...}

La sezione IoT legge i valori del widget Joystick e li assegna alle variabili Xvalue e Yvalue.

int Xvalue = 0;
int Yvalue = 0;

BLYNK_WRITE(V9)
{
    Xvalue = param.asInt();
}

BLYNK_WRITE(V10)
{
    Yvalue = param.asInt();
}

Nel loop(), l’auto esegue azioni diverse in base ai valori di Xvalue e Yvalue.

if (Yvalue >= 5) {
    moveForward(255);
} else if (Yvalue <= -5) {
    moveBackward(255);
} else if (Xvalue >= 5) {
    turnRight(150);
} else if (Xvalue <= -5) {
    turnLeft(150);
} else {
    stopMove();
}

Inoltre, aggiungi una determinazione dello stato della rete nel loop() per accendere un LED se è connesso a Blynk Cloud.

if (!Blynk.connected()) {
    digitalWrite(ledPin, LOW);
    Serial.print("offline!");
    bool result = Blynk.connect();
    Serial.println(result);
} else {
    digitalWrite(ledPin, HIGH);
}