Progetto 16: Controllo Remoto Bluetooth

(1)Descrizione:

Negli ultimi decenni, il Bluetooth è diventato il modulo di comunicazione wireless più diffuso perché è facile da usare e ha trovato ampie applicazioni nella maggior parte dei dispositivi alimentati a batteria.

Per adattarsi ai tempi, alla realtà e alle esigenze dei clienti, il Bluetooth è stato aggiornato più volte. Negli ultimi anni ha subito molte trasformazioni in termini di velocità di trasferimento dati, consumo energetico dei dispositivi indossabili e dei dispositivi IoT, sistemi di sicurezza e altro ancora. Qui, intendiamo studiare il DX-BT24 con la scheda Arduino.

(2)Parametri:

  • Protocollo Bluetooth: Bluetooth Specification V5.1 BLE

  • Invio e ricezione tramite porta seriale senza limite di byte

  • Distanza di comunicazione: 40m (ambiente aperto)

  • Frequenza operativa: banda ISM 2.4GHz

  • Metodo di modulazione: GFSK (Gaussian Frequency Shift Keying)

  • Caratteristiche di sicurezza: Autenticazione e Cifratura

  • Servizi supportati: UUID Central e Peripheral FFE0, FFE1, FFE2

  • Consumo energetico: modalità di sospensione automatica, corrente in standby 400uA~800uA, 8.5mA durante la trasmissione.

  • Alimentazione: 5V

  • Temperatura operativa: da –10 a +65 gradi Celsius

(3)Schema di Collegamento:

1.STATE è il pin di test dello stato collegato al diodo emettitore di luce interno e di solito rimane non collegato.

2.RXD è l’interfaccia della porta seriale per il terminale di ricezione.

3.TXD è l’interfaccia della porta seriale per il terminale di invio.

4.GND è per la messa a terra.

5.VCC è il polo positivo.

6.EN/BRK: la sua disconnessione rappresenta la disconnessione del Bluetooth e di solito rimane non collegato.

(Nota: qui il Bluetooth è collegato direttamente con lo shield V2 e prestare attenzione alla direzione)

(4)Scarica e installa l’APP:

Per sistema IOS

1. Apri App Store.

2. Cerca KeyesRobot nell’Apple Store e clicca su scarica.

3. Dopo l’installazione dell’app, vedrai la seguente icona sul desktop del tuo telefono.

Come collegare un telefono iOS al modulo Bluetooth:

1. Attiva il Bluetooth e i servizi di localizzazione sul telefono tramite le impostazioni.

2. Consenti all’app KeyesRobot di accedere al Bluetooth tramite le impostazioni.

3. Clicca per aprire l’app KeyesRobot.

4. KeyesRobot App è un’APP universale, applicata a più robot keyestudio. Se l’interfaccia non mostra “TANK ROBOT”, puoi cliccare i pulsanti sinistra e destra per trovare “TANK ROBOT”.

5. Clicca il pulsante Bluetooth nell’angolo in alto a destra per scansionare il bluetooth

6. Vedrai un Bluetooth di nome BT24, clicca il pulsante Connect.

7. Se il LED integrato sul modulo Bluetooth smette di lampeggiare e rimane acceso, significa che il tuo telefono è connesso con successo al modulo Bluetooth.

Per sistema Android

1. Cerca KeyesRobot su Google Play, oppure apri il seguente link per scaricare e installare l’app.

https://play.google.com/store/apps/details?id=com.keyestudio.keyestudio

2. Attiva il Bluetooth e i servizi di localizzazione del telefono cellulare

3. Trova l’app Bluetooth KeyesRobot dalle impostazioni, clicca sulle opzioni dei permessi dell’app e abilita i permessi di Posizione e dispositivi nelle vicinanze.(Nota: Alcuni telefoni cellulari non dispongono della funzione dei permessi per i dispositivi nelle vicinanze.)

4. Clicca per aprire l’app KeyesRobot.

5. KeyesRobot App è un’APP universale, applicata a più robot keyestudio. Se l’interfaccia non mostra “TANK ROBOT”, puoi cliccare i pulsanti sinistra e destra per trovare “TANK ROBOT”.

6. Clicca il pulsante Bluetooth nell’angolo in alto a destra per scansionare il bluetooth

