Smart Gong - [Teil 1] - AZ-Delivery

Hallo zusammen,

heute wollen wir Ihnen den ersten Beitrag von einem unserer neuen Autoren vorstellen - Matthias Kammerer.
Matthias Kammerer wird uns von nun an mit interessanten Projekten begleiten!

#SeienSieLieb und viel Spaß beim Lesen!

Vor einiger Zeit baute ich in meiner Mietwohnung eine Funkklingel ein, da der kurze Ton der vorhandenen Klingel kaum hörbar war.

An der gekauften Lösung haben mich einige Dinge gestört:

  • Batteriebetrieben,
  • begrenzte Anzahl an Klingeltönen,
  • nicht Smarthome fähig
  • und vor allem konnte die Klingel nicht mit dem vorhandenen Taster an der Haustür verwendet werden.

Bereits damals habe ich die gekaufte Klingel „gehackt“ und das Signal der alten Klingel als Schaltsignal für die Funkklingel verwendet.

In dieser Blogreihe möchten wir einen SmartGong realisieren, welcher sich auch für Mietwohnungen eignet, wo kein zusätzlicher Taster möglich oder gewünscht wird.

Im ersten Teil kümmern wir uns um den Abgriff des Signals und die Realisierung eines Gongs mit eigenem Sound, den sich jeder nach seinen Wünschen erstellen kann.

Prototyp des SmartGong01
 

Benötigte Hardware

Für die Umsetzung wird benötigt:

Anzahl Bauteil Anmerkung
1 AZ-Delivery D1 Mini
1 Mini MP3 Player
1 4GB MicroSD-Speicherkarte
1 Reedkontakt Schließer (N/O)
1 3W Lautsprecher z.B CQRobot-Lautsprecher 3W

Der Aufbau 

Aufbau des Prototyps auf einem Steckbrett

Auf der Seite dfrobot.com wird das AZ-Delivery Mini MP3 Player Modul und die verwendete Library ausführlich erklärt. Das Modul arbeitet mit 3,2-5,0 V und kann seriell angesteuert werden. Hier verlangt es 9600 Baud und einen Pegel von 3,3 V. Da der Az-D1-mini ebenfalls mit einer 3,3 V Logik an seinen Ausgängen arbeitet, spart man sich den zusätzlichen Widerstand, welcher bei der Ansteuerung über Arduinos (5V) notwendig ist.

Des Weiteren können wir mit dem Az-D1-mini später einfach den Internetzugang für unseren SmartGong einrichten.
Der Reedkontakt (N/O) ist ein magnetischer Schalter, welcher bei einem anliegenden Magnetfeld den Kontakt schließt. Durch diesen wird das Schaltsignal der bestehenden Klingelanlage abgriffen.

Bevor wir mit der Software beginnen, muss die Speicherkarte noch vorbereitet werden, damit das Modul auf die gewünschte Datei zugreifen kann.
Formatieren Sie die Speicherkarte in das Format FAT32 und erstellen Sie einen einzigen Ordner mit dem Namen MP3. In diesen können wir jetzt jede beliebige MP3-Datei ablegen, welche später der gewünschte Klingelton sein soll. Damit auch die richtige Datei abgespielt wird, müssen Sie dem Dateinamen eine vierstellige Nummerierung als Präfix voranstellen.

Ordnerstruktur & Dateistruktur der SD Karte

Anschließend können Sie die Speicherkarte einlegen und den Az-D1-Mini per USB mit dem PC verbinden.

Die Software 

Sollten Sie das erste Mal einen ESP8266 (der AZ-D1-Mini ist baugleich zum WEMOS D1 Mini) über die Arduino-IDE programmieren, müssen Sie noch unter Datei -> Voreinstellungen -> zusätzliche Boardverwalter URLs: den URL einfügen und bestätigen.

https://arduino.esp8266.com/stable/package_esp8266com_index.json

Danach geben Sie unter Werkzeuge -> Board: -> Boardverwalter "ESP8266" in die Suche ein und installieren den angezeigten Treffer.

Eine ausführliche Anleitung auch für macOs und Ubuntu gibt es bei heise.de

Beim nächsten Start der Arduino IDE sollte der WEMOS D1 Mini unter Werkzeuge -> Board ausgewählt werden können.

Für die Verwendung des MP3 Moduls werden noch die beiden Bibliotheken SoftwareSerial.h und  DFRobotDFPlayerMini.h benötigt, welche unter folgenden Links runtergeladen und über 

