Update informatie:
Opmerking: Nadat het product is bijgewerkt, is de Bluetooth-chip ESP32 ingebouwd en hoeft de gebruiker alleen het Bluetooth-programma te branden om de Bluetooth-functie te gebruiken.
Productomschrijving:
Lithiumbatterij laad- en ontlaadcircuit, wanneer de batterij vol is, stopt de blauwe LED met werken. Let bij gebruik op de positieve en negatieve van de batterij, anders wordt deze beschadigd.
Gebruikmakend van de IO-poort touchscreen-aanraaksignaalingang, moet u de 100nF pull-down-condensator op deze pin toevoegen!
Dit product is een SX1278 chip gebaseerd op ESP32 WIFI verhoogde OLED, namelijk LoRa remote modem, 433MHz frequentie, hoge gevoeligheid is ongeveer -148dBm, +20dBm uitgangsvermogen, hoge betrouwbaarheid, lange transmissieafstand.
De ingebouwde 16 Mt bytes (128 Mt bit), wifi-antenne, 0,96 inch blauw OLED-scherm, lithiumbatterijlaadcircuit, CP2102-interface en USB-seriële chip, de perfecte ondersteuning voor ontwikkelomgeving, kan worden gebruikt voor programmaverificatie en productontwikkeling is heel eenvoudig en snel.
Bedrijfsspanning: 3.3V tot 7V
Bedrijfstemperatuurbereik: -40 graden C tot +90 graden C
Ondersteuning voor Sniffer-, Station-, softAP- en Wi-Fi Direct-modi
Gegevenssnelheden: 150 Mbps@11n HT40, 72 Mbps@11n HT20, 54 Mbps@11g, 11 Mbps@11b
Zendvermogen: 19,5 dBm@11b, 16,5 dBm@11g, 15,5 dBm@11n
Ontvangergevoeligheid tot -98 dBm
UDP aanhoudende doorvoer van 135 Mbps

Pin referentie beschrijving:
Klik voor meer productinformatie op https://drive.google.com/file/d/1L8ll-DeAC2SATBZn0-KbSaZsrinbnXkF/view
Testdetails:


