Widerstände


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Babysitter mit Arduino

Der elektronische Babysitter, auch bekannt als Babyphone oder elektronisches Babyphone, ist ein äußerst praktisches Gerät, das zu günstigen Preisen bestimmte Aufgaben eines Kindermädchens übernehmen kann. Das Gerät ist an alle fürsorglichen Eltern adressiert, die immer, egal wo sie sind, wissen möchten, was mit ihrem Kind passiert. Der elektronische Babysitter besteht aus zwei Elementen: Einem Sender und einem Empfänger, und stellt ein einfaches Überwachungssystem dar. Während das Kind schläft, wird der Sender im Babyzimmer positioniert. Seine Aufgabe ist es, zu erkennen, ob das Kind gerade ruhig schläft oder aufgewacht ist und weint. Der Empfänger befindet sich in der Nähe der Eltern und meldet ihnen mit akustischen Signalen, was im Zimmer ihres Kindes passiert.
In diesem Versuch konstruieren wir einen einfachen elektronischen Babysitter, der mit einem akustischen Signal den Eltern die Info liefert, ob das Kind gerade ruhig schläft oder weint.
Die Kindesgeräusche werden von dem Sender mit einem Mikrofon erkannt und via Funk weitergesendet. Zusätzlich verfügt der Sender über eine Kontrollleuchte (Leuchtdiode), mit der das Gerät auf seine Betriebstüchtigkeit geprüft werden kann. Bei jedem erkannten Geräusch leuchtet die LED kurz auf.
Der Empfänger ist ebenfalls mit einer Kontrollleuchte (Leuchtdiode) ausgestattet. Sie leuchtet bei jedem Empfang kurz auf. Sendet der Sender in bestimmten Zeitintervallen dauerhaft, was darauf schließen lässt, dass das Kind weint, leuchtet die Kontrollleuchte dauerhaft und es ertönt zusätzlich ein akustisches Signal.

Mikrocontroller Sender und Empfänger

Die Auswertung der Signale und Ansteuerung der Komponenten sowohl in der Sender- als auch in der Empfängerschaltung übernimmt Arduino Nano. Somit kommen in unserem Babysitter zwei Arduinos zum Einsatz. Beide Mikrocontroller sind mit der jeweiligen Aufgabe „unterfordert“. Es stehen demnach ausreichend Pins und Speicherplatz für diverse Erweiterungen bzw. Optimierungen zur Verfügung.

Arduino Nano
Arduino

Betriebsspannung

Beide Schaltungen, so Sender als auch Empfänger, arbeiten mit 5VDC. Dafür sorgen zwei Spannungsregler, die die Batteriespannung auf 5V herunterregeln. Da die Stromaufnahme pro Schaltung ca. 30 mA beträgt, reichen die einfachen L78L05AC aus. Die Regler sind mit einem Strom bis zu 100 mA belastbar.

Spannungsregler 5V


Sender

Sendermodul

Der Sender unseres Babysitters besteht hauptsächlich aus fünf Bauteilen: einem Spannungsregler, einem Sendermodul, Mikrofon, Mikrocontroller (Arduino Nano) und einer Kontrollleuchte (Leuchtdiode mit Vorwiderstand). Bei dem Sendermodul, an das eine Antenne angelötet wurde, handelt es sich um eine Miniplatine mit der Bezeichnung FS1000A.

Funk-Sendermodul FS1000A

Funk-Sendemodul FS1000A

Mikrofon

Auch Mikrofon wird in der Form eines Moduls eingesetzt. Es handelt sich um das Mikrofonmodul MAX9814.

Mikrofonmodul

Das Modul basiert auf dem Chip Max9814. Der Versorgungsspannungsbereich beträgt 2,7 V bis 5,5 V. Weitere Infos unter:

Mikrofon MAX9814

Schaltplan Sender

Schaltplan



Testschaltung Sender

Testschaltung



Programm (Sketch) - Sender

// *******************************************************************************************
// Babysitter mit Arduino
// Babysitter - Sender mit Funkmodul, Mikrofon und Arduino Nano
// Arduino IDE 2.3.5
// *******************************************************************************************

#include <RCSwitch.h>                            // Bibliothek einbinden

RCSwitch mySwitch = RCSwitch();                  
int Sende_Pin = 10;                              // Sendemodul ist an Pin D10 angeschlossen
int Mikrofon_Signal = A0;                        // Mikrofon Anschluss
int LED_Anzeige = 4;                             // Kontrollleuchte am Pin D4

int Signal;                                      // Zwischenwert analoger Eingang

// *******************************************************************************************
void setup() {

    mySwitch.enableTransmit(Sende_Pin);          // Senden initieren
    pinMode(LED_Anzeige, OUTPUT);                // Pin Kontrollleuchte als Ausgang def.
}