Sketch -> Bibliothek einbinden ->.ZIP-Bibliothek hinzufügen…

eingebunden werden können.

Nach einem Neustart der IDE können Sie den kurzen Code schreiben und auf das Modul hochladen.

//Benötigte Bibliotheken 
#include <SoftwareSerial.h>  
//Software Serial für ESP8266 https://circuits4you.com/2016/12/14/software-serial-esp8266/   Link zur Library //https://circuits4you.com/wp-content/uploads/2016/11/SoftwareSerial.zip #include <ESP8266WiFi.h> #include <DFRobotDFPlayerMini.h>
//https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299   Link zur Library
//https://github.com/DFRobot/DFRobotDFPlayerMini/archive/1.0.3.zip
//Benötigte Deklarationen
SoftwareSerial SofSer(D3, D4, false, 128);
//Wir deklarieren ein Objekt vom Typ "SoftwareSerial" mit dem Namen "SofSer"
//und setzen D3 auf RX und D4 auf TX als Ausgang
//für die serielle Kommunikation SoftwareSerial(rxPin, txPin, inverse_logic, buffer size);
DFRobotDFPlayerMini AzMp3Player;
//Wir deklarieren ein Objekt vom Typ "DFRobotDFPlayerMini" mit dem Namen "AzMp3Player"

void setup() {
SofSer.begin(9600);  // Einstellen der Baudrate auf 9600,
//welche vom MP3-Module erwartet wird.
AzMp3Player.begin(SofSer);
// Starten der seriellen Kommunikation zwischen dem D1 Mini und dem MP3 Modul.
AzMp3Player.volume(25);  
//Sendet Nachricht an das MP3 Modul: stelle Lautstärke auf 25 (0-30)
AzMp3Player.playMp3Folder(0);  
//Sendet Nachricht an das MP3 Modul:  Spiele die Dateinummer 0000.mp3
}

void loop() {
ESP.deepSleep(0);  // versetzt den D1 in Tiefschlaf
}

Erster Prototyp und Bedienung 

Hat alles geklappt, sollte jetzt Ihre Melodie abgespielt werden.

Durch Annähern eines Magneten an den Reedkontakt, wie im Video, wird der AZ-D1-Mini resettet und die Melodie ertönt erneut.

Damit ist unser erster Prototyp bereits fertig.

Zum Abgriff des Signals haben wir zwei Möglichkeiten. Entweder in der vorhandenen Klingelanlage ist der verwendete Elektromagnet frei zugänglich und nicht abgeschirmt, wie im folgenden Bild:

 Beispiel einer offenen Magnetspule 

Dann können Sie den Reedkontakt direkt in unmittelbarer Nähe der Spule z.B. mit Klebeband befestigen.

Ist dies, wie bei mir, nicht möglich (Magnet ist nach außen abgeschirmt) greifen wir die Spannung der Klingel ab und wickeln den Draht mehrmals um den Reedkontakt.

Durch die selbst gewickelte Spule entsteht beim Klingeln ein ausreichendes Magnetfeld, um den Kontakt zu schließen, und unsere Melodie kündigt uns einen Besucher an.

Links geöffnetes Gehäuse. Rechts Prototyp mit gewickelter Spule um Reedkontakt
 

Als Stromversorgung wird ein 5 V Handynetzteil verwendet.

Bei meinen ersten Tests verbrauchte die Schaltung ca. 20 mA bei 5 V im Standby. Die Stromkosten dafür betragen ca. 0,25 € jährlich. Trotzdem werden wir in den nächsten Teilen die Schaltung noch verbessern. Außerdem wollen wir noch weitere Funktionen für unsere SmartGong realisieren.

Viel Spaß beim Nachbauen!

Esp-8266Projekte für fortgeschritteneSmart home

20 Kommentare

Achim

Achim

Eine mechanische Frage: Ich habe die gleiche Klingel. Wie bekomme ich die Platten zum Reinigen heraus?
Sind an der Außenseite der beiden Platten nur jeweils zwei Stopfen? Wie bekomme ich die Platten raus?

Danke

Patrick Neumann

Patrick Neumann

Hallo,

