Sommario:

Tende domestiche automatizzate - Mini progetto con il modulo BluChip (nRF51 BLE) di MakerChips: 7 passaggi (con immagini)
Tende domestiche automatizzate - Mini progetto con il modulo BluChip (nRF51 BLE) di MakerChips: 7 passaggi (con immagini)

Video: Tende domestiche automatizzate - Mini progetto con il modulo BluChip (nRF51 BLE) di MakerChips: 7 passaggi (con immagini)

Video: Tende domestiche automatizzate - Mini progetto con il modulo BluChip (nRF51 BLE) di MakerChips: 7 passaggi (con immagini)
Video: Things Mr. Welch is No Longer Allowed to do in a RPG #1-2450 Reading Compilation 2024, Luglio
Anonim
Tende domestiche automatizzate - Mini progetto con il modulo BluChip (nRF51 BLE) di MakerChips
Tende domestiche automatizzate - Mini progetto con il modulo BluChip (nRF51 BLE) di MakerChips

Immagina di svegliarti e di voler far entrare un raggio di sole dalle finestre, o di chiudere le tende per dormire di più, senza lo sforzo di avvicinarti alle tende ma con il semplice tocco di un pulsante sul tuo smartphone. Con il sistema di tende domestiche automatizzate, puoi raggiungere questo obiettivo con componenti che non costano più di $ 90!

Guarda questo tutorial su Github

Passaggio 1: il design

Il design
Il design

Il cuore del sistema automatizzato per tende domestiche è il modulo BluChip di MakerChips.

Il BluChip è un minuscolo modulo Bluetooth da 16,6x11,15 mm che può fungere da periferica per smartphone tramite BTLE.

Fare clic qui per un'introduzione a Bluetooth Low Energy (BTLE).

Il modulo è costituito da un SoC nRF51 di Nordic Semiconductors, un'ottima piattaforma per applicazioni BLE in quanto supporta molte funzionalità integrate su app Android e Apple.

Passaggio 2: kit BluChip Explorer

BluChip Explorer Kit
BluChip Explorer Kit
BluChip Explorer Kit
BluChip Explorer Kit
BluChip Explorer Kit
BluChip Explorer Kit

Per realizzare questo progetto, ho ricevuto il BluChip Explorer Kit da MakerChips che è arrivato in 2 scatole separate, una per il programmatore CMSIS-DAP e un'altra scatola contenente il BluChip su una breadboard con 2 LED RGB, una fotoresistenza e una batteria CR2032.

Come avrai notato, il modulo BluChip è estremamente piccolo, il che lo rende perfetto per piccoli progetti Bluetooth integrati a bassa potenza. Si adatta a un ingombro di soli 6x4 intestazioni da 0,1" su una breadboard e ha intestazioni aggiuntive da 0,05" nella parte superiore della scheda, piuttosto impressionante per un pacchetto certificato FCC commerciale!

Ecco alcune caratteristiche chiave del BluChip dal sito Web di MakerChips:

  • 14 pin GPIO accessibili
  • Processore ARM Cortex M0 a 32 bit e flash da 256 KB e RAM da 32 KB
  • 16,6 mm x 11,15 mm Il più piccolo modulo Bluetooth® breadboardable disponibile
  • L'alimentatore supporta 1,8 V - 3,6 V
  • Funzionalità Bluetooth

    • BTLE - Bluetooth Low Energy - (BLE, BT 4.1)
    • Bluetooth® e Giappone, FCC, qualificato IC
    • Orologio di sistema integrato a 32 Mhz
    • Potenza in uscita: +4dBm tipica
    • Frequenza: da 2402 a 2480 MHz

      Antenna pattern integrata ad alte prestazioni

    • Modalità singola Bluetooth® Smart Slave/Master
  • Interfacce supportate: SPI, UART, I2C e ADC a 8/9/10 bit
  • Due set di pin di programmazione

    • Intestazioni da.05" per un facile accoppiamento a dispositivi CMSIS-DAP e J-Link
    • Intestazioni da.1" per l'interfacciamento con le breadboard
  • LED rosso controllabile via software

Passaggio 3: app NRF Connect

Image
Image
NRF Connect App
NRF Connect App
NRF Connect App
NRF Connect App

