Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

LED-Matrix-NTP-Uhr mit DS3231, BME280, BH1750 &ESP01

Komponenten und Verbrauchsmaterialien

Arduino Nano R3
× 1
Maxim Integrated DS3231MPMB1 Peripheriemodul
Das billige bei Ebay, bei dem der Widerstand entfernt wurde, um das Explodieren der Batterie zu verhindern
× 1
SparkFun Atmospheric Sensor Breakout - BME280
Das billige von Ebay
× 1
BH1750 Lichtsensor
Von Ebay
× 1
Max7219 32x8 LED-Matrix
× 1
Kondensator 10 µF
× 2
Espressif ESP8266 ESP-01
Optional, wenn die Zeit über NTP eingestellt werden soll
× 1
LM3940IT3.3
3,3-V-LDO-Regler für ESP01
× 1
SparkFun Level Shifter Board
Benötigt von ESP01
× 1

Über dieses Projekt

Das hat mich zu Arduinos gebracht. Ich bin auf Nicks LED Word Clock gestoßen und dachte, ich möchte das machen.

Seit ich seinen Code heruntergeladen habe, habe ich ihn modifiziert, um zusätzliche Sensoren und Tasten sowie einen ESP01 hinzuzufügen.

Der BH1750 wird verwendet, um das Display je nach Lichtverhältnissen automatisch zu dimmen und kann das Display nachts ausschalten. Das BME280 zeigt Temperatur, Luftfeuchtigkeit und Druck an. Der ESP01 wird verwendet, um die Zeit von pool.ntp.org abzurufen.

Die zusätzlichen Tasten sind dazu da, die Einstellungen einfach anzupassen. Sie können die Lichtsensoreinstellungen mit den Tasten anpassen sowie Schriftarten und NTP/DST/UTC-Einstellungen ändern.

Sechs neue Schriftarten wurden hinzugefügt, ich habe die Schriftarten mit:http://dotmatrixtool.com/ erstellt.

Ich habe einiges an der Wordclock geändert, sie hat jetzt mehr Wörter und bin ziemlich viel zu PROGMEM gewechselt, um RAM zu sparen.

Nicks Projektseite:https://123led.wordpress.com/mini-led-clock/

Mein Code:https://github.com/Ratti3/miniclock

Der Code ist jetzt komplett, abgesehen von unbekannten Fehlern und ein paar Optimierungen hier und da werde ich dafür plädieren.

Sie müssen den Lichtsensorcode an Ihre Lichtverhältnisse anpassen. Ich habe dies bei hellem Sonnenlicht neben einem Fenster codiert.

Ein ESP01 wird verwendet, um die Zeit über NTP abzurufen, das ESP01 ist für den Ruhezustand (WLAN aus) codiert, wenn es nicht benötigt wird, und wird über seriell geweckt, um die Zeit im UNIX-Format zu erhalten. Der SSID-Name und das Passwort werden der Einfachheit halber über den Arduino-Code übergeben.

Diese Version hat auch DST/UTC- und BST-Berechnungen. Diese Einstellungen können über das Menü angepasst oder deaktiviert werden.

Die Einstellungen werden im EEPROM gespeichert, d. h. wenn Sie aus- und wieder einschalten, werden Ihre über das Menü vorgenommenen Änderungen gespeichert.

Dies sind die Codedateien auf Github:

