Collegamento dell’EByte E70 ai dispositivi Raspberry Pi Pico (rp2040) ed un semplice sketch di esempio
Benvenuti di nuovo nella nostra serie su come collegare l’EByte E70 a vari dispositivi! In questo articolo, ti guideremo attraverso un semplice esempio di sketch che ti aiuterà a stabilire una connessione tra l’EByte E70 e i tuoi dispositivi rp2040. Quindi, iniziamo subito!
Comprendere l’EByte E70
L’EByte E70 è un modulo ricetrasmettitore ad alte prestazioni, noto per le sue capacità di comunicazione a lungo raggio e per il basso consumo energetico. Opera nelle bande di frequenza sub-GHz ed è progettato per la comunicazione wireless su lunghe distanze, rendendolo ideale per applicazioni IoT che richiedono comunicazioni affidabili ed efficienti su ampie aree.
Prerequisiti
Prima di iniziare, assicurati di avere i seguenti elementi:
- Un dispositivo Raspberry Pi Pico
- Il modulo EByte E70 con un adattatore per breadboard
- L’IDE di Arduino installato sul tuo computer
- I cavi USB necessari per collegare il dispositivo Raspberry Pi Pico e il modulo EByte E70 al tuo computer
- Breadboard
Qui le varianti rp2040 adatte Official Pi Pico - Official Pi Pico W - Waveshare rp2040-zero - WeAct Studio rp2040
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, devi aggiungere la scrittura all’interno del foro.
Inseriscilo nei fori più interni e spingilo fuori per circa 3 mm
Piega il filo verso l’esterno dell’adattatore.
Taglia la parte esterna del filo ed estraila.
quindi reinseriscilo nei fori interni ed esterni.
Ora verifica se è necessario tagliare ulteriormente il filo del foro interno e piegarlo.
Ripeti per tutti i pin. Il risultato è molto soddisfacente.
Cablatura
Raspberry Pi Pico
Il Raspberry Pi Pico è l’ultimo concorrente MCU di base in questa gamma di mercato.
Cablatura.
E70 | Raspberry Pi Pico |
---|---|
M0 | 10 |
M1 | 11 |
M2 | 12 |
TX | RX2 |
RX | TX2 |
AUX | 2 |
VCC | 3.3v |
GND | GND |
Costruttore
RF_E70 e70ttl(&Serial2, 2, 10, 11, 12);
Configurare l’IDE di Arduino
Ho scritto alcuni articoli a riguardo, che puoi trovare qui.
- Schede Raspberry Pi Pico e rp2040: pinout, specifiche e configurazione IDE Arduino
- Schede Raspberry Pi Pico e rp2040: filesystem LittleFS integrato
- Scheda Raspberry Pi Pico e rp2040: ethernet w5500 e requests HTTP e HTTPS (SSL)
- Schede Raspberry Pi Pico e rp2040: WiFiNINA con coprocessore WiFi ESP32
- Schede Raspberry Pi Pico e rp2040: come utilizzare una scheda SD
- Dallas ds18b20
- Collegamento dell’EByte E70 ai dispositivi Raspberry Pi Pico (rp2040) ed un semplice sketch di esempio
Con l’IDE di Arduino configurato, possiamo procedere con l’esempio di sketch.
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)