Non appena apri la scatola dell'esploratore BluChip, la vedi prendere vita con i LED lampeggianti, uno spettacolo piuttosto affascinante, non è vero?

Per vedere cosa c'è in serbo con questo modulo BLE, andiamo avanti e installiamo l'app nRF Connect da Google Play o App Store.

Ci collegheremo al BluChip con il nostro telefono, quindi apri l'app nRF Connect, sfoglia la schermata di benvenuto e tocca Abilita per attivare il Bluetooth. Quindi, tocca Scansione e scoprirai presto che il tuo dispositivo BluChip è elencato nella scheda Scanner.

Prima di connetterci effettivamente al BluChip, prendiamo un LED e lo posizioniamo sulla breadboard accanto ai pin 026(+ve) e 021(-ve). Il LED dovrebbe accendersi immediatamente perché il pin 026 emette 3,3 V (livello logico ALTO) mentre il pin 021 è logico LOW (terra).

Vai avanti e tocca Connetti per stabilire una connessione tra il tuo smartphone e il BluChip, che poi ti porta alla scheda client del dispositivo nell'app.

La scheda client BluChip mostra tutti i servizi disponibili sul tuo dispositivo. Quello che ci interessa qui è il servizio GPIO BlueChip (elencato come Servizio sconosciuto). Toccalo, quindi tocca la freccia rivolta verso l'alto accanto alla Caratteristica di modulazione GPIO (elencata come Caratteristica sconosciuta).

Apparirà un popup del valore di scrittura, dandoti la possibilità di inviare dati al tuo dispositivo BluChip. Nel nostro caso, vogliamo spegnere il LED, quindi tocca la freccia accanto a BYTE ARRAY e cambia il formato dei dati in UINT 8. Invieremo il numero del pin come primo valore, quindi inserisci 21 per pin021. Toccare aggiungi valore per inviare il dato successivo, il cui stato deve essere impostato il pin (formato esadecimale BYTE). Per spegnere il LED, imposteremo il pin 021 su 3,3 V (livello logico alto), quindi inserisci 01 quindi tocca Invia.

Il LED si spegne istantaneamente! Per riaccendere il LED inviare un valore 0x00 (livello logico LOW) al pin021. Come si vede sotto la caratteristica elencata, viene visualizzato il valore inviato di (0x) 15-01. {[(decimal UINT8) 21 = (hex BYTE) 0x15] + (hex BYTE) 0x01 => (hex BYTE) 0x1501 }

Se scegli di salvare questi valori nel popup Scrivi valore assegnandogli un nome e quindi toccando Salva, puoi caricarli in futuro come preset per una facile modulazione GPIO!

Passaggio 4: Programmazione del BluChip

Programmare il BluChip
Programmare il BluChip
Programmare il BluChip
Programmare il BluChip
Programmare il BluChip
Programmare il BluChip

Avresti notato dal video sopra che il nome del dispositivo BluChip sul mio telefono è diverso dal tuo, quindi come possiamo cambiarlo a nostro piacimento?

Il firmware dell'applicazione in esecuzione sul BluChip funge da dispositivo periferico (slave) su BLE per dispositivi centrali (master) come gli smartphone ad esso collegati. Per cambiare il nome del nostro dispositivo, diamo un'occhiata al firmware dell'applicazione lampeggiante sul nostro BluChip.

Incluso con il kit BluChip Explorer è il programmatore ARM (CMSIS-DAP). MakerChips ha fornito una guida pratica sui dettagli del flashing del firmware sul BluChip con CMSIS-DAP.

Per compilare il firmware in un file esadecimale e flasharlo, avremo bisogno di Keil, del kit di sviluppo software nRF51 (SDK) e del firmware BluChip. Vai avanti e scaricali dai link nella sezione "Il software" nella pagina Programmazione del BluChip di MakerChips con CMSIS-DAP e Keil.

Installa Keil, quindi segui i passaggi 1-3 nella sezione "Creazione del file esadecimale".

A questo punto, puoi continuare con il Passaggio 4, Ricostruire tutti i file di destinazione.

Se ricevi un errore relativo a "core_cm0.h", dovresti aggiungere il suo percorso al progetto per compilarlo.

Dovremmo semplicemente cercare il file e individuare la sua directory, che è "\components\toolchain\gcc".