7. Vedrai un Bluetooth di nome BT24, clicca il pulsante Connect.

8. Quando il tuo telefono è connesso con successo al modulo Bluetooth, il LED integrato sul modulo Bluetooth smetterà di lampeggiare e rimarrà acceso.

(5)Testare l’APP Bluetooth:

(Nota: Non collegare il modulo Bluetooth prima di caricare il codice, perché il caricamento del codice utilizza anche la comunicazione seriale, e potrebbero verificarsi conflitti con la comunicazione seriale Bluetooth, che possono causare il fallimento del caricamento.)

/*
Keyestudio Mini Tank Robot V3 (Popular Edition)
lesson 16.1
Bluetooth
http://www.keyestudio.com
*/

char ble_val; // Variabile carattere (usata per memorizzare il valore ricevuto dal Bluetooth)

void setup() 
{
	Serial.begin(9600);
}

void loop() 
{
    if (Serial.available() > 0) // Determina se ci sono dati nel buffer della porta seriale
    {
        ble_val = Serial.read(); // Legge i dati nel buffer della porta seriale
        Serial.println(ble_val); // Stampa
    }
}

Carica il codice sulla scheda di sviluppo, poi inserisci il modulo Bluetooth e connetti il telefono cellulare al modulo Bluetooth.

Dopo che il telefono cellulare è connesso con successo al modulo Bluetooth, clicca per aprire l’APP Bluetooth e clicca il pulsante Select sulla homepage.

L’interfaccia principale dell’app Bluetooth è mostrata nella figura seguente.

Dopo che il codice sopra è stato caricato con successo, apri il monitor seriale dell’Arduino IDE e imposta la velocità di baud a 9600. Clicca l’icona sull’interfaccia dell’APP e il monitor seriale mostrerà il comando inviato dal pulsante.



**Nota: Il metodo di connessione dell'APP è lo stesso di seguito.**

(6)Spiegazione del Codice:

Serial.available() rappresenta il numero di caratteri attualmente rimanenti nel buffer della porta seriale.

Questa funzione è generalmente usata per determinare se ci sono dati in quest’area. Quando Serial.available()>0, significa che la porta seriale ha ricevuto dati e può essere letta.

Serial.read() si riferisce al prelievo e alla lettura di un Byte di dati dal buffer della porta seriale. Ad esempio, se un dispositivo invia dati all’Arduino tramite la porta seriale, possiamo usare Serial.read() per leggere i dati inviati.

(7)Progetto di Espansione:

Qui usiamo il comando inviato dal telefono cellulare per accendere o spegnere un LED. Guardando il diagramma di cablaggio, un LED è collegato al pin D9.

Codice di Test

(Nota: Non collegare il modulo Bluetooth prima di caricare il codice, perché il caricamento del codice utilizza anche la comunicazione seriale, e potrebbero verificarsi conflitti con la comunicazione seriale del Bluetooth, che possono causare il fallimento del caricamento del codice.)

/*
Keyestudio Mini Tank Robot V3 (Popular Edition)
lesson 16.2
Bluetooth
http://www.keyestudio.com
*/

int LED = 9;
char ble_val; // Variabile intera usata per memorizzare il valore ricevuto dal Bluetooth

void setup() 
{
    Serial.begin(9600);
    pinMode(LED, OUTPUT);
}

void loop() 
{

    if (Serial.available() > 0) // Determina se ci sono dati nel buffer della porta seriale
    {
        ble_val = Serial.read(); // Legge i dati dal buffer della porta seriale
        Serial.print("DATA RECEIVED:");
        Serial.println(ble_val);
        if (ble_val == 'a') 
        {
            digitalWrite(LED, HIGH);
            Serial.println("led on");
        }
        if (ble_val == 'b') 
        {
            digitalWrite(LED, LOW);
            Serial.println("led off");
        }
    }
}

Dopo che il codice sopra è stato caricato con successo, apri il monitor seriale dell’Arduino IDE e imposta la velocità di baud a 9600. Clicca per controllare il LED. Quando si clicca, verrà inviato il carattere a, quindi il LED si accenderà. Se questo pulsante viene premuto di nuovo, il LED si spegnerà.

È necessario rimuovere il modulo BT al termine dei progetti.