Klik op links voor meer details: https://eyun.baidu.com/s/3hsiTNgg
Opmerking: dit product is exclusief de batterij.
Pakket inbegrepen:
2x ESP32 OLED
2 x Line
4 x pin
2 x 433m veerantenne
Bijvoorbeeld een:
(1) LoRaSender
#erbij betrekken
#erbij betrekken
#erbij betrekken
// GPIO5 -- SX1278's SCK
// GPIO19 -- SX1278's MISO
// GPIO27 -- SX1278's M0SI
// GPIO18 -- SX1278's CS
// GPIO14 -- RESET van SX1278
// GPIO26 -- IRQ van SX1278 (Interrupt Request)
#define SS 18
#define RST 14
#define DI0 26
#definieer BAND 433E6
int-teller = 0;
ongeldige setup() {
pinMode (25, UITGANG); //Stuur succes, LED brandt 1 seconde
Serieel.begin(115200);
terwijl (!Serial); //Als alleen de basisfunctie verbinding moet maken met een computer
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
// Serial.println ("LoRa-afzender");
if (!LoRa.begin(BAND)) {
Serial.println("Het starten van LoRa is mislukt!");
terwijl (1);
}
Serial.println ("LoRa Initial OK!");
}
lege lus() {
Serial.print("Verzendpakket: ");
Serial.println(teller);
// verzend pakket
LoRa.beginPacket();
LoRa.print("hallo");
LoRa.print(teller);
LoRa.endPacket();
teller++;
digitalWrite(25, HOOG); // zet de LED aan (HOOG is het spanningsniveau)
vertraging (1000); // wacht even
digitalWrite(25, LAAG); // schakel de LED uit door de spanning LAAG te maken
vertraging (1000); // wacht even
vertraging (3000);
}
bijvoorbeeld twee
(2)LoRaOntvanger
#erbij betrekken
#erbij betrekken
// GPIO5 -- SX1278's SCK
// GPIO19 -- SX1278's MISO
// GPIO27 -- SX1278's M0SI
// GPIO18 -- SX1278's CS
// GPIO14 -- RESET van SX1278
// GPIO26 -- IRQ van SX1278 (Interrupt Request)
#define SS 18
#define RST 14
#define DI0 26
#definieer BAND 433E6
ongeldige setup() {
Serieel.begin(115200);
terwijl (!Serial); // als alleen de basisfunctie verbinding moet maken met een computer
vertraging (1000);
Serial.println ("LoRa-ontvanger");
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
if (!LoRa.begin(BAND)) {
Serial.println("Het starten van LoRa is mislukt!");
terwijl (1);
}
}
lege lus() {
// probeer pakket te ontleden
int pakketgrootte = LoRa.parsePacket();
als (pakketgrootte) {
// ontving een pakket
Serial.print("Ontvangen pakket '");
// lees pakket
while (LoRa.available()) {
Serial.print((char)LoRa.read());
}
// print RSSI van pakket
Serial.print("' met RSSI ");
Serial.println(LoRa.packetRssi());
}
}
bijvoorbeeld drie
(3)LoRaOntvangerTerugbellen
#erbij betrekken
#erbij betrekken
// GPIO5 -- SX1278's SCK
// GPIO19 -- SX1278's MISO
// GPIO27 -- SX1278's M0SI
// GPIO18 -- SX1278's CS
// GPIO14 -- RESET van SX1278
// GPIO26 -- IRQ van SX1278 (Interrupt Request)
#define SS 18
#define RST 14
#define DI0 26
#definieer BAND 433E6
ongeldige setup() {
Serieel.begin(115200);
terwijl (!Serial); // als alleen de basisfunctie verbinding moet maken met een computer
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
Serial.println ("LoRa-ontvanger terugbellen");
if (!LoRa.begin(BAND)) {
Serial.println("Het starten van LoRa is mislukt!");
terwijl (1);
}
// registreer de terugbelontvangst
LoRa.onReceive (onReceive);
// zet de radio in de ontvangstmodus
LoRa.ontvangen();
}
lege lus() {
// niets doen
}
void onReceive (int packetSize) {
// ontving een pakket
Serial.print("Ontvangen pakket '");
// lees pakket
voor (int i = 0; i < pakketgrootte; i++) {
Serial.print((char)LoRa.read());
}
// print RSSI van pakket
Serial.print("' met RSSI ");
Serial.println(LoRa.packetRssi());
}
?
bijvoorbeeld vier
#erbij betrekken // Alleen nodig voor 1.6.5 en eerder
#erbij betrekken "SSD1306.h" // alias voor `#erbij betrekken "SSD1306Wire.h"`
#erbij betrekken "images.h"
//OLED-pinnen naar ESP32 0.96OLEDGPIO's via deze verbinding:
//OLED_SDA -- GPIO4
//OLED_SCL -- GPIO15
//OLED_RST -- GPIO16
SSD1306-display (0x3c, 4, 15);
#define DEMO_DURATION 3000
typedef void (*Demo)(void);
int demoMode = 0;
int-teller = 1;
ongeldige setup() {
pinMode (16, UITGANG);
digitalWrite (16, LAAG); // zet GPIO16 laag om OLED te resetten
vertraging (50);
digitalWrite (16, HOOG); // terwijl OLED actief is, moet GPIO16 op hoog worden gezet
Serieel.begin(115200);
Serieel.println();
Serieel.println();
// Door de gebruikersinterface te initialiseren, wordt ook het scherm gestart.
weergave.init();
display.flipScreenVertical();
display.setFont(ArialMT_Plain_10);
}
void drawFontFaceDemo() {
// Lettertypedemo1
// maak meer lettertypen op http://oleddisplay.squix.ch/
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_10);
display.drawString(0, 0, "Hallo wereld");
display.setFont(ArialMT_Plain_16);
display.drawString(0, 10, "Hallo wereld");
display.setFont(ArialMT_Plain_24);
display.drawString(0, 26, "Hallo wereld");
}
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() {
// Tekstuitlijningsdemo
display.setFont(ArialMT_Plain_10);
// De coördinaten bepalen het linker beginpunt van de tekst
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.drawString(0, 10, "Links uitgelijnd (0,10)");
// De coördinaten bepalen het midden van de tekst
display.setTextAlignment(TEXT_ALIGN_CENTER);
display.drawString(64, 22, "Midden uitgelijnd (64,22)");
// De coördinaten bepalen het rechteruiteinde van de tekst
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(128, 33, "Rechts uitgelijnd (128,33)");
}
void drawRectDemo() {
// Teken een pixel op een bepaalde positie
voor (int i = 0; i < 10; i++) {
display.setPixel(i, i);
display.setPixel(10 - ik, ik);
}
display.drawRect (12, 12, 20, 20);
// Vul de rechthoek
display.fillRect(14, 14, 17, 17);
// Trek een lijn horizontaal
display.drawHorizontalLine(0, 40, 20);
// Trek een lijn horizontaal
display.drawVerticalLine(40, 0, 20);
}
void drawCircleDemo() {
voor (int i=1; i < 8; i++) {
display.setColor (WIT);
display.drawCircle(32, 32, i*3);
als (i % 2 == 0) {
display.setColor (ZWART);
}
display.fillCircle(96, 32, 32 - i* 3);
}
}
void drawProgressBarDemo() {
int voortgang = (teller / 5) % 100;
// teken de voortgangsbalk
display.drawProgressBar (0, 32, 120, 10, voortgang);
// teken het percentage als String
display.setTextAlignment(TEXT_ALIGN_CENTER);
display.drawString(64, 15, String(vooruitgang) + "%");
}
ongeldig drawImageDemo() {
// zie http://blog.squix.org/2015/05/esp8266-nodemcu-how-to-create-xbm.html
// over het maken van xbm-bestanden
display.drawXbm(34, 14, WiFi_Logo_width, WiFi_Logo_height, WiFi_Logo_bits);
}
Demo-demo's [] = {drawFontFaceDemo, drawTextFlowDemo, drawTextAlignmentDemo, drawRectDemo, drawCircleDemo, drawProgressBarDemo, drawImageDemo};
int demoLength = (sizeof(demo's) / sizeof(Demo));
lange timeSinceLastModeSwitch = 0;
lege lus() {
// wis het scherm
weergeven.wissen();
// teken de huidige demomethode
demo's[demoMode]();
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(10, 128, String(millis()));
// schrijf de buffer naar het display
weergave.weergave();
if (millis() - timeSinceLastModeSwitch > DEMO_DURATION) {
demoMode = (demoMode + 1) % demoLength;
timeSinceLastModeSwitch = millis();
}
teller++;
vertraging(10);
}