Includiamo questo percorso nel nostro progetto. Fare clic su Opzioni per Target, andare alla scheda C/C++ quindi includere il percorso come mostrato nella Figura 16.

Dopo aver incluso le dipendenze necessarie, il nostro progetto viene compilato e ora possiamo visualizzare l'output compilato, un file esadecimale personalizzato in nRF51_SDK_10.0.0_dc26b5e\examples\ble_peripheral\ble_app_ahc-master\bluchip\s110_with_dfu\arm4\_buildnrf51422_xxac_s110.s110.

Per eseguire il flashing del file esadecimale sul BluChip, seguire i passaggi 1-8 nella sezione "Trasferimento del file esadecimale".

Ora che hai caricato il firmware sul BluChip con un nome dispositivo personalizzato, avvia l'app nRF Connect e cerca il tuo dispositivo. Noterai che ora prende il nome da ciò che hai definito in DEVICE_NAME nel firmware!

Nella fase successiva, inizieremo a configurare l'hardware, l'elettronica e il software del nostro sistema automatizzato di tende domestiche.

Passaggio 5: costruire le tende automatizzate

Image
Image
Costruire le tende automatizzate
Costruire le tende automatizzate
Costruire le tende automatizzate
Costruire le tende automatizzate
Costruire le tende automatizzate
Costruire le tende automatizzate

Dopo aver esaminato il processo di compilazione e flashing del nostro firmware, passiamo alla creazione delle nostre tende bluetooth!

Un motore passo-passo verrà utilizzato per azionare una cinghia di distribuzione che muove le tende in apertura e chiusura. Il motore passo-passo è pilotato da un IC driver Half-H che sarà controllato dal BluChip.

Per l'alimentazione, utilizzeremo un regolatore di tensione da 12 V CA-CC che viene alimentato al motore, insieme a un regolatore di tensione CC-CC LM317 per ridurre da 12 V a 3,3 V che alimenterà il BluChip e il circuito integrato del driver passo-passo.

Puoi ottenere il tuo modulo BluChip personale dal nuovissimo negozio MakerChips su Tindie o dal sito Web MakerChips.

Prendiamo le parti elencate di seguito oltre al BluChip Explorer Kit per iniziare a montare le tende automatiche:

  • Adattatore di alimentazione 12V 1A $ 3,40
  • Barrel Jack $0.68
  • Regolatore di tensione LM317T $ 0,80
  • Resistori (200 e 330 Ohm) $ 1,69
  • Driver passo-passo L293D $ 1,63
  • Motore passo-passo unipolare $ 8,00 (o $ 1,66 <= modifica questo unipolare più piccolo in uno stepper bipolare)
  • Cinghia dentata da 6 mm $ 7,31
  • 6mm Gear $ 0,54 (o stampabile in 3D da Thingiverse)
  • Puleggia da 6 mm $ 1,17 (o stampabile in 3D da Thingiverse)
  • Finecorsa x2 (opzionale) $ 1,34
  • Scatola di recinzione del progetto (opzionale) $ 1,06
  • Fili per ponticelli breadboard $2.09
  • Cavi per ponticelli Dupont $ 2,80
  • Elastici $1.13
  • Cravatte Twist $3.22
  • Cavo 22 AWG (opzionale) $ 1,22
  • Fascette (opzionali) $ 0,63
  • Tubo termoretraibile (opzionale) $ 1,97

Strumenti (opzionale):

  • Pistola per colla a caldo $ 3,75
  • Saldatore $ 6,79

Scarica la distinta base da GitHub (Amazon)

La Figura 20 mostra come cablare il sistema, a seconda delle funzionalità che si sceglie di aggiungere. Se vuoi un movimento più preciso, aggiungeresti i finecorsa al progetto.

I finecorsa sono i punti finali delle tende che comunicano al BluChip quando è aperto o chiuso. Senza gli interruttori di fine corsa, dovresti configurare il firmware per indicare quanto si muovono le tue tende nella prossima sezione "Configurazione firmware".

La Figura 20 include anche una fotoresistenza opzionale che consente il rilevamento diurno e notturno, configurabile anche nella sezione "Configurazione firmware".

Inizia l'assemblaggio dell'hardware montando il motore passo-passo, la puleggia e la cinghia di distribuzione sulla parte superiore delle tende. (Figura 21)

