Nauwkeurige details:
Update informatie:
Let op: Na de productupdate is de Bluetooth ingebouwd in de ESP32-chip en hoeft de gebruiker alleen maar het Bluetooth-programma te branden om de Bluetooth-functie te gebruiken.
Productomschrijving:
De 433MHz-antenne moet worden gebruikt in combinatie met de IPEX-interface (als de antenne niet is aangesloten, kan dit de LoRa-chip beschadigen)
Opladen en ontladen van lithiumbatterijen, wanneer de batterij vol is, zal de blauwe LED stoppen met werken. Let bij gebruik op de positieve en negatieve polen van de batterij, anders kan deze beschadigd raken.
Bij het gebruik van het IO-poort-aanraakscherm-aanraaksignaalingangssignaal moet je een 100nF pull-down condensator aan deze pin toevoegen!
Voorbeeld:
Dit product is gebaseerd op de SX1278-chip, aangevuld met een ESP32 WIFI OLED, namelijk een LoRa-afstandsmodem op een frequentie van 433MHz. De hoge gevoeligheid bedraagt ongeveer -148dBm en de uitgangsvermogen is +20dBm. Het biedt een hoge betrouwbaarheid en een lange transmissieafstand.
De aan boord 16 Mt bytes (128 Mt bit), Wi-Fi antenne, 0,96 inch blauwe OLED-display, lithiumbatterij-oplaadcircuit, CP2102-interface en USB-serial-chip, de perfecte ondersteuning voor ontwikkelingsomgeving, kan worden gebruikt voor programmaverificatie en productontwikkeling is zeer eenvoudig en snel.
Werkspanning: 3.3V tot 7V
Bedrijfstemperatuurbereik: -40 graden Celsius tot +90 graden Celsius
Ondersteuning voor Sniffer, Station, softAP en Wi-Fi Direct-modi
Snelheden: 150 Mbps @ 11n HT40, 72 Mbps @ 11n HT20, 54 Mbps @ 11g, 11 Mbps @ 11b
Verzendvermogen: 19.5 dBm@11b, 16.5 dBm@11g, 15.5 dBm@11n
Ontvangergevoeligheid tot -98 dBm
UDP duurzame doorvoer van 135 Mbps
Pin referentie beschrijving:
Voor meer productinformatie, klik https://drive.google.com/file/d/1L8ll-DeAC2SATBZn0-KbSaZsrinbnXkF/view
Test details:
Klik op de links voor meer details: https://eyun.baidu.com/s/3hsiTNgg
Let op: Dit product bevat geen batterij.
Pakket inbegrepen:
2 x ESP32 OLED
2 x Line
4 x pin
2 x 433m Veerantenne
Bijvoorbeeld Eén:
(1) LoRaSender
#inbegrepen
#inbegrepen
#inbegrepen
// GPIO5 - SCK van SX1278
// GPIO19 -- SX1278's MISO
// GPIO27 - M0SI van SX1278
// GPIO18 -- CS van SX1278
// GPIO14 -- RESET van SX1278
// GPIO26 - IRQ (Onderbrekingsverzoek) van SX1278
#define SS 18
geen Nederlandse vertaling beschikbaar
#define DI0 26
#definieer BAND 433E6
int counter = 0;
void setup() {
pinModus(25, OUTPUT); //Stuur succes, LED zal 1 seconde lang oplichten
Serial.begin(115200);
while (!Serial); //Als alleen de basisfunctie, moet verbonden zijn met een computer
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
// Serial.println("LoRa Zender");
if (!LoRa.begin(BAND)) {
Serial.println("LoRa starten mislukt!");
while (1);
}
Serial.println("LoRa Initieel OK!");
}
void loop() {
Serial.print("Verzenden pakket: ");
Serial.println(counter);
// pakket verzenden
LoRa.beginPacket();
LoRa.print("hello ");
LoRa.print(counter);
LoRa.endPacket();
counter++;
digitalWrite(25, HOOG); // zet de LED aan (HOOG is het spanningsniveau)
vertraging(1000); // wacht een seconde
digitalWrite(25, LAAG); // zet de LED uit door de spanning LAAG te maken
vertraging(1000); // wacht een seconde
vertraging(3000);
}
Bijvoorbeeld Twee
(2)LoRaOntvanger
#inbegrepen
#inbegrepen
// GPIO5 - SCK van SX1278
// GPIO19 -- SX1278's MISO
// GPIO27 - M0SI van SX1278
// GPIO18 -- CS van SX1278
// GPIO14 -- RESET van SX1278
// GPIO26 - IRQ (Onderbrekingsverzoek) van SX1278
#define SS 18
geen Nederlandse vertaling beschikbaar
#define DI0 26
#definieer BAND 433E6
void setup() {
Serial.begin(115200);
while (!Serial); //if alleen de basisfunctie, moet verbinding maken met een computer
delay(1000);
Serial.println("LoRa-ontvanger");
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
if (!LoRa.begin(BAND)) {
Serial.println("LoRa starten mislukt!");
while (1);
}
}
void loop() {
// proberen pakket te analyseren
int packetSize = LoRa.parsePacket();
if (packetSize) {
// ontvangen een pakket
Serial.print("Ontvangen pakket '");
// pakket lezen
while (LoRa.beschikbaar()) {
Serial.print((char)LoRa.read());
}
// print RSSI van pakket
Serial.print("' met RSSI ");
Serial.println(LoRa.packetRssi());
}
}
Voorbeeld drie
(3)LoRaOntvangstCallBack
#inbegrepen
#inbegrepen
// GPIO5 - SCK van SX1278
// GPIO19 -- SX1278's MISO
// GPIO27 - M0SI van SX1278
// GPIO18 -- CS van SX1278
// GPIO14 -- RESET van SX1278
// GPIO26 - IRQ (Onderbrekingsverzoek) van SX1278
#define SS 18
geen Nederlandse vertaling beschikbaar
#define DI0 26
#definieer BAND 433E6
void setup() {
Serial.begin(115200);
while (!Serial); //if alleen de basisfunctie, moet verbinding maken met een computer
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
Serial.println("LoRa-ontvanger Callback");
if (!LoRa.begin(BAND)) {
Serial.println("LoRa starten mislukt!");
while (1);
}
// registreer de ontvangen callback
LoRa.onReceive(onReceive);
// zet de radio in ontvangmodus
LoRa.ontvangen();
}
void loop() {
// doe niets
}
void onReceive(int packetSize) {
// ontvangen een pakket
Serial.print("Ontvangen pakket '");
// pakket lezen
voor (int i = 0; i < packetSize; i++) {
Serial.print((char)LoRa.read());
}
// print RSSI van pakket
Serial.print("' met RSSI ");
Serial.println(LoRa.packetRssi());
}
?
Bijvoorbeeld vier
#inbegrepen // Alleen nodig voor 1.6.5 en eerder
#inbegrepen "SSD1306.h" // alias voor `#inbegrepen "SSD1306Wire.h"`
#inbegrepen "images.h
//OLED pinnen naar ESP32 0.96OLEDGPIO's via deze connectie:
//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;
void setup() {
pinMode(16,OUTPUT);
digitalWrite(16, LAAG); // zet GPIO16 laag om OLED te resetten
vertraging(50);
digitalWrite(16, HIGH); // terwijl OLED actief is, moet GPIO16 op hoog ingesteld worden
Serial.begin(115200);
Serial.println();
Serial.println();
// Het initialiseren van de UI zal ook het display initialiseren.
display.init();
display.flipSchermVerticaal();
display.setFont(ArialMT_Plain_10);
}
Leeg drawFontFaceDemo() in {
// Lettertype demo1
// maak meer lettertypen aan op http://oleddisplay.squix.ch/
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_10);
display.drawString(0, 0, "Hello world");
display.setFont(ArialMT_Plain_16);
display.drawString(0, 10, "Hello world");
display.setFont(ArialMT_Plain_24);
display.drawString(0, 26, "Hello world");
}
void drawTextFlowDemo() {
display.setFont(ArialMT_Plain_10);
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.drawStringMaxWidth(0, 0, 128,
Lorem ipsumn dolor zitten amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore." );
}
void drawTextAlignmentDemo() {
// Tekstuitlijning demo
display.setFont(ArialMT_Plain_10);
// De coördinaten definiëren het linker startpunt van de tekst
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.drawString(0,10,"Linker uitgelijnd (0,10)");
// De coördinaten bepalen het centrum van de tekst
display.setTextAlignment(TEXT_ALIGN_CENTER);
display.drawString(64, 22, "Gecentreerd uitgelijnd (64,22)");
// De coördinaten definiëren het rechteruiteinde van de tekst
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(128, 33, "Rechts uitgelijnd (128,33)");
}
void drawRechthoekDemo() {
// Teken een pixel op de opgegeven positie
voor (int i = 0; i < 10; i++) {
display.setPixel(i, i);
display.setPixel(10 - i, i);
}
display.drawRect(12, 12, 20, 20);
// Vul het rechthoek in
display.fillRect(14, 14, 17, 17);
// Trek een horizontale lijn
display.drawHorizontaleLijn(0, 40, 20);
// Trek een horizontale lijn
display.tekenVerticaleLijn(40, 0, 20);
}
void drawCircleDemo() {
voor (int i=1; i < 8; i++) {
display.setColor(WIT);
display.drawCircle(32, 32, i*3);
if (i % 2 == 0) {
display.setColor(ZWART);
}
display.fillCircle(96, 32, 32 - i* 3);
}
}
void drawProgressBarDemo() {
int voortgang = (teller / 5) % 100;
// teken de voortgangsbalk
display.tekenVoortgangsbalk(0, 32, 120, 10, voortgang);
// teken het percentage als String
display.setTextAlignment(TEXT_ALIGN_CENTER);
display.drawString(64, 15, String(progress) + "%");
}
void drawImageDemo() {
// zie http://blog.squix.org/2015/05/esp8266-nodemcu-how-to-create-xbm.html
// over hoe xbm-bestanden te maken
display.drawXbm(34, 14, WiFi_Logo_breedte, WiFi_Logo_hoogte, WiFi_Logo_bits);
}
Demo demos[] = {drawFontFaceDemo, drawTextFlowDemo, drawTextAlignmentDemo, drawRectDemo, drawCircleDemo, drawProgressBarDemo, drawImageDemo};
int demoLength = (sizeof(demos) / sizeof(Demo));
long timeSinceLastModeSwitch = 0;
void loop() {
// het scherm leegmaken
display.wissen();
// teken de huidige demomethode
demos [demoModus]();
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(10, 128, String(millis()));
// schrijf de buffer naar het scherm
weergave.weergeven();
if(millis()-timeSinceLastModeSwitch>DEMO_DURATION) {
demoMode = (demoMode + 1) % demoLength;
tijdSindsLaatsteModusWissel = millis();
}
counter++;
vertraging(10);
}