
جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-23 12:53

مرحبا،
hier möchte ich Euch zeigen wie Ihr das mit auf der Hauptplatine verbaute OLED Display benutzen / ansteuern könnt. Um es möglichst einfach zu halten، benutze ich die ARDUINO GUI zum schreiben des CODEs und zum hochladen der Firmware.
الخطوة 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:"
عين (بيلد 2). Damit bekommen wir den benötigten Zugang zu dem passenden Boardtreiber.
Jetzt können wir den Passenden Boardtreiber installieren
(مجلس Werkzeuge: Boardverwaltung / Bild 3)
- Dort im Suchfeld "esp8266" eintragen
- Dann "esp8266 بواسطة ESP8266 Community" auswählen und die aktuellste Version installieren (Bild 4)
- بدء تشغيل واجهة المستخدم الرسومية ARDUINO GUI
- Danach das passende Board auswählen (z. B.: WeMos D1 R2 & mini)
الخطوة 2: I2C Schnittstelle Scannen


Um zu sehen and welche PINs das OLED-Display angeschlossen wurde ، مسح ضوئي wir zuerst die I2C-Schnittstelle. لذلك ، يجب أن يكون الأمر كذلك ، لذا يرجى ملاحظة أنه يتم إجراء عمليات فحص 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 ، يلحس الجهاز بدون عمل. (Bild 2 - DigitalPIN Scan)
Das Ergebnis Merken.
في diesem Fall: SDA = D1: SCL = D2 bei Adresse 0x3c
الخطوة 3: رسم تجريبي 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 Code ggf. modifiziert werden muss.
يموت أيضا Konfiguration für die I2C-Schnittstelle.
Aus diesem Code könnt Ihr euch auch viele Infos über die Benutzung eines OLEDs قادرة.
/ ** * ترخيص MIT (MIT) * * حقوق الطبع والنشر (c) 2016 بواسطة Daniel Eichhorn * * يُمنح الإذن بموجب هذا ، مجانًا ، لأي شخص يحصل على نسخة * من هذا البرنامج وملفات التوثيق المرتبطة به ("البرنامج") ، للتعامل * في البرنامج دون قيود ، بما في ذلك على سبيل المثال لا الحصر حقوق * استخدام نسخ البرنامج ونسخها وتعديلها ودمجها ونشرها وتوزيعها وترخيصها من الباطن و / أو بيع نسخ * من البرنامج ، والسماح للأشخاص الذين يستخدمون البرنامج لهم * مؤهل للقيام بذلك ، وفقًا للشروط التالية: * * يجب تضمين إشعار حقوق النشر أعلاه وإشعار الإذن هذا في جميع * النسخ أو الأجزاء الأساسية من البرنامج. * * يتم توفير البرنامج "كما هو" ، دون أي ضمان من أي نوع ، صريحًا أو * ضمنيًا ، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق ، * الملاءمة لغرض معين وعدم الانتهاك. لن يتحمل * المؤلفون أو حاملو حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي مطالبة أو أضرار أو أي مسؤولية أخرى * ، سواء كان ذلك في إطار عقد أو ضرر أو غير ذلك ، ينشأ عن أو * خارج أو متصل بالبرنامج أو الاستخدام أو غير ذلك التعاملات في * البرنامج. * *
/ تضمين مكتبة العرض الصحيحة
// للاتصال عبر I2C باستخدام Wire ، تتضمن #include // لـ I2C Wire #include "SSD1306.h" // الاسم المستعار لـ `#include" SSD1306Wire.h "`
// تضمين الصور المخصصة
# تضمين "images.h"
// تهيئة شاشة OLED باستخدام brzo_i2c
// D3 -> SDA // D5 -> SCL // عرض SSD1306 (0x3c ، D1 ، D2) ؛ أو عرض SSD1306 (0x3c ، 5 ، 4) ؛ أو عرض SSD1306 (0x3c ، GPIO5 ، GPIO4) ؛
**************************************************************************************************
An der folgenden Stelle werden dann die PINs für die I2C Schnittstelle konfiguriert
// تهيئة شاشة OLED باستخدام مكتبة الأسلاك
عرض SSD1306 (0x3c ، D1 ، D2) ؛
***************************************************************************************************
#define DEMO_DURATION 3000
typedef void (* Demo) (void) ؛
int demoMode = 0 ؛
عداد int = 1 ؛
الإعداد باطل() {
Serial.begin (9600) ؛ Serial.println ("OLED_DEMO") ؛ Serial.println ("بدء العرض التوضيحي") ؛
// ستؤدي تهيئة واجهة المستخدم إلى بدء العرض أيضًا.
display.init () ؛
display.flipScreenVertically () ،
display.setFont (ArialMT_Plain_10) ،
}
drawFontFaceDemo باطل () {
// Font Demo1 Serial.println ("Font DEMO 1") ؛ // إنشاء المزيد من الخطوط على 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") ؛ }
drawTextFlowDemo () باطلة {
Serial.println ("drawTextFlowDemo") ؛ display.setFont (ArialMT_Plain_10) ، display.setTextAlignment (TEXT_ALIGN_LEFT) ، display.drawStringMaxWidth (0 ، 0 ، 128 ، "الروبوتات هي / n المستقبل ، والمستقبل ، الآن. لكن لا تنس الطبيعة") ؛ }
drawTextAlignmentDemo باطل () {
Serial.println ("drawTextAlignmentDemo") ؛ // عرض محاذاة النص التجريبي.setFont (ArialMT_Plain_10) ؛ // Schriftart und -größe einstellen
// تحدد الإحداثيات نقطة البداية اليسرى للنص
display.setTextAlignment (TEXT_ALIGN_LEFT) ، // Text_Ausrichtung einstellen display.drawString (0 ، 10 ، "محاذاة إلى اليسار (0 ، 10)") ؛
// تحدد الإحداثيات مركز النص
display.setTextAlignment (TEXT_ALIGN_CENTER) ، display.drawString (64، 22، "محاذاة للوسط (64، 22)")؛
// تحدد الإحداثيات الطرف الأيمن من النص
display.setTextAlignment (TEXT_ALIGN_RIGHT) ، display.drawString (128 ، 33 ، "محاذاة لليمين (128 ، 33)") ؛ }
drawRectDemo باطل () {
Serial.println ("drawRectDemo") ؛ // ارسم بكسل في موضع معين لـ (int i = 0 ؛ i <10 ؛ i ++) {display.setPixel (i، i) ؛ display.setPixel (10 - ط ، ط) ؛ } display.drawRect (12، 12، 20، 20) ؛
// املأ المستطيل
display.fillRect (14 ، 14 ، 17 ، 17) ؛
// ارسم خطًا أفقيًا
display.drawHorizontalLine (0 ، 40 ، 20) ؛
// ارسم خطًا أفقيًا
display.drawVerticalLine (40، 0، 20) ؛ }
drawCircleDemo باطل () {
Serial.println ("drawCircleDemo") ؛ لـ (int i = 1 ؛ i <8 ؛ i ++) {display.setColor (WHITE) ؛ display.drawCircle (32 ، 32 ، ط * 3) ؛ إذا (i٪ 2 == 0) {display.setColor (أسود) ؛ } display.fillCircle (96، 32، 32 - i * 3) ؛ }}
drawProgressBarDemo باطل () {
Serial.println ("drawProgressBarDemo") ؛ تقدم int = (عداد / 5)٪ 100 ؛ // ارسم عرض شريط التقدم.
// ارسم النسبة المئوية كسلسلة
display.setTextAlignment (TEXT_ALIGN_CENTER) ، display.drawString (64، 15، String (progress) + "٪")؛ }
Der Folgende Link im Kommentar kann helfen ein Bild oder Logo so umzuwandeln، das es auf dem عرض angezeigt werden kann…
drawImageDemo باطل () {
Serial.println ("drawImageDemo") ؛ // انظر https://blog.squix.org/2015/05/esp8266-nodemcu-how… // حول كيفية إنشاء عرض ملفات xbm.drawXbm (34، 0، Logo_width، Logo_height، Logo_bits)؛ }
عرض توضيحي = {drawFontFaceDemo ، drawTextFlowDemo ، drawTextAlignmentDemo ، drawRectDemo ، drawCircleDemo ، drawProgressBarDemo ، drawImageDemo} ؛
int demoLength = (sizeof (demos) / sizeof (Demo)) ؛ وقت طويلSinceLastModeSwitch = 0 ؛
حلقة فارغة() {
// مسح شاشة العرض. clear () ؛ // ارسم طريقة العرض التوضيحي الحالية [demoMode] () ؛
display.setTextAlignment (TEXT_ALIGN_RIGHT) ،
display.drawString (10، 128، String (millis ())) ؛ // اكتب المخزن المؤقت على شاشة العرض.
إذا (مللي () - timeSinceLastModeSwitch> DEMO_DURATION) {
demoMode = (demoMode + 1)٪ demoLength ؛ timeSinceLastModeSwitch = ميليس () ، } عداد ++ ؛ تأخير (10) ؛ }
الخطوة 4: أدوات ، وصلات Und Herkunft / Literaturhinweis
Ich möchte mich bei allen bedanken die an 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
ماكيتي
موصى به:
ESP8266 RGB LED STRIP WIFI التحكم - NODEMCU كجهاز تحكم عن بعد بالأشعة تحت الحمراء لشريط LED يتم التحكم فيه عبر Wifi - RGB LED STRIP للتحكم في الهاتف الذكي: 4 خطوات

ESP8266 RGB LED STRIP WIFI التحكم | NODEMCU كجهاز تحكم عن بعد بالأشعة تحت الحمراء لشريط LED يتم التحكم فيه عبر Wifi | RGB LED STRIP Smartphone Control: مرحبًا يا رفاق في هذا البرنامج التعليمي سوف نتعلم كيفية استخدام nodemcu أو esp8266 كجهاز تحكم عن بعد بالأشعة تحت الحمراء للتحكم في شريط RGB LED وسيتم التحكم في Nodemcu بواسطة الهاتف الذكي عبر wifi. لذلك يمكنك بشكل أساسي التحكم في RGB LED STRIP بهاتفك الذكي
ESP8266 دروس NODEMCU BLYNK IOT - Esp8266 IOT باستخدام Blunk و Arduino IDE - التحكم في المصابيح عبر الإنترنت: 6 خطوات

ESP8266 دروس NODEMCU BLYNK IOT | Esp8266 IOT باستخدام Blunk و Arduino IDE | التحكم في مصابيح LED عبر الإنترنت: مرحبًا يا رفاق في هذه التعليمات ، سوف نتعلم كيفية استخدام IOT مع ESP8266 أو Nodemcu. سنستخدم تطبيق blynk لذلك ، لذلك سوف نستخدم esp8266 / nodemcu للتحكم في مصابيح LED عبر الإنترنت ، لذلك سيتم توصيل تطبيق Blynk بـ esp8266 أو Nodemcu
أتمتة المنزل عبر البلوتوث عبر نظام Android: 3 خطوات

أتمتة المنزل عبر البلوتوث عبر نظام Android: العيش في القرن الحادي والعشرين يعيش في قرن من الأتمتة ، ومع ذلك ، لا يتمتع الجميع بهذه الرفاهية ، فلا داعي للقلق! سيخبرك هذا التوجيه بالضبط بكيفية أتمتة أجهزتك بحيث يمكنك تشغيلها أو إيقاف تشغيلها بمجرد النقر على
HC - 06 (الوحدة التابعة) تغيير "NAME" بدون استخدام "Monitor Serial Arduino" هذا "يعمل بسهولة": طريقة خالية من العيوب!: 3 خطوات

HC - 06 (الوحدة التابعة) تغيير "NAME" بدون استخدام "Monitor Serial Arduino" … هذا "يعمل بسهولة": طريقة خالية من العيوب!: بعد & quot؛ وقت طويل & quot؛ محاولة تغيير الاسم على HC - 06 (الوحدة التابعة) ، باستخدام & quot؛ الشاشة التسلسلية للاردوينو بدون & quot؛ نجح & quot ؛، وجدت طريقة أخرى سهلة وأشارك الآن! هل لديك أصدقاء المرح
نقل الملفات عبر شبكة LAN الخاصة بك عبر BitTorrent: 6 خطوات

نقل الملفات عبر شبكة LAN الخاصة بك عبر BitTorrent: قد تحتاج أحيانًا إلى نقل الملفات عبر شبكة إلى عدة أجهزة كمبيوتر. بينما يمكنك وضعه على محرك أقراص محمول أو قرص مضغوط / قرص DVD ، يجب عليك الانتقال إلى كل كمبيوتر لنسخ الملفات وقد يستغرق الأمر بعض الوقت لنسخ جميع الملفات (خاصة مع f