Sommario:
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-13 06:57
HiFive1 è la prima scheda RISC-V compatibile con Arduino costruita con CPU FE310 di SiFive. La scheda è circa 20 volte più veloce di Arduino UNO ma, come la scheda UNO, manca di connettività wireless.
Fortunatamente, ci sono diversi moduli economici sul mercato per mitigare questa limitazione. In questo tutorial ho utilizzato un ESP32 o un ESP8266 per ottenere la connettività wireless. Nonostante quanto sia economico l'ESP-01, a causa della necessità di programmarlo con uno schizzo Arduino, l'ESP-01 era una soluzione meno pratica. Per programmare l'ESP-01, è necessario un adattatore esterno da USB a ESP-01 che non avevo al momento della creazione di questo tutorial. (Se sei interessato a utilizzare un HiFive1 con ESP-01 segui questo link) Ho anche contemplato l'utilizzo di uno scudo Arduino, ma ho finito per attaccare con l'ESP8266/32 a causa del prezzo relativamente costoso che hanno la maggior parte degli scudi.
Questo progetto si concentrerà sulla creazione di un sistema di rilevamento degli intrusi che opererà inviando una notifica a MQTT Broker ogni volta che il sensore a ultrasuoni (SRF05) rileva un oggetto che attraversa la sua linea di vista.
Materiali necessari per questo progetto:
- Scheda HiFive1 (può essere acquistata qui)
- Modulo di sviluppo ESP32 o NodeMCU ESP8266 1.0
- Resistenza da 10k x 2
- resistenza da 1k
- tagliere
- cavo di collegamento x 6
- SRF05 Modulo ad ultrasuoni
- Dispositivo mobile
Passaggio 1: configurazione dell'ambiente
Installa l'IDE Arduino
1. Seguire le istruzioni per installare il pacchetto Arduino della scheda HiFive1 e il driver USB.
2. Installa il pacchetto della scheda ESP32 o ESP8266 aggiungendo un URL appropriato a "File->Preferenze->Gestione schede aggiuntive":
- ESP8266 -
- ESP32 -
Passaggio 2: cablaggio dell'ESP32
Se stai utilizzando un ESP8266, vai al passaggio 3.
Importante: l'SRF05 è disponibile in 2 versioni di pinout che sono versioni speculari l'una dell'altra, assicurati di avere lo stesso modulo del mio usando il link sottostante.
Per maggiori dettagli tecnici sull'SRF05 segui questo link.
GND (HiFive1) - > GND (SRF05)5v (HiFive1) - > VCC (SRF05) DI/O 11 (HiFive1) - > Trigger Pin (SRF05)DI/O 12 (HiFive1) - > Echo Pin (SRF05)DI/ O 5 (HiFive1) - > Tx (ESP32) DI/O 6 (HiFive1) - > Rx (ESP32)
Nota: assicurarsi che il jumper IOREF sia impostato su 3.3v.
Passaggio 3: cablaggio dell'ESP8266
Importante: l'SRF05 è disponibile in 2 versioni di pinout che sono versioni speculari l'una dell'altra, assicurati di avere lo stesso modulo del mio usando il link sottostante.
Per maggiori dettagli tecnici sull'SRF05 segui questo link
GND (HiFive1) - > GND (SRF05)5v (HiFive1) - > VCC (SRF05)DI/O 11 (HiFive1) - > Trigger Pin (SRF05) DI/O 12 (HiFive1) - > Echo Pin (SRF05) DI/ O 5 (HiFive1) - > Tx (ESP8266)DI/O 6 (HiFive1) - > Rx (ESP8266)
Nota: assicurarsi che il ponticello IOREF sia impostato su 3.3v.
Passaggio 4: programmazione
Codice HiFive1:
Prima della programmazione impostare "Strumenti->Scheda" su HiFive1, "Strumenti->Frequenza clock CPU" su "256MHz PLL", "Strumenti->Programmatore" su "SiFive OpenOCD" e selezionare la porta seriale corretta.
Dovrai anche scaricare questa libreria Ultrasonic e questo PubSubClient ed estrarli nella cartella Librerie Arduino che si trova in "Utente-> Documenti-> Arduino-> Librerie".
Codice ESP32/8266:
Durante la programmazione, la scheda ESP dovrebbe avere i pin hardware Rx e Tx disconnessi. Dopo che il codice è stato caricato con successo, ricablare i pin Rx e Tx sull'ESP per garantire la comunicazione tra HiFive1 e ESP.
Per ESP32: impostare "Strumenti->Scheda" su "Modulo di sviluppo ESP32", "Strumenti->Programmatore" su "AVRISP mkll" e selezionare la porta seriale corretta.
Per ESP8266: impostare "Strumenti-> Scheda" su "NodeMCU 1.0 (Modulo ESP-12E)", "Strumenti-> Programmatore" su "AVRISP mkll" e selezionare la porta seriale corretta.
Il codice dello schizzo è stato preso in prestito da qui con modifiche per convertirlo in un sistema di rilevamento degli intrusi.
Passaggio 5: configurazione del client
Ho usato un broker MQTT basato su cloud (questo) e un telefono Android con questa app.
Per impostare tutto, dovrai aprire un account.
Utilizza gli screenshot forniti per completare la configurazione di CloudMQTT e dell'app.
Passaggio 6: risultato finale
Nota: dovresti impostare la velocità di trasmissione del tuo monitor seriale su 115200 poiché questa è la velocità di trasmissione che usiamo nel nostro schizzo.
Il tuo risultato finale dovrebbe essere simile agli screenshot finali