HowTo - Esp-12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0.96 "OLED DEMO عبر Arduino GUI: 4 خطوات
HowTo - Esp-12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0.96 "OLED DEMO عبر Arduino GUI: 4 خطوات
Anonim
HowTo - Esp-12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0.96
HowTo - Esp-12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0.96

مرحبا،

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

Einstellen / Einrichten Der ARDUINO GUI
Einstellen / Einrichten Der ARDUINO GUI
Einstellen / Einrichten Der ARDUINO GUI
Einstellen / Einrichten Der ARDUINO GUI
Einstellen / Einrichten Der ARDUINO GUI
Einstellen / Einrichten Der ARDUINO GUI
Einstellen / Einrichten Der ARDUINO GUI
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

I2C Schnittstelle Scannen
I2C Schnittstelle Scannen
I2C Schnittstelle Scannen
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

ماكيتي