Code auf Github [https://github.com/Ratti3/miniclock]:Arduino LEDClock32x8.ino ProgmemData.hArduino ESP-01_NTP.ino LEDClock32x8_ESP01-NTP.ino ProgmemData.h 

Wenn das ESP01 ausgeführt wird, zeigt das Arduino Serial dies an:

Arduino:NTP-Anfrage an ESP01ESP01 gesendet:NTP-Anfrage von Arduino empfangen[Versuch 1 von 3]Verbindung mit SSID:TheInternets....connectedSSID:TheInternets, IP-Adresse:192.168.0.135Signal Strength (RSSI):-42 dBmSenden eines NTP-Pakets an:195.195.221.100 [Versuch 1]Senden eines NTP-Pakets an:195.195.221.100 [Versuch 2]UNIX1562848457Deaktivieren von WLAN....ok 

Weitere Bilder und Anleitungen folgen...

Alles zusammen:

Verkabelung:

DS3231, BH1750 und BME280:SCL PINS =A5 SDA PINS =A4 VCC =3.3vLED Matrix:CLK =D11 CS =D10 DIN =D12 VCC =5vSwitches:D2 - Menü D3 - Datum / + D4 - Temp / - D5 - AnzeigeoptionenESP01 - Optional D7 - TX-Pin von ESP01 D6 - RX-Pin von ESP01 

Dies sind die globalen Variablen, die Sie ändern können:

// Globale Variablen (veränderbare Standardwerte), Zahlen in [] Klammern sind der EEPROM-Speicherort für diesen Wert// Uhreinstellungen// [200] Standardintensität/Helligkeit (0-15), kann eingestellt werden über Menübyte Intensität =2; // [201] Standarduhrmodus. Standard =0 (Basic_mode)Byte clock_mode =0; // [206] Zufallsmodus definieren - ändert den Anzeigetyp alle paar Stunden. Standard =0 (aus)bool random_mode =0; // [207] Schriftart-Zufallsmodus definieren - ändert die Schriftart alle paar Stunden. 1 =zufällige Schriftart onbool random_font_mode =0; // [208] Definiere 12 oder 24 Stunden Zeit. 0 =24 Stunden. 1 =12 Stundenbool Ampere =0; // Lichteinstellungen // [202] Standard-Display-Ein/Aus-Modus, der vom Lichtsensor verwendet wird. 0 =normal, 1 =immer an, 2 - immer aus, 3 - 5 =definiert durch hour_off_1,2,3byte display_mode =5; // [209] Standardmäßige automatische Lichtintensitätseinstellungbool auto_intensity =1; // Diese drei definieren den Stundenlichtsensor kann das Display ausschalten, wenn es dunkel genug ist, das Format ist 24 Stunden, die Routine für // dies prüft zwischen 8.00 und einem dieser Wertebyte hour_off_1 =21; Byte Stunde_Aus_2 =22; byte hour_off_3 =23;// Font-Einstellungen - diese werden über das Setup-Font-Menü eingestellt, siehe set_font_case()-Routine für alle Standardwerte:// [203] Standarduhr große Schrift stylebyte font_style =2; // [204] Standarduhr große Schriftart Offset Adjustmentbyte font_offset =1; // [205] Standarduhr große Schriftspalten Adjustmentbyte font_cols =6; // DST NTP- und UTC-Einstellungen // [210] DST-Funktion aktivieren, 1 =aktivieren, 0 =deaktivierenbool dst_mode =1; // [211] NTP-Funktion aktivieren, 1 =aktivieren, 0 =deaktivierenbool ntp_mode =1; // Anzahl der Sekunden zum Anpassen des NTP-Werts vor der Anwendung auf DS3231, dauert einige hundert Millisekunden, um das ESP01-Datenbyte zu verarbeiten ntp_adjust =1; // [213] UTC-Offset-Anpassung, hoursint8_t utc_offset =0; // Die Stunde, in der die tägliche NTP/DST-Synchronisierung stattfindet, sollte um 2 Uhr morgens verlassen werden, wenn das DST-Modebyte verwendet wird ntp_dst_hour =2; // Anzahl der Wiederholungen der NTP-Anforderung 1 =35 Sekunden (ish) insgesamt, Werte 1 - 9 Byte ntp_max_retry =3; // Wird verwendet, um zu berechnen, wann ntp() beendet werden soll, wenn keine Daten empfangen werden, Wert in Sekunden, multipliziert mit ntp_max_retrybyte ntp_timeout =45; // Globale Konstanten - SSID und Passwort für WiFi, über SoftwareSerial an ESP01 übergeben // Die kombinierte Länge von SSID und Passwort darf 72 Zeichen nicht überschreiten // Die Länge Ihres SSID-Namens, z. B. SSID =MyWifi, ssid_len =6const byte ssid_len =8; // Ihr SSID-Name, zB MyWificonst char ssid[] ="IhreSSID"; // Die Länge Ihres SSID-Passworts, zB password =password, pass_len =8const byte pass_len =12; // Ihr SSID-Passwort, zB passwordconst char pass[] ="YourPassword";  

Code

Ratti3s Github
https://github.com/Ratti3/miniclock

Schaltpläne

Es gab kein BH1750, es wird genauso angeschlossen wie BME280

Herstellungsprozess

  1. Arduino-Uhr mit islamischen Gebetszeiten
  2. Arduino mit Bluetooth zur Steuerung einer LED!
  3. Analoge LED-POV-Uhr
  4. Heißkleber LED-Matrixlampe
  5. Steuern Sie Ihre LED mit Cortana
  6. Einzelne LED-Matrix-Arduino Flip Clock
  7. Steuerung einer LED-Matrix mit Arduino Uno
  8. Eine günstige und genaue Uhr auf GPS-Basis
  9. Arduino Bluetooth-gesteuerte Matrix mit Lauftext
  10. Einfacher Wecker mit DS1302 RTC