Bentornati alla nostra serie su come collegare 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 i vostri dispositivi Arduino SAMD.
Capire 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 Arduino Nano 33 IoT o MKR
- Il modulo EByte E70 con un adattatore per breadboard
- Un IDE Arduino installato sul vostro computer
- I cavi USB necessari per collegare il vostro dispositivo Arduino e il modulo EByte E70 al computer
- Breadboard
Qui le varianti di Arduino Amazon Arduino MKR WiFi 1010
Qui le varianti E70 E70 433/915 T S/S2 - E70 433/915 MT S
Configurazione dell’hardware
Schema dei pin E70 xxxT14S2
Utilizzerò una versione S2 dell’E70 per i miei test perché ha un formato comodo con un’antenna SMA integrata.
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.
È molto semplice e usa la stessa tecnica di altri supporti che ho già creato.
Dopo la stampa, dovete aggiungere la scritta all’interno del foro.
Inseritelo nei fori più interni e spingetelo fuori di circa 3mm
Piegare il filo verso l’esterno dell’adattatore.
Tagliate la parte esterna del filo, estraete,
quindi reinserite nei fori interni ed esterni.
Ora verificate se è necessario tagliare ulteriormente il filo del foro interno e piegarlo.
Ripetete per tutti i pin. Il risultato è molto soddisfacente.
Cablaggio
Arduino Nano 33 IoT
L’Arduino Nano 33 è un microcontroller molto versatile con capacità interessanti.
Cablaggio.
E70 | Arduino Nano 33 IoT |
---|---|
M0 | 4 |
M1 | 5 |
M2 | 6 |
TX | RX1 |
RX | TX1 |
AUX | 2 |
VCC | 3.3v |
GND | GND |
Costruttore
RF_E70 e70ttl(&Serial1, 2, 4, 5, 6);
Arduino MKR WiFi
L’Arduino MKR WiFi è il fratello maggiore del Nano 33.
Cablaggio.
E70 | Arduino Nano 33 IoT |
---|---|
M0 | 2 |
M1 | 3 |
M2 | 4 |
TX | RX1 |
RX | TX1 |
AUX | 0 |
VCC | 3.3v |
GND | GND |
Costruttore
RF_E70 e70ttl(&Serial1, 0, 2, 3, 4)
Configurazione dell’IDE Arduino
Ho scritto alcuni articoli su questo, e potete trovarli qui.
- Arduino SAMD NINA: piedinatura, specifiche e configurazione Arduino IDE
- Arduino SAMD NINA: WiFiNINA, aggiornamento firmware e led RGB
- Arduino SAMD (NANO 33 e MKR): file system FAT su memoria flash SPI esterna
- i2c Arduino SAMD MKR: interfaccia aggiuntiva SERCOM, rete e scanner di indirizzi
- Arduino MKR SAMD: file system FAT su memoria flash SPI esterna
- Collegamento dell’EByte E70 ai dispositivi Arduino SAMD (Nano 33, MKR…) e un semplice sketch di esempio
Con l’IDE Arduino configurato, ora possiamo procedere all’esempio di sketch.
Installazione della libreria
Potete trovare la libreria su GitHub.
Ma per semplicità, l’ho aggiunta al gestore di librerie di Arduino.
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, assicuratevi di avere selezionato la scheda e la porta corretta nell’IDE Arduino. 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 la velocità di trasmissione a 9600, e dovreste vedere i dati ricevuti dal modulo EByte E70 visualizzati nel Monitor Seriale.
Grazie
Congratulazioni! Avete collegato con successo l’EByte E70 al vostro dispositivo Arduino con un semplice esempio di sketch.
- 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)