
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01

Hallo, hier möchte ich Euch zeigen wie Ihr das mit auf der Hauptplatine verbaute OLED Paparan benutzen / ansteuern könnt. Um möglichst einfach zu halten, benutze ich die ARDUINO GUI zum schreiben des CODEs und zum hochladen der Firmware.
Langkah 1: Einstellen / Einrichten Der ARDUINO GUI




Als erstes muss das ESP8266 Board in der ARDUINO GUI verfügbar gemacht werden.
Dazu gehen wir in die Einstellungen (Datei Einstellungen / Bild 1) der GUI und tragen unter
"Zusätzliche Boardverwalter-URLs:"
ein (Bild 2). Damit bekommen wir den benötigten Zugang zu dem passenden Boardtreiber.
Jetzt können wir den Passenden Boardtreiber installieren
(Papan Werkzeuge: Boardverwaltung / Bild 3)
- Dort im Suchfeld "esp8266" eintragen
- Dann "esp8266 oleh ESP8266 Komuniti" auswählen und die aktuellste Versi installieren (Bild 4)
- Die ARDUINO GUI neu mula
- Danach das passende Board auswählen (z. B.: WeMos D1 R2 & mini)
Langkah 2: I2C Schnittstelle Scannen


Um zu sehen a PIN welche das OLED-Display angeschlossen wurde, scannen wir zuerst die I2C-Schnittstelle. Jadi können wir auch sehen ob noch weitere I2C-Parts angeschlossen sind.
Den Sketch (Bild 1) auf den ESP Hochladen, den "Seriellen-Monitor" öffnen und auf die Ausgabe warten. Dort könnt Ihr dann sehen, welches Peranti wo gefunden wurde. (Bild 2 - Imbasan DigitalPIN)
Das Ergebnis merken.
Dalam dieem Fall: SDA = D1: SCL = D2 bei Adresse 0x3c
Langkah 3: Sketsa Demo Anpassen Und Auf Den ESP Hochladen
Das ist der Code für das OLED-Display DEMO
Im 5. Abschnitt findet Ihr die Stelle an der der Code ggf. modifiziert werden muss.
Juga die Konfiguration für die I2C-Schnittstelle.
Aus diesem Code könnt Ihr euch auch viele Infos über die Benutzung eines OLEDs mampu.
/ ** * Lesen MIT (MIT) * * Hak cipta (c) 2016 oleh Daniel Eichhorn * * Kebenaran dengan ini diberikan, secara percuma, kepada mana-mana orang yang mendapat salinan * perisian ini dan fail dokumentasi yang berkaitan ("Perisian"), untuk berurusan * dalam Perisian tanpa sekatan, termasuk tanpa batasan hak * untuk menggunakan, menyalin, mengubah, menggabungkan, menerbitkan, mengedarkan, melisensikan, dan / atau menjual * salinan Perisian, dan untuk membenarkan orang yang Perisian tersebut * disediakan untuk melakukannya, tertakluk kepada syarat-syarat berikut: * * Notis hak cipta di atas dan notis kebenaran ini akan disertakan dalam semua * salinan atau sebahagian besar Perisian. * * PERANGKAT LUNAK DISEDIAKAN "SEBAGAIMANA ADANYA", TANPA JAMINAN SETIAP JENIS, EKSPRESI ATAU * TERSIRAT, TERMASUK TETAPI TIDAK TERHAD ATAS JAMINAN KEBERKESANAN, * KESESUAIAN UNTUK TUJUAN TERBARU DAN TIDAK BERFUNGSI. DALAM TIADA PERISTIWA YANG HARUS DILAKUKAN * PENULIS ATAU PEMEGANG HAK CIPTA BERTANGGUNG JAWAB ATAS TUNTUTAN, KEROSAKAN ATAU LAINNYA * TANGGUNG JAWAB, APABILA DALAM TINDAKAN KONTRAK, PENDEKAN ATAU LAINNYA, BERBANGKIT DARI, * DI ATAS ATAU BERHUBUNGAN DENGAN PERANGKAT ATAU PENGGUNAAN LAINNYA PERHUBUNGAN DALAM PERISIAN *. * *
/ Sertakan pustaka paparan yang betul
// Untuk sambungan melalui I2C menggunakan Wire sertakan #include // untuk I2C Wire #include "SSD1306.h" // alias untuk `#include" SSD1306Wire.h ""
// Sertakan gambar tersuai
#sertakan "gambar.h"
// Permulaan paparan OLED menggunakan brzo_i2c
// D3 -> SDA // D5 -> Paparan SCL // SSD1306 (0x3c, D1, D2); atau paparan SSD1306 (0x3c, 5, 4); atau paparan SSD1306 (0x3c, GPIO5, GPIO4);
**************************************************************************************************
An der folgenden Stelle mengarahkan dan mematikan PIN untuk die I2C Schnittstelle konfiguriert
// Memulakan paparan OLED menggunakan perpustakaan Wire
Paparan SSD1306 (0x3c, D1, D2);
***************************************************************************************************
#tentukan DEMO_DURATION 3000
typedef batal (* Demo) (tidak sah);
int demoMode = 0;
kaunter int = 1;
batal persediaan () {
Serial.begin (9600); Serial.println ("OLED_DEMO"); Serial.println ("Mulakan DEMO");
// Memulakan UI juga akan memasuki paparan.
display.init ();
display.flipScreenVertically ();
display.setFont (ArialMT_Plain_10);
}
batal drawFontFaceDemo () {
// Font Demo1 Serial.println ("Font DEMO 1"); // buat lebih banyak fon di https://oleddisplay.squix.ch/ display.setTextAlignment (TEXT_ALIGN_LEFT); display.setFont (ArialMT_Plain_10); display.drawString (0, 0, "ProMoScout"); display.setFont (ArialMT_Plain_16); display.drawString (0, 10, "ProMoScout"); display.setFont (ArialMT_Plain_24); display.drawString (0, 26, "ProMoScout"); }
batal drawTextFlowDemo () {
Serial.println ("drawTextFlowDemo"); display.setFont (ArialMT_Plain_10); display.setTextAlignment (TEXT_ALIGN_LEFT); display.drawStringMaxWidth (0, 0, 128, "Robot adalah Masa Depan, dan Masa Depan, sekarang. Tetapi jangan lupa Alam"); }
batal drawTextAlignmentDemo () {
Serial.println ("drawTextAlignmentDemo"); // Demo penjajaran teks display.setFont (ArialMT_Plain_10); // Schriftart und -größe einstellen
// Koordinat menentukan titik permulaan kiri teks
display.setTextAlignment (TEXT_ALIGN_LEFT); // Text_Ausrichtung einstellen display.drawString (0, 10, "Rata kiri (0, 10)");
// Koordinat menentukan bahagian tengah teks
display.setTextAlignment (TEXT_ALIGN_CENTER); display.drawString (64, 22, "Jajaran tengah (64, 22)");
// Koordinat menentukan hujung kanan teks
display.setTextAlignment (TEXT_ALIGN_RIGHT); display.drawString (128, 33, "Sejajar kanan (128, 33)"); }
batal drawRectDemo () {
Serial.println ("drawRectDemo"); // Lukis piksel pada kedudukan tertentu untuk (int i = 0; i <10; i ++) {display.setPixel (i, i); display.setPixel (10 - i, i); } display.drawRect (12, 12, 20, 20);
// Isi segi empat tepat
display.fillRect (14, 14, 17, 17);
// Lukis garis secara mendatar
display.drawHorizontalLine (0, 40, 20);
// Lukis garis secara mendatar
display.drawVerticalLine (40, 0, 20); }
kekosongan undianCircleDemo () {
Serial.println ("drawCircleDemo"); untuk (int i = 1; i <8; i ++) {display.setColor (WHITE); display.drawCircle (32, 32, i * 3); jika (i% 2 == 0) {display.setColor (HITAM); } display.fillCircle (96, 32, 32 - i * 3); }}
batal drawProgressBarDemo () {
Serial.println ("drawProgressBarDemo"); int progress = (kaunter / 5)% 100; // lukiskan progress bar display.drawProgressBar (0, 32, 120, 10, progress);
// lukis peratusannya sebagai String
display.setTextAlignment (TEXT_ALIGN_CENTER); display.drawString (64, 15, String (kemajuan) + "%"); }
Der folgende Link im Kommentar kann helfen ein Bild oder Logo jadi umzuwandeln, das es auf dem Display angezeigt werden kann…
batal drawImageDemo () {
Serial.println ("drawImageDemo"); // lihat https://blog.squix.org/2015/05/esp8266-nodemcu-how… // mengenai cara membuat fail xbm display.drawXbm (34, 0, Logo_width, Logo_height, Logo_bits); }
Demo demo = {drawFontFaceDemo, drawTextFlowDemo, drawTextAlignmentDemo, drawRectDemo, drawCircleDemo, drawProgressBarDemo, drawImageDemo};
int demoLength = (sizeof (demo) / sizeof (Demo)); lama SinceLastModeSwitch = 0;
gelung kosong () {
// kosongkan paparan paparan.clear (); // lukiskan demo kaedah demo semasa [demoMode] ();
display.setTextAlignment (TEXT_ALIGN_RIGHT);
display.drawString (10, 128, String (milis ())); // tulis penyangga ke paparan paparan.display ();
jika (milis () - timeSinceLastModeSwitch> DEMO_DURATION) {
demoMode = (demoMode + 1)% demoLength; timeSinceLastModeSwitch = milis (); } kaunter ++; kelewatan (10); }
Langkah 4: Alat, Pautan Und Herkunft / Literaturhinweis
Ich möchte mich bei allen bedanken die a dem ein oder anderen Code mit gewirkt haben.
Die Grundlagen für diese Anleitung habe ich gefunden unter:
www.instructables.com/id/ESP8266-I2C-PORT-…
github.com/ThingPulse/esp8266-oled-ssd1306…
Viele Grüße
McUtty
Disyorkan:
Penjimat Bateri, Suis Pemotong Pelindung Pelepasan Dengan ATtiny85 untuk Kereta Asid Lead atau Bateri Lipo: 6 Langkah

Penjimatan Bateri, Suis Pemutus Pelindung Pelepasan Dengan ATtiny85 untuk Kereta Asid Lead atau Bateri Lipo: Oleh kerana saya memerlukan beberapa pelindung bateri untuk kereta dan sistem solar saya, harga komersil saya berharga terlalu mahal $ 49. Mereka juga menggunakan terlalu banyak kuasa dengan 6 mA. Saya tidak menemui arahan mengenai perkara ini. Jadi saya buat sendiri yang menarik 2mA. Bagaimana
Ubah Bateri Tab Android Dengan Bateri LiPo 18650 dengan mudah: 5 Langkah

Mudah Mengubah Bateri Tab Android Dengan Baterai LiPo 18650: Dalam petunjuk ini kita akan melihat cara mengubah Tab Android lama yang baterinya mati dengan bateri LiPo 18650. Penafian: Bateri LiPo (Lithium Polymer) terkenal dengan pembakaran / letupan sekiranya penjagaan yang betul tidak diambil. Bekerja dengan Lithium
Bermula Dengan Esp 8266 Esp-01 Dengan Arduino IDE - Memasang Esp Papan di Arduino Ide dan Pengaturcaraan Esp: 4 Langkah

Bermula Dengan Esp 8266 Esp-01 Dengan Arduino IDE | Memasang Papan Esp di Arduino Ide dan Pengaturcaraan Esp: Dalam instruksional ini kita akan belajar bagaimana memasang papan esp8266 di Arduino IDE dan cara memprogramkan esp-01 dan memuat naik kod di dalamnya. Oleh kerana papan esp sangat popular jadi saya terfikir untuk membetulkan instruktor untuk ini dan kebanyakan orang menghadapi masalah
Bateri ESP Kuasa ESP: 10 Langkah (dengan Gambar)

Bateri ESP IoT Bertenaga: Instruksional ini menunjukkan cara membuat ESP IoT Bertenaga Bateri berdasarkan reka bentuk dalam arahan saya sebelumnya
HC - 06 (Slave Module) Mengubah "NAMA" Tanpa Digunakan "Monitor Serial Arduino" yang "Berfungsi dengan Mudah": Cara Tanpa Sesar !: 3 Langkah

HC - 06 (Slave Module) Menukar "NAMA" Tanpa Digunakan "Monitor Serial Arduino" … yang "Berfungsi dengan Mudah": Cara Tanpa Sesar !: Selepas " Masa Lama " mencuba Menukar Nama ke HC - 06 (hamba Modul), menggunakan " monitor bersiri Arduino, tanpa " Kejayaan ", saya menjumpai cara lain yang mudah dan saya Berkongsi sekarang! Selamat Bersenang-senang