Collegamento dell’EByte E70 ai dispositivi STM32 (black/blue pill) e un semplice sketch di esempio
Benvenuti di nuovo nella nostra serie sulla connessione dell’EByte E70 a vari dispositivi! In questo articolo, vi guideremo attraverso un semplice esempio di sketch che vi aiuterà a stabilire una connessione tra l’EByte E70 e i vostri dispositivi STM32. Quindi, tuffiamoci subito!
Comprendere l’EByte E70
L’EByte E70 è un modulo ricetrasmettitore ad alte prestazioni per lunghe distanze, noto per le sue capacità di comunicazione a lungo raggio e il basso consumo energetico. Opera nelle bande di frequenza sub-GHz ed è progettato per la comunicazione wireless su grandi distanze, rendendolo ideale per applicazioni IoT che richiedono comunicazione affidabile ed efficiente su ampie aree.
Prerequisiti
Prima di iniziare, assicuratevi di avere quanto segue:
- Un dispositivo STM32F4 o STM32F1
- Il modulo EByte E70 con un adattatore per breadboard
- Arduino IDE installato sul vostro computer
- I cavi USB necessari per collegare il vostro dispositivo STM32 e il modulo EByte E70 al vostro computer
- Breadboard
Qui i microcontrollori di cui hai bisogno STM32F103C8T6 STM32F401 STM32F411 ST-Link v2 ST-Link v2 official
Qui le varianti E70 RF E70 433/915 T S/S2 - E70 433/915 MT S
Configurazione dell’Hardware
Pinout E70 xxxT14S2
Utilizzerò una versione E70 S2 per il mio test perché ha un fattore di forma comodo con un’antenna SMA integrata.
Socket stampato in 3D per breadboard
Ho creato un semplice socket con la mia stampante 3D per prototipare rapidamente (e gestire) l’E70 S2; ecco il modello 3D e il risultato su una breadboard.
È molto semplice e utilizza la stessa tecnica di altri socket che ho già creato.
Dopo la stampa, è necessario aggiungere i fili all’interno dei fori.
Inseritelo nei fori più interni e spingetelo fuori di circa 3 mm
Piegare il filo all’esterno dell’adattatore.
Tagliare la parte esterna del filo ed estrarre,
poi reinserirlo nei fori interni ed esterni.
Ora controlla se è necessario tagliare ancora il filo del foro interno e piegarlo.
Ripeti per tutti i pin. Il risultato è molto soddisfacente.
Cablaggio
STM32F401/STM32F411
Lo STM32 è molto robusto e più potente dei suoi concorrenti.
Cablaggio.
E70 | STM32F4 |
---|---|
M0 | PB0 |
M1 | PB1 |
M2 | PB10 |
TX | RX2 |
RX | TX2 |
AUX | PA0 |
VCC | 3.3v |
GND | GND |
Costruttore
HardwareSerial Serial2(USART2); // PA3 (RX) PA2 (TX)
RF_E70 e70ttl(&Serial2, PA0, PB0, PB1, PB10); // RX AUX M0 M1 M2
STM32F1
Lo STM32F1 blue pill è la scheda STM32 più utilizzata.
Cablaggio.
E70 | STM32F1 |
---|---|
M0 | PB0 |
M1 | PB1 |
M2 | PB10 |
TX | RX2 |
RX | TX2 |
AUX | PA0 |
VCC | 3.3v |
GND | GND |
Costruttore
HardwareSerial Serial2(USART2); // PA3 (RX) PA2 (TX)
RF_E70 e70ttl(&Serial2, PA0, PB0, PB1, PB10); // RX AUX M0 M1 M2
Configurazione dell’Arduino IDE
Ho scritto alcuni articoli a riguardo, che potete trovare qui.
- STM32F1 Blue Pill: piedinatura, specifiche e configurazione IDE Arduino (STM32duino e STMicroelectronics)
- STM32: programmazione (STM32F1) via USB con bootloader STM32duino
- STM32: programmazione (STM32F1 STM32F4) tramite USB con bootloader HID
- STM32F4 Black Pill: pinout, specifiche e configurazione IDE Arduino
- STM32: ethernet w5500 standard (HTTP) e SSL (HTTPS)
- STM32: ethernet enc28j60 standard (HTTP) e SSL (HTTPS)
- STM32: WiFiNINA con un ESP32 come WiFi Co-Processor
- Come utilizzare la scheda SD con l’stm32 e la libreria SdFat
- STM32: memoria flash SPI FAT FS
- STM32: RTC interno, sistema orario e backup batteria (VBAT)
- STM32 LoRa
- STM32 Risparmio energetico
- STM32F1 Blue-Pill gestione clock e frequenza
- STM32F4 Black-Pill gestione clock e frequenza
- Introduzione e framework Arduino vs STM
- Libreria LowPower, cablaggio e Idle (STM Sleep).
- Sleep, deep sleep, shutdown e consumo energetico
- Sveglia da allarme RTC e Seriale
- Sveglia da sorgente esterna
- Introduzione al dominio di backup e conservazione delle variabili durante il RESET
- Registro di backup RTC e conservazione della SRAM
- STM32 invia email con allegati e SSL (come Gmail): w5500, enc28j60, SD e SPI Flash
- Server FTP su STM32 con W5500, ENC28J60, scheda SD e memoria flash SPI
- Collegamento dell’EByte E70 ai dispositivi STM32 (black/blue pill) e un semplice sketch di esempio
Con l’Arduino IDE configurato, possiamo procedere allo sketch di esempio.
Installazione della libreria
Potete trovare la libreria su GitHub.
Ma per semplicità, l’ho aggiunta al gestore delle librerie di Arduino.
Sketch di esempio
La libreria offre molti esempi, e devi solo decommentare il costruttore corretto.
/*
* EByte RF E70
* send a transparent message, you must check that the transmitter and receiver have the same
* CHANNEL ADDL and ADDH
*
* You must uncommend the correct constructor.
*
* by Renzo Mischianti <https://www.mischianti.org>
*
* https://www.mischianti.org
*
* E70 ----- WeMos D1 mini ----- esp32 ----- Arduino Nano 33 IoT ----- Arduino MKR ----- Raspberry Pi Pico ----- stm32 ----- ArduinoUNO
* M0 ----- D6 ----- 19 ----- 4 ----- 2 ----- 9 ----- PB0 ----- 8 Volt div
* M1 ----- D7 ----- 21 ----- 5 ----- 3 ----- 10 ----- PB1 ----- 7 Volt div
* M1 ----- D8 ----- 22 ----- 6 ----- 4 ----- 11 ----- PB10 ----- 6 Volt div
* TX ----- D3 (PullUP) ----- RX2 (PullUP) ----- RX1 (PullUP) ----- 14 (PullUP) ----- 8 (PullUP) ----- PA2 RX2 (PullUP) ----- 4 (PullUP)
* RX ----- D4 (PullUP) ----- TX2 (PullUP) ----- TX1 (PullUP) ----- 13 (PullUP) ----- 9 (PullUP) ----- PA3 TX2 (PullUP) ----- 5 Volt div (PullUP)
* AUX ----- D5 (PullUP) ----- 15 (PullUP) ----- 2 (PullUP) ----- 0 (PullUP) ----- 2 (PullUP) ----- PA0 (PullUP) ----- 3 (PullUP)
* VCC ----- 3.3v/5v ----- 3.3v/5v ----- 3.3v/5v ----- 3.3v/5v ----- 3.3v/5v ----- 3.3v/5v ----- 3.3v/5v
* GND ----- GND ----- GND ----- GND ----- GND ----- GND ----- GND ----- GND
*
* Sub-packet can be emulated by set
* M0 = LOW
* M1 = HIGH
* M2 = LOW
* Continuous
* M0 = HIGH
* M1 = LOW
* M2 = LOW
*
*/
#include "Arduino.h"
#include "RF_E70.h"
// ---------- esp8266 pins --------------
//RF_E70 e70ttl(RX, TX, AUX, M0, M1, M2); // Arduino RX <-- e70 TX, Arduino TX --> e70 RX
//RF_E70 e70ttl(D3, D4, D5, D7, D6, D7); // Arduino RX <-- e70 TX, Arduino TX --> e70 RX AUX M0 M1
//RF_E70 e70ttl(D2, D3); // Config without connect AUX and M0 M1
//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(D2, D3); // Arduino RX <-- e70 TX, Arduino TX --> e70 RX
//RF_E70 e70ttl(&mySerial, D5, D6, D7, D8); // AUX M0 M1
// -------------------------------------
// ---------- Arduino pins --------------
//RF_E70 e70ttl(4, 5, 3, 8, 7, 6); // Arduino RX <-- e70 TX, Arduino TX --> e70 RX AUX M0 M1
//RF_E70 e70ttl(4, 5); // Config without connect AUX and M0 M1
//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(4, 5); // Arduino RX <-- e70 TX, Arduino TX --> e70 RX
//RF_E70 e70ttl(&mySerial, 3, 8, 7, 6); // AUX M0 M1
// -------------------------------------
// ------------- Arduino Nano 33 IoT -------------
// RF_E70 e70ttl(&Serial1, 2, 4, 5, 6); // RX AUX M0 M1
// -------------------------------------------------
// ------------- Arduino MKR WiFi 1010 -------------
// RF_E70 e70ttl(&Serial1, 0, 2, 3, 4); // RX AUX M0 M1
// -------------------------------------------------
// ---------- esp32c3 pins --------------
//RF_E70 e70ttl(&Serial1, 1, 2, 3, 4,); // RX AUX M0 M1
//RF_E70 e70ttl(4, 5, &Serial1, 6, 1, 2, 3, UART_BPS_RATE_9600); // esp32 RX <-- e70 TX, esp32 TX --> e70 RX AUX M0 M1
// -------------------------------------
// ---------- esp32 pins --------------
// RF_E70 e70ttl(&Serial2, 15, 19, 21, 22); // RX AUX M0 M1
//RF_E70 e70ttl(&Serial2, 22, 4, 18, 21, 19, UART_BPS_RATE_9600); // esp32 RX <-- e70 TX, esp32 TX --> e70 RX AUX M0 M1
// -------------------------------------
// ---------- Raspberry PI Pico pins --------------
//RF_E70 e70ttl(&Serial2, 2, 10, 11, 12); // RX AUX M0 M1
// -------------------------------------
// ---------------- STM32 --------------------
HardwareSerial Serial2(USART2); // PA3 (RX) PA2 (TX)
RF_E70 e70ttl(&Serial2, PA0, PB0, PB1, PB10); // RX AUX M0 M1
// -------------------------------------------------
void setup() {
Serial.begin(9600);
#if defined(ARDUINO_ARCH_STM32) || defined(__STM32F1__) || defined(__STM32F4__)
Serial.dtr(false);
#endif
delay(500);
// Startup all pins and UART
e70ttl.begin();
// e70ttl.setMode(MODE_CONTINUOUS_1);
// If you have ever change configuration you must restore It
Serial.println("Hi, I'm going to send message!");
// Send message
ResponseStatus rs = e70ttl.sendMessage("Hello, world?");
// Check If there is some problem of succesfully send
Serial.println(rs.getResponseDescription());
}
void loop() {
// If something available
if (e70ttl.available()>1) {
// read the String message
ResponseContainer rc = e70ttl.receiveMessage();
// Is something goes wrong print error
if (rc.status.code!=1){
Serial.println(rc.status.getResponseDescription());
}else{
// Print the data received
Serial.println(rc.status.getResponseDescription());
Serial.println(rc.data);
}
}
if (Serial.available()) {
String input = Serial.readString();
e70ttl.sendMessage(input);
}
}
Caricamento dello Sketch
Prima di caricare lo sketch sul tuo dispositivo, assicurati di aver selezionato la scheda e la porta corrette nell’Arduino IDE. Quindi, fai clic sul pulsante “Carica” per compilare e caricare lo sketch.
Una volta completato il caricamento, apri il Monitor Seriale andando su “Strumenti” > “Monitor Seriale” o premendo “Ctrl+Shift+M”. Imposta il baud rate a 9600, e dovresti vedere i dati ricevuti dal modulo EByte E70 visualizzati nel Monitor Seriale.
Grazie
- EByte RF E70 433/868/900 T14S2: piedinatura, datasheet e specifiche (1.5Km)
- Adattatore per Modulo RF EByte E70: PCB, Soluzione Stampata in 3D per breadboard e configurazione
- Collegare l’EByte E70 (CC1310) ai dispositivi ESP32 c3/s3 ed un semplice sketch di esempio
- Collegamento dell’EByte E70 ai dispositivi Arduino SAMD (Nano 33, MKR…) e un semplice sketch di esempio
- Collegamento dell’EByte E70 ai dispositivi STM32 (black/blue pill) e un semplice sketch di esempio
- Collegamento dell’EByte E70 ai dispositivi Raspberry Pi Pico (rp2040) ed un semplice sketch di esempio
- Esplorazione delle potenzialità del modulo EByte RF E70 (esp32, STM32, Arduino, Raspberry Pi Pico)
- EByte RF E70 CC1310: andiamo ad esplorare la libreria (esp32, esp8266, STM32, Arduino, Raspberry Pi Pico)
- Configurazione del Modulo RF EByte E70 (esp32, STM32, Arduino, Raspberry Pi Pico)