// *******************************************************************************************
void loop() {
      
    Signal = analogRead(Mikrofon_Signal);        // Wert analoger Eingang auslesen  
    if (Signal > 500) {                          // Mikrofon meldet Geräusche
        digitalWrite (LED_Anzeige, HIGH);        // Kontrollleuchte kurz EIN
        mySwitch.send (17493, 24);               // 
        delay(500);                              // Wartezeit 500 ms
    } 
    digitalWrite (LED_Anzeige, LOW);
} 
// *******************************************************************************************    
  


Empfänger

Empfängermodul

Die Empfängerschaltung besteht ebenfalls wie die Schaltung des Senders aus fünf Bauteilen: Einem Spannungsregler, einem Sendermodul, einem Mikrofon, einem Mikrocontroller (Arduino Nano) und einer Kontrollleuchte (Leuchtdiode mit Vorwiderstand). Bei dem Empfängermodul, an das ebenfalls eine Antenne angelötet wurde, handelt es sich um eine Miniplatine mit der Bezeichnung MX-RM-5V.

Empfängermodul


Signalgeber

Als akustischer Signalgeber kommt in der Empfängerschaltung ein aktiver Summer zum Einsatz. Die Ansteuerung eines solchen Signalgebers ist äußerst einfach: Spannung EIN reicht aus. Aktive Summer sind mit eigener Elektronik ausgestattet, die automatisch dafür sorgt, dass bei angelegter Spannung ein akustisches Signal ausgegeben wird.

Summer aktiv


Schaltplan Empfänger

Schaltplan Empfänger


Testschaltung Empfänger

Testschaltung Empfänger


Programm (Sketch) - Empfänger

// *******************************************************************************************
// Babysitter mit Arduino
// Babysitter - Empfänger mit Funkmodul, Summer und Arduino Nano
// Arduino IDE 2.3.5
// *******************************************************************************************
#include <RCSwitch.h>                            // Bibliothek einbinden

RCSwitch mySwitch = RCSwitch();                  
int Summer_Pin = 3;                              // Sendemodul ist an Pin D10 angeschlossen
int LED_Anzeige = 4;                             // Kontrollleuchte am Pin D4

int Zaehler;                                     // Aktuelle Anzahl der Meldungen vom Sender
int Zaehler_Max = 5;                             // Nach 5 Meldungen Baby Alarm
int Baby_Alarm_Zeitintervall = 7000;             // Zeitspanne für Zählung der Meldungen
bool Baby_Alarm;                                 // Bei TRUE Baby Alarm ausgelöst
unsigned long Millis_Aktuell;                    // Zeit aktuell in Millisekunden
unsigned long Millis_Start;                      // Zeit beim Start der Zeitmessung
bool Zeit_Messung_gestartet;                     // Zeitmessung bei TRUE


// *******************************************************************************************
void setup() {

    mySwitch.enableReceive(0);                   // Empfang initieren
    pinMode(LED_Anzeige, OUTPUT);                // Pin Kontrollleuchte als Ausgang
    pinMode(Summer_Pin, OUTPUT);                 // Pin Summer als Ausgang
}

// *******************************************************************************************
void loop() {
      
    if (mySwitch.available()) {                          // Meldung vom Sender
        if  (mySwitch.getReceivedValue() == 17493) {     // Sendewert
            digitalWrite (LED_Anzeige, HIGH);            // Kontrolleuchte EIN
            delay (500);                                 // Wartezeit
            mySwitch.resetAvailable();                   // Reset
            Zaehler++;                                   // Zähler hochzählen
            if (Zaehler == 1 and not Zeit_Messung_gestartet) {    
                Zeit_Messung_gestartet = true;           // Zeitmessung Start
                Millis_Start = millis();                 // Startzeit festhalten
            }
        }
    }
       
                                                         // Werte zurücksetzen
    if (millis() - Millis_Start > Baby_Alarm_Zeitintervall and not Baby_Alarm) {
        Zeit_Messung_gestartet = false;
        Zaehler = 0;
    }
                                                         // Alarm auslösen
    if (Zaehler == Zaehler_Max and Zeit_Messung_gestartet) {
        if ((millis() - Millis_Start) <= Baby_Alarm_Zeitintervall) {
                Baby_Alarm = true;
        }       
    }

    if (Baby_Alarm) {                                    // Alarm ausgelöst
        for (int i=0; i<10; i++) {
            digitalWrite (LED_Anzeige, HIGH);            // LED EIN
            digitalWrite (Summer_Pin, HIGH);             // Summer EIN
            delay (500);                                 // Wartezeit
            digitalWrite (LED_Anzeige, LOW);             // LED AUS
            digitalWrite (Summer_Pin, LOW);              // Summer AUS
            delay (500);                                 // Wartezeit
        }
        Baby_Alarm = false;                              // Alarm-Abschaltung
        Zaehler = 0;                                     // Zähler zurücksetzen
    }

    digitalWrite (LED_Anzeige, LOW);                     // LED AUS
} 

// *******************************************************************************************    
  


Kurzvideo

Kurzvideo


Weitere Themen:



Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz