{{$productInfo.reviewAmount.average}} su 5
Per ulteriori informazioni sul prodotto, fare clic su https://drive.google.com/file/d/1L8ll-DeAC2SATBZn0-KbSaZsrinbnXkF/view
Fare clic sui collegamenti per maggiori dettagli: https://eyun.baidu.com/s/3hsiTNgg
Nota: questo prodotto non include la batteria.
Il pacchetto include:
2xESP32 OLED
2 x Line
4 x pin
2 x 433 m Primavera Antenna
Ad esempio Uno:
(1) LoRaSender
#includere
#includere
#includere
// GPIO5 -- SCK . di SX1278
// GPIO19 -- MISO di SX1278
// GPIO27 -- M0SI di SX1278
// GPIO18 -- CS di SX1278
// GPIO14 -- RESET di SX1278
// GPIO26 -- IRQ di SX1278 (richiesta di interruzione)
#definisci SS 18
#definisci RST 14
#definisci DI0 26
#definisci FASCIA 433E6
contatore int = 0;
configurazione vuota () {
pinMode(25,USCITA); //Invia successo, LED brillerà per 1 secondo
Serial.begin(115200);
mentre (! Seriale); //Se solo la funzione di base, deve connettersi a un computer
SPI.inizio(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
// Serial.println("Mittente LoRa");
se (!LoRa.begin(BAND)) {
Serial.println("Avvio di LoRa fallito!");
mentre (1);
}
Serial.println("LoRa iniziale OK!");
}
ciclo vuoto() {
Serial.print("Invio pacchetto: ");
Serial.println(contatore);
// invia il pacchetto
LoRa.beginPacket();
LoRa.print("ciao");
LoRa.print(contatore);
LoRa.endPacket();
contatore++;
digitalWrite(25, HIGH); // attiva il LED (HIGH è il livello di tensione)
ritardo(1000); // aspetta un secondo
digitalWrite(25, LOW); // Spegnere il LED portando la tensione BASSA
ritardo(1000); // aspetta un secondo
ritardo(3000);
}
Ad esempio Due
(2) Ricevitore LoRa
#includere
#includere
// GPIO5 -- SCK . di SX1278
// GPIO19 -- MISO di SX1278
// GPIO27 -- M0SI di SX1278
// GPIO18 -- CS di SX1278
// GPIO14 -- RESET di SX1278
// GPIO26 -- IRQ di SX1278 (richiesta di interruzione)
#definisci SS 18
#definisci RST 14
#definisci DI0 26
#definisci FASCIA 433E6
configurazione vuota () {
Serial.begin(115200);
mentre (! Seriale); //se solo la funzione di base, deve connettersi a un computer
ritardo(1000);
Serial.println("Ricevitore LoRa");
SPI.inizio(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
se (!LoRa.begin(BAND)) {
Serial.println("Avvio di LoRa fallito!");
mentre (1);
}
}
ciclo vuoto() {
// prova ad analizzare il pacchetto
int dimensionepacchetto = LoRa.parsePacket();
se (dimensione pacchetto) {
// ha ricevuto un pacchetto
Serial.print("Pacchetto ricevuto '");
// leggi il pacchetto
mentre (LoRa.disponibile()) {
Serial.print((char)LoRa.read());
}
// stampa RSSI del pacchetto
Serial.print("' con RSSI ");
Serial.println(LoRa.packetRssi());
}
}
Ad esempio tre
(3)Richiamata LoRaReceiver
#includere
#includere
// GPIO5 -- SCK . di SX1278
// GPIO19 -- MISO di SX1278
// GPIO27 -- M0SI di SX1278
// GPIO18 -- CS di SX1278
// GPIO14 -- RESET di SX1278
// GPIO26 -- IRQ di SX1278 (richiesta di interruzione)
#definisci SS 18
#definisci RST 14
#definisci DI0 26
#definisci FASCIA 433E6
configurazione vuota () {
Serial.begin(115200);
mentre (! Seriale); //se solo la funzione di base, deve connettersi a un computer
SPI.inizio(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
Serial.println("Richiamata LoRa ricevitore");
se (!LoRa.begin(BAND)) {
Serial.println("Avvio di LoRa fallito!");
mentre (1);
}
// registra la richiamata di ricezione
LoRa.onReceive(onReceive);
// mette la radio in modalità di ricezione
LoRa.receive();
}
ciclo vuoto() {
// fare niente
}
void onReceive(int packetSize) {
// ha ricevuto un pacchetto
Serial.print("Pacchetto ricevuto '");
// leggi il pacchetto
for (int i = 0; i < dimensionepacchetto; i++) {
Serial.print((char)LoRa.read());
}
// stampa RSSI del pacchetto
Serial.print("' con RSSI ");
Serial.println(LoRa.packetRssi());
}
?
Ad esempio quattro
#includere // Necessario solo per 1.6.5 e precedenti
#includere "SSD1306.h" // alias per `#includere "SSD1306Wire.h"`
#includere "images.h"
// Pin OLED su ESP32 0.96OLEDGPIO tramite questa connessione:
//OLED_SDA -- GPIO4
//OLED_SCL -- GPIO15
//OLED_RST -- GPIO16
Display SSD1306 (0x3c, 4, 15);
#define DEMO_DURATION 3000
typedef void (*Demo)(void);
int modalità demo = 0;
contatore int = 1;
configurazione vuota () {
pinMode(16,USCITA);
digitalWrite(16, LOW); // imposta GPIO16 basso per ripristinare l'OLED
ritardo(50);
digitalWrite(16, HIGH); // mentre l'OLED è in esecuzione, deve impostare GPIO16 su alto
Serial.begin(115200);
Serial.println();
Serial.println();
// L'inizializzazione dell'interfaccia utente avvierà anche il display.
display.init();
display.flipScreenVertical();
display.setFont(ArialMT_Plain_10);
}
void drawFontFaceDemo() {
// Carattere Demo1
// crea più font su http://oleddisplay.squix.ch/
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_10);
display.drawString(0, 0, "Ciao mondo");
display.setFont(ArialMT_Plain_16);
display.drawString(0, 10, "Ciao mondo");
display.setFont(ArialMT_Plain_24);
display.drawString(0, 26, "Ciao mondo");
}
void drawTextFlowDemo() {
display.setFont(ArialMT_Plain_10);
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.drawStringMaxWidth(0, 0, 128,
"Lorem ipsumn dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore." );
}
void drawTextAlignmentDemo() {
// Demo di allineamento del testo
display.setFont(ArialMT_Plain_10);
// Le coordinate definiscono il punto iniziale sinistro del testo
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.drawString(0, 10, "Allineato a sinistra (0,10)");
// Le coordinate definiscono il centro del testo
display.setTextAlignment(TEXT_ALIGN_CENTER);
display.drawString(64, 22, "Allineato al centro (64,22)");
// Le coordinate definiscono l'estremità destra del testo
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(128, 33, "Allineato a destra (128,33)");
}
void drawRectDemo() {
// Disegna un pixel in una determinata posizione
for (int i = 0; i < 10; i++) {
display.setPixel(i, i);
display.setPixel(10 - i, i);
}
display.drawRect(12, 12, 20, 20);
// Riempi il rettangolo
display.fillRect(14, 14, 17, 17);
// Disegna una linea orizzontalmente
display.drawLineaOrizzontale(0, 40, 20);
// Disegna una linea orizzontalmente
display.drawVerticalLine(40, 0, 20);
}
void drawCircleDemo() {
for (int i=1; i < 8; i++) {
display.setColor(BIANCO);
display.drawCircle(32, 32, i*3);
se (i % 2 == 0) {
display.setColor(NERO);
}
display.fillCircle(96, 32, 32 - i* 3);
}
}
void drawProgressBarDemo() {
int progresso = (contatore / 5) % 100;
// disegna la barra di avanzamento
display.drawProgressBar(0, 32, 120, 10, avanzamento);
// disegna la percentuale come String
display.setTextAlignment(TEXT_ALIGN_CENTER);
display.drawString(64, 15, String(progresso) + "%");
}
void drawImageDemo() {
// vedi http://blog.squix.org/2015/05/esp8266-nodemcu-how-to-create-xbm.html
// su come creare file xbm
display.drawXbm(34, 14, WiFi_Logo_width, WiFi_Logo_height, WiFi_Logo_bits);
}
Demo demo[] = {drawFontFaceDemo, drawTextFlowDemo, drawTextAlignmentDemo, drawRectDemo, drawCircleDemo, drawProgressBarDemo, drawImageDemo};
int demoLength = (sizeof(demo) / sizeof(Demo));
long timeSinceLastModeSwitch = 0;
ciclo vuoto() {
// cancella il display
display.clear();
// disegna il metodo demo corrente
demo[demoMode]();
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(10, 128, String(millis()));
// scrive il buffer sul display
display.display();
if (millis() - timeSinceLastModeSwitch > DEMO_DURATION) {
demoMode = (demoMode + 1) % demoLength;
timeSinceLastModeSwitch = millis();
}
contatore++;
ritardo(10);
}
Metodi di spedizione(i) | Tempo di spedizione | Tracciamento dell'ordine |
---|