sehr interessant. Ich habe die Schaltung nachgebaut und überlege nun, wie ich sie bei mir integriert bekomme. Ich habe eine alte Klingel mit neuem Trafo. Dieser Liefert 8 oder 12V AC.
Wie wäre es nun sinnvoll, diese Schaltung zu integrieren?
Wäre dieser Weg sinnvoll?
→ Klingel Knopf aktiviert Trafo → dieser liefert Strom an einen Wandler, welcher mir aus den 8V 5V macht → an einen Kondensator um für X Sekunden den Strom zu Puffern und dann an die Schaltung. Sagen wir, damit die Schaltung 40 Sekunden läuft etwa… Würde das gehen? Macht das so sinn? Oder würde das zu ofte Strom Ein/Aus den Modulen schaden?

Steffen

Steffen

Hallo,
ich möchte einen MP3-Mini an einem ESP8266 D1 Mini laufen lassen. Der Sketch läuft soweit, ich bekomme allerdings die Meldung “Get Wrong Stack”. Leider habe ich dazu nirgendwo etwas gefunden. Hat jemand eine Idee, was das bedeutet und wie man das behebt?
VG Steffen

Burki

Burki

@Pit
Das umschalten zwischen den einzelnen MP3s geht noch viel einfacher. Es ist nicht nötig eine Variable hochzählen zulassen. Ihr müsst nur den Befehl “AzMp3Player.playMp3Folder(0)” durch “AzMp3Player.next()” ersetzen. Der Player spielt dann immer das nächste Lied und fängt wenn alle Lieder abgespielt wurden, wieder von vorn an. Hierbei spielen Ordner übrigens keine Rolle. Die MP3s können in verschiedenen Ordnern liegen.

Matthias Kammerer

Matthias Kammerer

@john bowness
Sorry for keeping you waiting John,
my solution for a doorbell by knocking would go by using the KY-038 module of Az Delivery instead of a reed switch analogous to blog post 3 about a BC547 transistor to turn the board on. The KY-038 has a digital output that turns to HIGH from an adjustable threshold value via a potentiometer and can thus, together with the transistor, pull the circuit to Low. The microphone can then be glued to the door and adjusted so that it only comes on when knocking, but not when closing or opening the door (a vibration sensor would trigger here, too). The bodysound through the door is transmitted quite well, which allows the threshold value to be set very high. A disadvantage is that the sensor must permanently be supplied with power.

@Pit
Hallo Pit, das ist durchaus machbar.Du kannst pro Ordner, in unserem Fall MP3, bis zu 255 mp3 Datein hinterlegen. Diese musst du nur entsprechend nummerieren. Im Code bei:
AzMp3Player.playMp3Folder(0);
übergeben wir der Funktion die Nummer, die das Modul auf der Speicherkarte im MP3 Ordner abspielen soll. Du kannst die 0 durch eine Variable vom Typ int bzw unsigned int ersetzen, diese dann dauerhaft im Flash Speicher ablegen und nach jedem Aufruf um eins erhöht abspeichern. Zur Verwendung des SPIFFS-Filesystems gibt es z.B. folgenden Beitrag: https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/entwurf-daten-in-den-flash-speicher-des-esp-ablegen. Beachte dabei, dass du die Variable selbst im Code auf 0 zurücksetzen musst sobald dein letzter Titel abgespielt wurde.

@Horst
Hallo Horst, ich hatte anfangs dasselbe Problem mit den regulären TX und RX PINs des Wemos D1. Mit der SoftwareSerial Bibliothek und den PINs D3 und D4 sollte es aber funktionieren.

Viele Grüße
Matthias

Horst

Horst

Hallo !
Sollte eigentlich simpel sein – aber das tut es bei mir nicht.
WMos funktioniert (Blink !), der player funktioniert mit einem Uno ; nur WMos und der der player zusammen – da kommt nix raus.
Hat einer eine Idee ?
Grüsse

Pit

Pit

Wollte meine alte Klingel (Eigenbau vor ca.40 Jahren) damit ersetzen, Stromverbrauch ist gegen diese recht hoch. Leider spielt die hier vorgestellte Klingel nur das im Programm vorgegebene Lied. Meine alte Klingel hat 50 Lieder, so dass bei jeder Betätigung der Klingel ein neues Lied gespielt wird. Ist soetwas hier auch machbar?

john bowness

john bowness

hi im in the uk. i have had an idea for a while now but dont know how to do it . i would want to have a door bell that is set off buy someone knocking on the door.it would need to be fastened to the door and be powered from a battery. is there something that can detect the knock vibration or the sound from inside the house.what do you think.

