Kesin ayrıntılar:
Bilgileri güncelle:
Not: Ürün güncellendikten sonra, Bluetooth ESP32 çipine dahili olarak entegre edilmiştir ve kullanıcı Bluetooth işlevini kullanmak için sadece Bluetooth programını yazdırması yeterlidir.
Ürün Açıklaması:
433MHz anten, IPEX arayüzü ile birlikte kullanılmalıdır (antenna bağlı değilse, LoRa yonga zarar görebilir)
Lityum pil şarj ve deşarj devresi, pil dolu olduğunda mavi LED çalışmayı durduracaktır. Kullanırken, bataryanın pozitif ve negatif kutuplarına dikkat edin, aksi takdirde zarar görebilir.
IO port dokunmatik ekran dokunma sinyali girişi kullanırken, bu pime 100nF pull-down kondansatör eklemelisiniz!
Örnek:
Bu ürün ESP32 WIFI artırılmış OLED tabanlı SX1278 çipi olan LoRa uzaktan modemdir. 433MHz frekansında yüksek hassasiyeti yaklaşık -148dBm, +20dBm çıkış gücü, yüksek güvenilirlik, uzun iletim mesafesi sağlar.
On tahta 16 Mt baytları (128 Mt bit), Wi-Fi anten, 0.96 inç mavi OLED ekran, lityum pil şarj devresi, CP2102 arabirimi ve USB seri çipi, geliştirme ortamı için mükemmel destek, program doğrulaması ve ürün geliştirme için çok basit ve hızlı bir şekilde kullanılabilir.
Çalışma gerilimi: 3.3V ila 7V
Çalışma sıcaklık aralığı: -40 derece C ile +90 derece C arasında
Sniffer, Station, softAP ve Wi-Fi Direct modları için destek
Veri hızları: 150 Mbps @ 11n HT40, 72 Mbps @ 11n HT20, 54 Mbps @ 11g, 11 Mbps @ 11b
Aktarım gücü: 19.5 dBm@11b, 16.5 dBm@11g, 15.5 dBm@11n
Alıcı hassasiyeti -98 dBm'ye kadar
UDP sürdürülen veri akışı 135 Mbps
Pin referansı açıklama:
Daha fazla ürün bilgisi için tıklayın: https://drive.google.com/file/d/1L8ll-DeAC2SATBZn0-KbSaZsrinbnXkF/view
Test detayları:
Daha fazla ayrıntı için bağlantılara tıklayın: https://eyun.baidu.com/s/3hsiTNgg
Not: Bu ürün pil içermez.
Paket içeriği:
2 x ESP32 OLED
2 x Line
4 x pin
2 x 433m Yay Anteni
Örneğin Bir:
(1) LoRaSender
#dahil et
#dahil et
#dahil et
// GPIO5 - SX1278'in SCK'sı
// GPIO19 -- SX1278'nin MISO'su
// GPIO27 - SX1278'nin M0SI'si
// GPIO18 -- SX1278'nin CS'i
// GPIO14 -- SX1278'in SIFIRLAMA
// GPIO26 - SX1278'in IRQ'si (Kesme İsteği)
#define SS 18
Türkçe çeviri mevcut değil
#define DI0 26
#tanımla BAND 433E6
int counter = 0;
void setup() {
pinMode(25, ÇIKIŞ); //Başarı gönder, LED 1 saniye boyunca parlak olacak
Serial.begin(115200);
while (!Serial); //Sadece temel işlev ise, bir bilgisayara bağlanmalıdır
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
// Serial.println("LoRa Gönderici");
if (!LoRa.begin(BAND)) {
Serial.println("LoRa başlatma başarısız oldu!");
while (1);
}
Serial.println("LoRa Başlangıç OK!");
}
void loop() {
Serial.print("Paket gönderiliyor: ");
Serial.println(counter);
// paket gönder
LoRa.beginPacket();
LoRa.print("hello ");
LoRa.print(counter);
LoRa.endPacket();
counter++;
digitalWrite(25, YUKSEK); // LED'i açık konuma getir (YÜKSEK, gerilim seviyesidir)
gecikme(1000); // bir saniye bekleyin
digitalWrite(25, LOW); // LED'i düşük gerilimle kapatma
gecikme(1000); // bir saniye bekleyin
göndermeyi geciktir(3000);
}
Örneğin İki
(2)LoRaAlıcı
#dahil et
#dahil et
// GPIO5 - SX1278'in SCK'sı
// GPIO19 -- SX1278'nin MISO'su
// GPIO27 - SX1278'nin M0SI'si
// GPIO18 -- SX1278'nin CS'i
// GPIO14 -- SX1278'in SIFIRLAMA
// GPIO26 - SX1278'in IRQ'si (Kesme İsteği)
#define SS 18
Türkçe çeviri mevcut değil
#define DI0 26
#tanımla BAND 433E6
void setup() {
Serial.begin(115200);
while (!Serial); //sadece temel işlev için, bir bilgisayara bağlanmalı
delay(1000);
Serial.println("LoRa Alıcı");
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
if (!LoRa.begin(BAND)) {
Serial.println("LoRa başlatma başarısız oldu!");
while (1);
}
}
void loop() {
// paketi analiz etmeye çalış
int packetSize = LoRa.parsePacket();
if (packetSize) {
// bir paket alındı
Serial.print("Alınan paket '");
// paketi oku
while (LoRa.mevcut()) {
Serial.print((char)LoRa.read());
}
// paketin RSSI'sini yazdır
Serial.print("' ile RSSI ");
Serial.println(LoRa.packetRssi());
}
}
Örnek üç
(3)LoRaAlıcıGeriÇağırma
#dahil et
#dahil et
// GPIO5 - SX1278'in SCK'sı
// GPIO19 -- SX1278'nin MISO'su
// GPIO27 - SX1278'nin M0SI'si
// GPIO18 -- SX1278'nin CS'i
// GPIO14 -- SX1278'in SIFIRLAMA
// GPIO26 - SX1278'in IRQ'si (Kesme İsteği)
#define SS 18
Türkçe çeviri mevcut değil
#define DI0 26
#tanımla BAND 433E6
void setup() {
Serial.begin(115200);
while (!Serial); //sadece temel işlev için, bir bilgisayara bağlanmalı
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
Serial.println("LoRa Alıcı Geriçağırımı";
if (!LoRa.begin(BAND)) {
Serial.println("LoRa başlatma başarısız oldu!");
while (1);
}
// alım geri çağırımını kaydet
LoRa.onReceive(onReceive);
// radyoyu alım moduna koy
LoRa.al();
}
void loop() {
// hiçbir şey yapma
}
void onReceive(int packetSize) {
// bir paket alındı
Serial.print("Alınan paket '");
// paketi oku
for (int i = 0; i < packetSize; i++) {
Serial.print((char)LoRa.read());
}
// paketin RSSI'sini yazdır
Serial.print("' ile RSSI ");
Serial.println(LoRa.packetRssi());
}
?
Örneğin dört
#dahil et // Sadece 1.6.5 ve öncesi için gereklidir
#dahil et "SSD1306.h" // `#dahil et "SSD1306Wire.h"` için takma ad
#dahil et "images.h
//ESP32 0.96OLEDGPIO'ye bu bağlantı üzerinden OLED pinleri:
//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 sayac = 1;
void setup() {
pinMode(16,OUTPUT);
digitalWrite(16, LOW); // OLED'i sıfırlamak için GPIO16 düşük olarak ayarla
göndermeyi geciktir(50);
digitalWrite(16, HIGH); // OLED çalışırken, GPIO16'yı yüksek seviyeye ayarlamalısınız
Serial.begin(115200);
Serial.println();
Serial.println();
// UI'nin başlatılması, görüntüyü de başlatır.
display.init();
display.flipEkranDikeyYönünde();
display.setFont(ArialMT_Plain_10);
}
void drawFontFaceDemo() çizme {
// Yazıtipi Demo1
// http://oleddisplay.squix.ch/ üzerinde daha fazla yazı tipi oluşturun
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 oturup amet، consetetur sadipscing elitr، sed diam nonumy eirmod tempor invidunt ut labore." );
}
void drawTextAlignmentDemo() {
// Metin hizalama demisi
display.setFont(ArialMT_Plain_10);
// Koordinatlar metnin sol başlangıç noktasını tanımlar
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.drawString(0, 10, "Sol hizalama (0,10)");
// Koordinatlar metnin merkezini tanımlar
display.setTextAlignment(TEXT_ALIGN_CENTER);
display.drawString(64, 22, "Ortaya hizalı (64,22)");
// Koordinatlar, metnin sağ ucunu tanımlar
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(128, 33, "Sağa hizalı (128,33)");
}
void drawRectDemo() {
// Belirtilen konumda bir piksel çiz
for (int i = 0; i < 10; i++) {
display.setPixel(i, i);
display.setPixel(10 - i, i);
}
display.drawRect(12, 12, 20, 20);
// Dikdörtgeni doldur
display.fillRect(14, 14, 17, 17);
// Yatay olarak bir çizgi çiz
display.drawHorizontalLine(0, 40, 20) görüntüle.
// Yatay olarak bir çizgi çiz
display.drawVerticalLine(40, 0, 20);
}
void drawCircleDemo() {
for (int i=1; i < 8; i++) {
display.setColor(BEYAZ);
display.drawCircle(32, 32, i*3);
if (i % 2 == 0) {
display.setColor(SİYAH);
}
display.fillCircle(96, 32, 32 - i* 3);
}
}
void drawProgressBarDemo() {
int ilerleme = (sayaç / 5) % 100;
// ilerleme çubuğunu çiz
display.drawProgressBar(0, 32, 120, 10, progress);
// yüzdeyi dize olarak çizin
display.setTextAlignment(TEXT_ALIGN_CENTER);
display.drawString(64, 15, String(progress) + "%");
}
void drawImageDemo() {
// bkz http://blog.squix.org/2015/05/esp8266-nodemcu-how-to-create-xbm.html
// xbm dosyaları nasıl oluşturulur hakkında
display.drawXbm(34, 14, WiFi_Logo_genişlik, WiFi_Logo_yükseklik, WiFi_Logo_bits);
}
Demo demos[] = {drawFontFaceDemo, drawTextFlowDemo, drawTextAlignmentDemo, drawRectDemo, drawCircleDemo, drawProgressBarDemo, drawImageDemo};
int demoLength = (sizeof(demos) / sizeof(Demo));
long timeSinceLastModeSwitch = 0;
void loop() {
// ekranı temizle
display.clear();
// mevcut örnek yöntemini çiz
demolar [demoMod] ();
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(10, 128, String(millis()));
// tamponu ekrana yaz
görüntü.göster();
Eğer (millis() - timeSinceLastModeSwitch > DEMO_DURATION) {
demoMode = (demoMode + 1) % demoLength;
timeSinceLastModeSwitch = millis();
}
counter++;
gecikme(10);
}