{{$productInfo.reviewAmount.average}} fuera de 5
Para obtener más información sobre el producto, haga clic en https://drive.google.com/file/d/1L8ll-DeAC2SATBZn0-KbSaZsrinbnXkF/view
Haga clic en los enlaces para obtener más detalles: https://eyun.baidu.com/s/3hsiTNgg
Nota: este producto no incluye la batería.
El paquete incluye:
2xESP32 OLED
2 x Line
4 x pin
2 x 433m Resorte Antena
Por ejemplo Uno:
(1) LoRaSender
#incluir
#incluir
#incluir
// GPIO5 - SCK del SX1278
// GPIO19 - MISO de SX1278
// GPIO27 - M0SI de SX1278
// GPIO18 - CS de SX1278
// GPIO14 - RESET del SX1278
// GPIO26 - IRQ del SX1278 (solicitud de interrupción)
#definir SS 18
#definir RST 14
#definir DI0 26
#define BANDA 433E6
contador int = 0;
configuración vacía () {
pinMode(25, SALIDA); // Envío exitoso, LED brillará 1 segundo
Serial.begin(115200);
mientras (! Serie); //Si solo es la función básica, debe conectarse a una computadora
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
// Serial.println("LoRa Remitente");
if (!LoRa.begin(BANDA)) {
Serial.println("¡Error al iniciar LoRa!");
mientras (1);
}
Serial.println("LoRa Inicial OK!");
}
bucle vacío () {
Serial.print("Enviando paquete: ");
Serial.println(contador);
// enviar paquete
LoRa.beginPacket();
LoRa.print("hola");
LoRa.print(contador);
LoRa.endPacket();
contador++;
escritura digital (25, ALTO); // enciende el LED (ALTO es el nivel de voltaje)
retraso (1000); // Espera un segundo
escritura digital (25, BAJO); // apaga el LED haciendo que el voltaje sea BAJO
retraso (1000); // Espera un segundo
retraso (3000);
}
por ejemplo dos
(2) Receptor LoRa
#incluir
#incluir
// GPIO5 - SCK del SX1278
// GPIO19 - MISO de SX1278
// GPIO27 - M0SI de SX1278
// GPIO18 - CS de SX1278
// GPIO14 - RESET del SX1278
// GPIO26 - IRQ del SX1278 (solicitud de interrupción)
#definir SS 18
#definir RST 14
#definir DI0 26
#define BANDA 433E6
configuración vacía () {
Serial.begin(115200);
mientras (! Serie); //si solo es la función básica, debe conectarse a una computadora
retraso (1000);
Serial.println("Receptor LoRa");
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
if (!LoRa.begin(BANDA)) {
Serial.println("¡Error al iniciar LoRa!");
mientras (1);
}
}
bucle vacío () {
// intenta analizar el paquete
int TamañoPaquete = LoRa.parsePacket();
si (tamaño del paquete) {
// recibi un paquete
Serial.print ("Paquete recibido '");
// leer paquete
while (LoRa.disponible()) {
Serial.print((char)LoRa.read());
}
// imprime RSSI del paquete
Serial.print ("'con RSSI");
Serial.println(LoRa.packetRssi());
}
}
por ejemplo tres
(3) Devolución de llamada del receptor LoRa
#incluir
#incluir
// GPIO5 - SCK del SX1278
// GPIO19 - MISO de SX1278
// GPIO27 - M0SI de SX1278
// GPIO18 - CS de SX1278
// GPIO14 - RESET del SX1278
// GPIO26 - IRQ del SX1278 (solicitud de interrupción)
#definir SS 18
#definir RST 14
#definir DI0 26
#define BANDA 433E6
configuración vacía () {
Serial.begin(115200);
mientras (! Serie); //si solo es la función básica, debe conectarse a una computadora
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
Serial.println("LoRa Receptor Devolución de llamada");
if (!LoRa.begin(BANDA)) {
Serial.println("¡Error al iniciar LoRa!");
mientras (1);
}
// registrar la devolución de llamada recibida
LoRa.onReceive(onReceive);
// poner la radio en modo de recepción
LoRa.recibir();
}
bucle vacío () {
// hacer nada
}
void onReceive(int paqueteTamaño) {
// recibi un paquete
Serial.print ("Paquete recibido '");
// leer paquete
for (int i = 0; i < tamaño del paquete; i++) {
Serial.print((char)LoRa.read());
}
// imprime RSSI del paquete
Serial.print ("'con RSSI");
Serial.println(LoRa.packetRssi());
}
?
por ejemplo cuatro
#incluir // Solo se necesita para 1.6.5 y versiones anteriores
#incluir "SSD1306.h" // alias para `#incluir "SSD1306Wire.h"`
#incluir "imágenes.h"
// Pines OLED a ESP32 0.96OLEDGPIO a través de esta conexión:
//OLED_SDA-GPIO4
//OLED_SCL-GPIO15
//OLED_RST-GPIO16
Pantalla SSD1306 (0x3c, 4, 15);
#define DEMO_DURATION 3000
typedef void (*Demo)(void);
int modo de demostración = 0;
contador int = 1;
configuración vacía () {
pinMode(16, SALIDA);
escritura digital (16, BAJO); // establecer GPIO16 bajo para restablecer OLED
retraso (50);
escritura digital (16, ALTO); // mientras OLED se está ejecutando, debe configurar GPIO16 en alto
Serial.begin(115200);
Serial.println();
Serial.println();
// Inicializar la interfaz de usuario también iniciará la pantalla.
mostrar.init();
display.flipScreenVerticalmente();
pantalla.setFont(ArialMT_Plain_10);
}
void drawFontFaceDemo() {
// Fuente Demo1
// crea más fuentes en http://oleddisplay.squix.ch/
mostrar.setTextAlignment(TEXT_ALIGN_LEFT);
pantalla.setFont(ArialMT_Plain_10);
display.drawString(0, 0, "Hola mundo");
pantalla.setFont(ArialMT_Plain_16);
display.drawString(0, 10, "Hola mundo");
mostrar.setFont(ArialMT_Plain_24);
display.drawString(0, 26, "Hola mundo");
}
anular dibujarTextFlowDemo() {
pantalla.setFont(ArialMT_Plain_10);
mostrar.setTextAlignment(TEXT_ALIGN_LEFT);
pantalla.drawStringMaxWidth(0, 0, 128,
"Lorem ipsumn dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore". );
}
void drawTextAlignmentDemo() {
// demostración de alineación de texto
pantalla.setFont(ArialMT_Plain_10);
// Las coordenadas definen el punto inicial izquierdo del texto
mostrar.setTextAlignment(TEXT_ALIGN_LEFT);
display.drawString(0, 10, "Alineado a la izquierda (0,10)");
// Las coordenadas definen el centro del texto
mostrar.setTextAlignment(TEXT_ALIGN_CENTER);
display.drawString(64, 22, "Alineado al centro (64,22)");
// Las coordenadas definen el extremo derecho del texto
mostrar.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(128, 33, "Alineado a la derecha (128,33)");
}
anular dibujarRectDemo() {
// Dibujar un píxel en la posición dada
para (int i = 0; i < 10; i++) {
pantalla.setPixel(i, i);
pantalla.setPixel(10 - i, i);
}
mostrar.dibujarRect(12, 12, 20, 20);
// Llena el rectángulo
mostrar.fillRect(14, 14, 17, 17);
// Dibujar una línea horizontalmente
mostrar.dibujarLíneaHorizontal(0, 40, 20);
// Dibujar una línea horizontalmente
mostrar.dibujarLíneaVertical(40, 0, 20);
}
void dibujarCircleDemo() {
para (int i=1; i < 8; i++) {
pantalla.setColor(BLANCO);
mostrar.drawCircle(32, 32, i*3);
si (yo % 2 == 0) {
pantalla.setColor(NEGRO);
}
mostrar.fillCircle(96, 32, 32 - i* 3);
}
}
void dibujarProgressBarDemo() {
int progreso = (contador / 5) % 100;
// dibujar la barra de progreso
mostrar.drawProgressBar(0, 32, 120, 10, progreso);
// dibujar el porcentaje como String
mostrar.setTextAlignment(TEXT_ALIGN_CENTER);
display.drawString(64, 15, String(progreso) + "%");
}
void dibujarImagenDemo() {
// ver http://blog.squix.org/2015/05/esp8266-nodemcu-how-to-create-xbm.html
// sobre cómo crear archivos xbm
display.drawXbm(34, 14, WiFi_Logo_width, WiFi_Logo_height, WiFi_Logo_bits);
}
demostraciones demostraciones[] = {drawFontFaceDemo, drawTextFlowDemo, drawTextAlignmentDemo, drawRectDemo, drawCircleDemo, drawProgressBarDemo, drawImageDemo};
int demoLength = (sizeof(demos) / sizeof(Demo));
mucho tiempo desde el último cambio de modo = 0;
bucle vacío () {
// limpia la pantalla
mostrar.claro();
// dibujar el método de demostración actual
demostraciones[mododemostración]();
mostrar.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(10, 128, String(millis()));
// escribe el búfer en la pantalla
pantalla.pantalla();
if (millis() - timeSinceLastModeSwitch > DEMO_DURATION) {
demoMode = (demoMode + 1) % demoLength;
timeSinceLastModeSwitch = milisegundos();
}
contador++;
retraso (10);
}
Método(s) de envío | Tiempo de envío | Información de seguimiento |
---|