Tendere temporaneamente la cinghia di distribuzione con l'elastico. Successivamente, prima di completare il progetto, lo legherai insieme per tenerlo in modo permanente.

Per fissare le tende alla cintura di distribuzione, avvolgere le fascette metalliche attorno alla cintura e al gancio della tenda.

Per avere un'idea migliore su come collegare le tende alla cinghia, segui la Figura 22. Legherai la tenda sinistra alla parte posteriore della cinghia di distribuzione con una fascetta metallica e la tenda destra alla parte anteriore della cinghia di distribuzione con un filo di ferro.

Una volta fissata la cintura e legata la tenda, rimuovere il motore passo-passo in modo che possiamo iniziare a assemblare e testare il circuito elettronico che lo guiderà. Iniziare a costruire l'elettronica posizionando il Bluchip, l'IC L293d e il regolatore di tensione LM317t sulla breadboard secondo alla Figura 20.

Inserire i resistori da 200 e 330 ohm secondo la Figura 20. I resistori regolano l'uscita dell'LM317 in modo che fornisca ~3,3 V. (Figura 24)

Inserire il cavo del ponticello, quindi un jack cilindrico cablato come mostrato nella Figura 26.

Colleghiamo il nostro adattatore di alimentazione alla presa a muro e colleghiamo l'adattatore alla presa cilindrica per testare le tensioni come mostrato nella Figura 27.

Una volta accertati i voltaggi corretti, rimuovere il jack di alimentazione e iniziare a posizionare i restanti cavi dei ponticelli della breadboard secondo la Figura 20.

Successivamente, collegheremo il nostro motore passo-passo bipolare all'IC L293d.

Innanzitutto, posizionare i cavi del ponticello Dupont nel connettore del motore passo-passo come mostrato nella Figura 29.

Per sapere quale filo va dove, seguire lo schema in Figura 30.

Come si vede nello schema, i cavi di una bobina vanno ai Pin2 e Pin6 dell'L293D. I cavi dell'altra bobina vanno a Pin11 e Pin14.

Il motore passo-passo bipolare 28BYJ-48 modificato ha quattro fili colorati utilizzabili come mostrato nella Figura 31.

Colleghiamo il blu al Pin3, il giallo al Pin6, l'arancione al Pin11 e il rosa al Pin14 sull'L293d.

Il circuito di base è ora completo!

Se si desidera implementare i finecorsa, collegare i cavi NO e C a un cavo 22AWG. All'altra estremità, collega i ponticelli DuPont per formare i cavi che si adattano alla breadboard. (Figura 32)

Puoi montarli sul binario della tenda come mostrato nella Figura 33 con degli elastici, oppure se hai una pistola per colla a caldo a portata di mano puoi legarla al binario e poi tamponare una buona quantità di colla a caldo per assicurarti che non si muova in giro.

Per avere un'idea di dove posizionarli, fare riferimento alla Figura 34.

Un finecorsa è fissato all'estremità sinistra del binario della tenda, tra il primo gancio del binario e il secondo, in modo che quando le tende si aprono il gancio preme contro l'interruttore e lo attiva. L'altro finecorsa è posizionato direttamente al centro della rotaia, rivolto verso sinistra. In questo modo, si attiva quando le tende si chiudono.

Inserire i cavi del finecorsa sulla breadboard secondo la Figura 20.

Infine, se si desidera che le tende si aprano quando sorge il sole e si chiudano quando tramonta, è necessario cablare la fotoresistenza come mostrato nella Figura 36 e installarla vicino al punto in cui ha accesso alla luce solare durante l'alba.

Dopo aver configurato il circuito breadboard, preparati e collega il programmatore al BluChip per eseguire il flashing del firmware. Scarica il firmware da GitHub ed estrailo nella tua directory SDK come hai fatto prima.

Scarica ble_app_ahc.zip da Github.

Apri il progetto, quindi compila e carica il firmware sul BluChip.

Prima di testarlo, racchiuderemo la breadboard in una scatola e faremo dei fori per i fili e il nostro LED di stato tenda.

Posiziona la breadboard sulla base della scatola del contenitore e fai un'apertura per i fili. L'apertura serve anche come punto per il BluChip di comunicare con altri dispositivi attraverso la sua antenna. (Figura 37)