thanks john

Tomtje

Tomtje

@Lahmann: Da gibt es was von ct:
https://www.heise.de/newsticker/meldung/AVM-Fritzbox-Tuerklingel-Integration-mit-Akku-4134842.html
LG

Matthias Kammerer

Matthias Kammerer

Hallo zusammen,
es freut mich, dass das Projekt so gut ankommt.

@ Holger
Es gibt natürlich mehrere Wege auch zB über einen Optokoppler, der ist auch kleiner als ein Relais. Allerdings hat mir einfach der Reed am besten gefallen, er reagiert schnell und man muss nicht zwangsweise in die Stromversorgung der Klingel eingreifen. Galvanisch getrennt ist der Reed auch :)

@ M. Lahmann
Danke für den Beitrag eine coole Erweiterung. Ich werde auf jeden Fall versuchen es noch mit umzusetzen. Prinzipiell kannst du dafür jeden ESP nehmen.

Viele Grüße
Matthias

M.Lahmann

M.Lahmann

Hallo
Ich bin neu auf dieser Seite habe schon bei Amazon und beim Kundenservice von AZ-Delivery meine Frage eingestellt aber keine Antwort erhalten . Ich suche eine Lösung wie man die Hausklingel mit Hilfe eines Modduls über die Fritz-Box auf alle Telefone übertragen kann . Habe im Netz gelesen das das mit einem Module ESP8266 möglich wäre ? Welches ihrer Module ist dafür am besten geeignet?
MfG

Rainer

Rainer

Tolle Idee, vielen Dank. Habe mich heute an die Realisierung gewagt.
Allerdings hat mein D1 mini eine andere Pinbelegung. Scheinbar gibt es hier Abwandlungen, obwohl sie ziemlich gleich aussehen. Ich hatte für ein anderes Projekt mal bei Amazon einen 5er Pack bestellt, da war noch einer übrig. Leider stimmt hier das Pinlayout nicht, ich musste erst mal mit dem Beispiel “Blink” zusammensuchen wo nun was wirklich raus kommt.

Holger

Holger

Warum nicht gleich ein passendes Relais nehmen? Bei einer Wechselspannungsklingel nicht vergessen noch eine Einweggleichrichtung und einen passenden Ladekondensator (damit das Relais nicht flattert) einzubauen und schon gibt es eine galvanische Trennung zwischen Klingelanlage und dem Gong.

Matthias Kammerer

Matthias Kammerer

@Alfredo Milone
Diese alten Klingelanlagen haben meist (bei mir auch) ca.8V Wechselspannung. Sollte also funktionieren👌🏻.
Viele Grüße
Matthias

RalfK

RalfK

Coole Idee mit dem Reedkontakt, darauf bin ich nicht gekommen. Das werde ich über Ostern definitiv nachbauen, mal sehen was Dir noch einfällt im Teil 2 :)

Alfredo Milone

Alfredo Milone

Danke für diesen Beitrag. Ich besitze einen Wechselstrom Summer. Es ist eine Spule zu erkennen. Meine Fragen. Funktioniert der Reed Kontakt auch bei meinem Setup? Wie und womit könnte man sein benötigtes Signal vom Summer noch abgreifen? Z.B für einen normalen Türgong.

Matthias Kammerer

Matthias Kammerer

@ Tobias
Du hast vollkommen recht, die vorherige Klingel ist dann aus. Ist aber auch so gewollt. 😄

Zumindest bei mir hatte die originale Spule auch nur einen Widerstand von 6,5 Ohm. Wenn du also auf Nummer sicher gehen willst, dann vorher nachmessen und gegebenenfalls einen passenden Vorwiderstand mit einbauen.

Viele Grüße
Matthias

R. Zirngibl

R. Zirngibl

Tolle Beiträge, sehr kreativ und hilfreich! Dankeschön!

Tobias

Tobias

Wenn ich “die Spannung der Klingel abgreife” und den Draht um den Reedkontakt wickele, ergibt das nicht einen Kurzschluss und setzt die eigentliche Klingel ausser Kraft?
Ausser der Draht wäre entsprechend lang oder hochohmig?

viele Grüße

Flo

Flo

Coole Idee und einfache Realisierung mit dem Reedkontakt. Freue mich auf Teil 2.
VG Flo

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert