Collegare l’EByte E70 (CC1310) ai dispositivi ESP32 c3/s3 ed un semplice sketch di esempio
![ESP32 c3/s3 and Ebyte LoRa E70 CC1310](https://mischianti.org/wp-content/uploads/2024/01/esp32-c3-s3-ebyte-rf-e70-cc1310-1024x552.jpg)
Bentornati alla nostra serie su come connettere l’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 il vostro dispositivo ESP32, ESP32C3 o ESP32 S3.
Comprendere l’EByte E70
L’EByte E70 è un modulo trasmettitore RF ad alte prestazioni, rinomato per le sue capacità di comunicazione a lungo raggio e basso consumo energetico. Progettato per la comunicazione wireless su lunghe distanze, opera nelle bande di frequenza sub-GHz, rendendolo ideale per applicazioni IoT che richiedono una comunicazione affidabile ed efficiente su ampie aree.
Prerequisiti
Prima di iniziare, assicuratevi di avere quanto segue:
- Un dispositivo ESP32, ESP32C3 o ESP32 S3
- Il modulo EByte E70 con un adattatore per breadboard
- Un’installazione dell’Arduino IDE sul vostro computer
- I cavi USB necessari per collegare il vostro dispositivo ESP32 e il modulo EByte E70 al computer
- Breadboard
Ecco le varianti di base ESP32 ESP32 Dev Kit v1 - TTGO T-Display 1.14 ESP32 - NodeMCU V3 V2 ESP8266 Lolin32 - NodeMCU ESP-32S - WeMos Lolin32 - WeMos Lolin32 mini - ESP32-CAM programmer - ESP32-CAM bundle - ESP32-WROOM-32 - ESP32-S
Ecco le varianti di ESP32c3 LuatOS esp32c3 Core - ESP32-C3-DevKitC-02 - ESP32-C3-MINI-1 - WeMos LOLIN C3 PICO - WeMos LOLIN C3 Mini v2.1 - WeMos LOLIN C3 Mini v1.0 - ESP32 S3 Purlple AI-S3
Ecco le varianti di ESP32s3 ESP32 S3 Purlple AI-S3 - YD-ESP32-S3 - ESP32-S3-DevKitC-1 - ESP32-S3-DevKitC-1 - ESP32-S3 Board screen
Ecco le varianti di E70 LoRa E70 433/915 T S/S2 - E70 433/915 MT S
Preparazione dell’Hardware
Pinout E70 xxxT14S2
Userò una versione E70 S2 per il mio test perché ha un fattore di forma comodo con un’antenna SMA integrata.
![EByte E70 400/433/868/900/915 T14S2 pinout](https://mischianti.org/wp-content/uploads/2023/12/EByte-E70-xxxT14S2-pinout-low-res.jpg)
Supporto stampato in 3D per breadboard
Ho creato un semplice supporto con la mia stampante 3D per prototipare rapidamente (e gestire) l’E70 S2; ecco il modello 3D e il risultato su una breadboard.
![Supporto EByte E70 xxxT14S2 stampato in 3D per breadboard](https://mischianti.org/wp-content/uploads/2023/12/EByte-E70-xxxT14S2-socket-3d-printed.jpg)
È molto semplice e utilizza la stessa tecnica di altri supporti che ho già creato.
Dopo la stampa, è necessario aggiungere la scrittura all’interno del foro.
Inseriscilo nei fori più interni e spingilo fuori di circa 3 mm
![esp12 socket breadboard adapter step 1](https://mischianti.org/wp-content/uploads/2021/02/esp12-socket-breadboard-adapter-step-1-300x215.jpg)
Piega il filo verso l’esterno dell’adattatore.
![esp12 socket breadboard adapter step 2](https://mischianti.org/wp-content/uploads/2021/02/esp12-socket-breadboard-adapter-2-300x239.jpg)
Taglia la parte esterna del filo ed estrai,
![esp12 socket breadboard adapter step 3](https://mischianti.org/wp-content/uploads/2021/02/esp12-socket-breadboard-adapter-step-3-300x151.jpg)
quindi reinseriscilo nei fori interni ed esterni.
![esp12 socket breadboard adapter step 4](https://mischianti.org/wp-content/uploads/2021/02/esp12-socket-breadboard-adapter-step-4-300x258.jpg)
Ora controlla se devi tagliare di più il filo del foro interno e piegalo.
![esp12 socket breadboard adapter step 5](https://mischianti.org/wp-content/uploads/2021/02/esp12-socket-breadboard-adapter-step-5-300x271.jpg)
Ripeti per tutti i pin. Il risultato è molto soddisfacente.
![EByte E70 433T14S2 breadboard with socket adapter](https://mischianti.org/wp-content/uploads/2023/12/EByte-E70-433T14S2-breadboard-with-socket-adapter-esp32-c3.jpg)
Cablaggio
esp32
L’esp32 è il mio riferimento per questo articolo, è sicuramente perfetto per tutte le situazioni ed è ampiamente diffuso.
![ESP32 DOIT DEV KIT v1 piedinatura](https://mischianti.org/wp-content/uploads/2021/03/ESP32-DOIT-DEV-KIT-v1-pinout-mischianti-1024x501.jpg)
Ecco il diagramma di connessione.
![DOIT esp32 DevKit EByte LoRa e70 wiring](https://mischianti.org/wp-content/uploads/2024/01/esp32_devkit_doit_ebyte_rf_e70_wiring_bb-1-1024x689.jpg)
E70 | ESP32 |
---|---|
M0 | 19 |
M1 | 21 |
M2 | 22 |
TX | RX2 |
RX | TX2 |
AUX | 15 |
VCC | 3.3v |
GND | GND |
Costruttore
RF_E70 e70ttl(&Serial2, 15, 19, 21, 22);
esp32c3
Penso che una delle microcontrollori più interessanti per i dispositivi client remoti sia la serie esp32c3 perché è molto potente con basso consumo energetico.
![ESP32C3-MINI-DK (ESP32-C3-MINI-1) pinout](https://mischianti.org/wp-content/uploads/2023/04/esp32c3-mini-dk-esp32-c3-mini-1-pinout-low-1024x555.jpg)
Il diagramma di connessione con l’adattatore per socket diventa.
![esp32 c3 EByte LoRa e70 433T14S2 wiring](https://mischianti.org/wp-content/uploads/2023/12/esp32c3_ebyte_rf_e70_wiring_bb-1-1024x676.jpg)
E70 | ESP32c3 |
---|---|
M0 | 1 |
M1 | 2 |
M2 | 3 |
TX | 4 |
RX | 5 |
AUX | 6 |
VCC | 3.3v |
GND | GND |
Costruttore
RF_E70 e70ttl(&Serial1, 1, 2, 3, 4);
ESP32s3
Un dispositivo potente come l’S3 può essere utilizzato per operazioni più complesse.
![esp32 S3 DevKitC 1 original: piedinatura](https://mischianti.org/wp-content/uploads/2023/06/esp32-S3-DevKitC-1-original-pinout-low-1024x550.jpg)
Cablaggio.
![esp32s3 devkit EByte RF E70 cablaggio](https://mischianti.org/wp-content/uploads/2024/01/esp32s3_devkit_EByte_LoRa_e70_wiring_bb-1024x553.jpg)
E70 | ESP32c3 |
---|---|
M0 | 5 |
M1 | 6 |
M2 | 7 |
TX | RX1 |
RX | TX1 |
AUX | 4 |
VCC | 3.3v |
GND | GND |
Costruttore
RF_E70 e70ttl(&Serial1, 4, 5, 6, 7);
Configurazione dell’Arduino IDE
Prima di caricare lo sketch sul nostro dispositivo ESP32, dobbiamo configurare l’Arduino IDE per riconoscere la scheda e il modulo EByte E70. Potete trovare molte informazioni su questi dispositivi su questo sito.
- ESP32: piedinatura, specifiche e configurazione dell’Arduino IDE
- ESP32: fileSystem integrato SPIFFS
- ESP32: gestire più seriali e logging per il debug
- ESP32 risparmio energetico pratico
- ESP32 risparmio energetico pratico: gestire WiFi e CPU
- ESP32 risparmio energetico pratico: modem e light sleep
- ESP32 risparmio energetico pratico: deep sleep e ibernazione
- ESP32 risparmio energetico pratico: preservare dati al riavvio, sveglia a tempo e tramite tocco
- ESP32 risparmio energetico pratico: sveglia esterna e da ULP
- ESP32 risparmio energetico pratico: sveglia da UART e GPIO
- ESP32: filesystem integrato LittleFS
- ESP32: filesystem integrato FFat (Fat/exFAT)
- ESP32-wroom-32
- ESP32-CAM
- ESP32: ethernet w5500 con chiamate standard (HTTP) e SSL (HTTPS)
- ESP32: ethernet enc28j60 con chiamate standard (HTTP) e SSL (HTTPS)
- Come usare la scheda SD con l’esp32
- esp32 e esp8266: file system FAT su memoria SPI flash esterna
- Gestione aggiornamenti firmware e OTA
- Gestione del firmware
- Aggiornamento OTA con Arduino IDE
- Aggiornamento OTA con browser web
- Aggiornamenti automatici OTA da un server HTTP
- Aggiornamento del firmware non standard
- Integrare LAN8720 con ESP32 per la connettività Ethernet con plain (HTTP) e SSL (HTTPS)
- Collegare l’EByte E70 (CC1310) ai dispositivi ESP32 c3/s3 ed un semplice sketch di esempio
- ESP32-C3: piedinatura, specifiche e configurazione dell’IDE Arduino
- i2c esp32: gestione rete a 5v, 3.3v e interfaccia aggiuntiva
- […]
Con l’Arduino IDE configurato, possiamo ora procedere all’esempio di sketch.
Installazione della libreria
Potete trovare la libreria su GitHub.
Ma per semplicità, l’ho aggiunta al gestore delle librerie di Arduino.
![Installazione Arduino IDE di EByte LoRa E70 dal gestore delle librerie.](https://mischianti.org/wp-content/uploads/2024/01/arduino-ide-ebyte-rf-e70-libraries-manager-1.jpg)
Scrittura dello Sketch
La libreria offre molti esempi, e dovete 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 vostro dispositivo ESP32, assicuratevi di aver selezionato la scheda e la porta corretta nell’Arduino IDE. Quindi, cliccate sul pulsante “Carica” per compilare e caricare lo sketch.
Una volta completato il caricamento, aprite il Monitor Seriale andando su “Strumenti” > “Monitor Seriale” o premendo “Ctrl+Shift+M”. Impostate il baud rate a 9600 e dovreste vedere i dati ricevuti dal modulo EByte E70 visualizzati nel Monitor Seriale.
Grazie
Spero che abbiate collegato con successo l’EByte E70 al vostro dispositivo ESP32, ESP32C3 o ESP32 S3.
- 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