Praticare un foro delle dimensioni del LED sul lato della custodia e montare il LED su di esso. Cablare il LED secondo la Figura 20.

Trova un luogo adatto per montare la scatola della custodia a sinistra del binario per tende, vicino a una presa di corrente. Rimontare il motore ed eseguire un test di tensione finale della cinghia di distribuzione, assicurandosi che non sia presente allentamento. (Figura 39)

Ora è il momento di testare il nostro sistema assemblato. Inserisci l'alimentatore e avvia l'app nRF Connect. Scoprirai un dispositivo chiamato Curtains. BluChip.

Collegati ad esso, invia un valore di UINT8 1(Apri tende) alla Caratteristica sconosciuta sotto il servizio Sconosciuto e osserva le tende aperte!

Ora che hai testato con successo il tuo sistema, diamo un'occhiata alla configurazione di parte del codice che esegue lo spettacolo sul BluChip.

Passaggio 6: configurazione del firmware BluChip

Configurazione del firmware BluChip
Configurazione del firmware BluChip
Configurazione del firmware BluChip
Configurazione del firmware BluChip
Configurazione del firmware BluChip
Configurazione del firmware BluChip

Il progetto firmware Automated Home Curtain consiste principalmente di 4 file: main.c, ahc.c, ble_ahc_service.c e ble_ahc_service.h.

Durante la costruzione dell'elettronica e dell'hardware, abbiamo avuto la possibilità di scegliere se volevamo che i finecorsa aumentassero la precisione del nostro sistema automatizzato.

Nel codice di ahc.h, possiamo vedere #define per LIMIT_SWITCHES.

La compilazione e il lampeggio del codice con #define LIMIT_SWITCHES consente l'utilizzo di entrambi i finecorsa per rilevare quando le tende si sono aperte e chiuse.

Rinominarlo in #undef LIMIT_SWITCHES è necessario se hai scelto di non includere i finecorsa per il tuo progetto. In questo caso, dovresti regolare con precisione la distanza a cui viaggia la tua tenda nelle variabili CURTAIN_OPEN_STEPS e CURTAIN_CLOSE_STEPS. Regolare questi valori per allungare o accorciare la distanza di spostamento della tenda.

L'altra opzione, l'aggiunta di una fotoresistenza, può essere abilitata modificando #undef LDR in #define LDR. LDR sta per resistore dipendente dalla luce, noto anche come fotoresistenza. Quando abilitiamo LDR, la fotoresistenza sa quando fuori è luminoso o scuro e ti aiuta a chiudere o aprire le tende all'inizio o alla fine della giornata.

Oltre a configurare i Finecorsa e la Fotoresistenza, diamo un'occhiata ad alcuni degli altri principali blocchi di codice che consentono di aprire e chiudere automaticamente le tende.

I file ble_ahc_service.c & ble_ahc_service.h contengono il codice che trasmette i dati dal tuo telefono al BluChip.

Quando il BluChip riceve i dati, li analizza a seconda che venga inviato uno 0 o un 1. Quindi attiva il LED di stato, esegue il movimento del motore, quindi disattiva il LED di segnalazione completamento.

La funzione ahc_init() di ahc.h viene eseguita all'inizio del ciclo principale, inizializzando tutti i pin del BluChip.

Passaggio 7: riepilogo

Per concludere, questo è stato un progetto estremamente divertente e abbastanza facile per imparare le basi di BLE. Il fatto che il modulo breakout di BluChip si adatti perfettamente a una breadboard rende davvero facile la prototipazione rapida su qualsiasi breadboard che potresti avere in giro.

Direi che dopo aver costruito le mie tende automatizzate, ho già pensato a varie altre cose a cui collegare il BluChip, inclusi neopixel intelligenti, un OLED per creare un orologio digitale, un robot controllato da smartphone e molti altri progetti elettronici a bassa potenza idee che avrebbero bisogno di una comunicazione wireless compatta!

Chiunque abbia un vivo interesse per l'elettronica e la programmazione sarebbe piacevolmente sorpreso da ciò che il BluChip ha da offrire, nonché dalla comodità di impostare e implementare BLE per trasformare i progetti in progetti ancora più interessanti.

A partire da ora, tornerò a godermi le mie pratiche tende automatiche per la casa..

Consigliato: