Günstige Wireless Motion Sensor Geräte
8 Schritt:Schritt 1: Material Schritt 2: Hardware Schritt 3: Software Schritt 4: Sender Schritt 5: Receiver Schritt 6: Fazit Schritt 7: Wie zu 3 Sender mit einem Empfänger verwenden Schritt 8: Receiver 2.0
Ich glaube, wir alle haben den Traum, um zu einem Superspion, wenn Sie also in einer geheimen Mission sind, sind Sie etwas zu tun, in Ihrem Haus und Sie wollen nicht gefangen, unsere Sie gerade essen alle Cookies in der Küche erhalten und Sie wissen, ob Ihre Mutter kommt, sind die Funk-Bewegungsmelder-Geräte für Sie.
Ich sehe eine Menge von Wireless in de Internet und in Filmen, aber ich möchte, um herauszufinden, wie es billig für alle zu machen, damit ich ein ATtiny85, ein PIR-Sensor (Bewegungssensor) und eine HF-Verbindung, um das Projekt Arbeit zu machen.
Wenn Sie diese proyect folgen Sie bitte mein Blog auf Facebook: (in Spanisch) Facebook-Seite oder geben Sie in meinem Blog Bioespin
Schritt 1: Material
-
Ich mein Material zu bestellen von einem Sparkfun Verteilung in México, da ist, wo ich lebe, aber wenn Sie in den USA leben Sie kaum das gesamte Material von Sparkfun bestellen.
1 PIR-Sensor
http://www.sparkfun.com/products/8630
9.95 dolar
1 HF-Empfänger 315 MHz
http://www.sparkfun.com/products/10533
4.95 dolar
1 rf transmiter 315mhz
http://www.sparkfun.com/products/10535
3.95 dolar
1 ATtiny85
http://www.sparkfun.com/products/9378
2,84 dolar
1 Arduino UNO
1 Schalter
4 Widerstand 180ohm
1 Widerstand 10 kOhm
Schließer-Taste (optional)
1 8-Ohm-Lautsprecher (optional)
1 ic 8 Stecksockel
1pnp Transistor (Sie können die 2N2222 verwenden, schauen Sie doch den Kollektor und Emitter-Pins sind an der richtigen Stelle)
1 LM7805 (5V-Regler)
3 Elekrolytkupfer Kondensatoren 10uF 50V
Schritt 2: Hardware
-
Alle 8 Artikel anzeigen
Wie Sie im Bild alles, was in den Schaltungen sehen arbeitet mit 5 Volt, aber der PIR-Sensor arbeitet mit 9 bis 12 Volt. Um dies zu beheben, und speichern Sie die Arbeit und verbringen Verbinden der Schaltungen zu 2 andere Art von Spannungs ich eine LM7805, das ist ein 5 Volt-Regler, und schließen Sie alles, was zu einer 9V (Quadrat) Batterie.
Wenn Sie eine Leiterplatte, um alle Verbindungen in einem Reinigungsmittel, wie ich eine PDF-Datei setzen unten so können Sie es ausdrucken und übertragen Sie mit der Methode Sie wollen machen wollen.
2-Anschluss nicht in der Konstruktion passen, so y legen Sie sie mit Drähten. (Die beiden Anschlüsse sind die gelben in dem zweiten Bild)
Für den Empfänger sollte ich auch tun, ein ATtiny85 Gerät, aber ich war in kurzer Zeit, so habe ich am Ende macht ein Arduino Schild mit einem Lautsprecher. (Wer möchte die Platine für den ATtiny85 Empfänger bin ich in die Hälfte der Produktion, und ich werde sie später hochzuladen. Dank für das Verständnis).
Wenn Sie die Arduino-Empfänger abschirmen du vorsichtig sein, zu drucken, die untere Kupferseite landet in der Spitze, auch die Stifte in den Boden und Lötzinn wenn die Löcher in der Leiterplatte, sondern auch alle anderen Komponenten sind Lot von der oberen Teil direkt Biegen der Beine. Sie können einen besseren Blick in den 5 bis 8 Bilder haben.
Schritt 3: Software
-
Um den ATtiny85 programmieren können Sie die Arduino UNO als ISP-Programmer verwenden. Sie können diesen Link (siehe http://hlt.media.mit.edu/?p=1706 ) für weitere Informationen zu dieser procces, aber Sie müssen, weil im gonna alles erklären im Detail nicht.
Ich benutze eine ATtiny da ist billiger als ein Arduino nutzen. Sie können einen ATtiny85 für 2.84USD kaufen, zu vergleichen, um ein Arduino für etwa 38 dolars. Mit Hilfe eines ATtiny durch eine HF-Verbindung comunicate stellen eine chalenge weil die ATtiny keine RX- oder TX-serielle Komunikation standardmäßig haben. Ich möchte durch dieses Blog (http://mchr3k-arduino.blogspot.mx/ ) für machen das Programm, das möglich ist, mit einem ATtiny comunicate machen.
Ok. also lassen Sie uns gehen Sie zu Schritt Programmierung Schritt.
1. Rufen Sie die Arduino oficial Website und laden Sie die Arduino-0022-Software. (Verwenden Sie nicht den Arduino 1.0, funktioniert es nicht). Entpacken Sie die Datei. sollten Sie einen Ordnernamen ein Arduino-0022 zu sehen.
2. Gehen Sie auf diesen Link.
http://mchr3k-arduino.blogspot.mx/2012/01/wireless-sensor-node-part-2.html?showComment=1338749638806#c853067277980266192
Laden Sie die attiny45_85.zip und die manchester.zip Dateien.
3. Entpacken Sie die Datei attiny45_85.zip. kopieren Sie den Ordner.
öffnen Sie die Arduino-0022-Ordner. Open Hardware und fügen Sie den Ordner attiny45_85 gibt.
4.Unzip der manchester.zip Datei. zu öffnen, dass Manchester Ordner und Sie sollten zwei weitere Ordner anzuzeigen. Kern und Manchester.
Kopieren de MANCHESTER-Ordner.
Öffnen Sie wieder das Arduino-0022-Ordner. aber dieses Mal öffnen Sie den Ordner Bibliotheken. fügen Sie den MANCHESTER Ordner gibt.
Jetzt haben Sie die Software bereit, zu programmieren.
5. Starten Sie die Arduino-0022-Programm. klicken Sie in den Pfeil poining up (offen) und öffnen Sie die ArduinoISP Beispiel. Klicken Sie in Tools> Board> Arduino UNO. (Sehen Sie nun alle ATtiny in dort).
Laden Sie das Programm.
6. Stellen Sie den ATtiny85 in einer protoboard (Steckbrett), und verbinden Sie everythingh auf die Arduino als das Bild. Shure Seien Sie ATtiny in der richtigen Weise zu setzen oder Sie gehen, um es zu verbrennen. (Mir passiert ist: P).
7. Auf der Arduino-Programm Gehen Sie zu Extras> Board> ATtiny85 (w / Arduino als ISP). klicken Sie erneut auf Tools> Burn Bootloader> w / Arduino als ISP. (Sie eine Fehlermeldung angezeigt, aber das ist ok).
OK, also machen wir das Programm für den Sender.
Schritt 4: Sender
-
Hier ist das Programm für den Sender. Wenn Sie den letzten Schritt zu machen, um jetzt müssen Sie nur noch den Code in der Arduino Programm platzieren und hochladen.
#include <MANCHESTER.h> // sind die Bibliothek, um comunicate
#define TxPin 2 // der Stift, der verwendet wird, um Daten zu senden
unsigned int Tdata = 0; // Die Daten in 0 beginnen
int TRANSISTOR_PIN = 1; // Stift, der EIN und AUS des Transistors schalten
int PIR_SENSOR_PIN = 0; // Der Bewegungssensor pin
Leere setup ()
{
MANCHESTER.SetTxPin (TxPin); // Stellen Sie den Stift von comunication
pinMode (TRANSISTOR_PIN, OUTPUT);
pinMode (PIR_SENSOR_PIN, INPUT);
}
Leere Schleife ()
{
int pirVal = digitalRead (PIR_SENSOR_PIN); // Lesen Sie den Zustand der Bewegungssensor
if (pirVal == LOW) // wenn PIR-Sensor Bewegung erkennt dann
{/ * Aktion, in diesem Fall schalten Sie den Transistor an die Macht
der Sender senden Sie dann die Nachricht,
das Ausschalten des Transistors * /
digital (TRANSISTOR_PIN, HIGH); // Transistor ON
Verzögerung (1000);
Tdata = 50; // Verwende ich 50 als sensor1alarm Nummer aber Sie können die Nummer, die Sie verwenden möchten
// Sicher, dass Sie die gleiche Anzahl in transmiter und Empfänger nutzen
MANCHESTER.Transmit (Tdata); // Das Signal zu übertragen
Verzögerung (100);
digital (TRANSISTOR_PIN, LOW); // den Transistor um Batterie zu sparen
}
Verzögerung (2000);
}
Schritt 5: Receiver
-
für den Empfänger müssen Sie nur noch den arduino programmieren. So gehen Sie auf Extras> Platte und wählen Arduino UNO.
Kopiere diesen Code. und laden Sie sie.
#include <MANCHESTER.h> // sind die Kommunikations-Bibliothek
#define RxPin 6 // definieren Sie den Empfänger pin
#define Lautsprecher 9
#define sensor1alarm 12
#define sensor2alarm 11
#define sensor3alarm 10
Leere setup ()
{
MANCHESTER.SetRxPin (RxPin); // Benutzer stellt rx pin Standard 6
MANCHESTER.SetTimeOut (1000); // Benutzersätze Timeout Standardbausteine
Serial.begin (9600); Nur // Debugging
// Setzen der Stifte in arduino
pinMode (sensor1alarm, OUTPUT);
digital (sensor1alarm, LOW);
pinMode (sensor2alarm, OUTPUT);
digital (sensor2alarm, LOW);
pinMode (sensor3alarm, OUTPUT);
digital (sensor3alarm, LOW);
pinMode (Lautsprecher, OUTPUT);
digital (Lautsprecher, LOW);
} // Ende der Installation
Leere Schleife ()
{
unsigned int data = MANCHESTER.Receive ();
if (Daten == 50) // diese Zahl mit der Sensornummer übereinstimmen
{
digital (sensor1alarm, HIGH); // Auf der sensor1alarm führte schalten
for (int i = 0; i <500; i ++) {// erzeugen ein 1 kHz Ton für 1/2 Sekunde
digital (Lautsprecher, HIGH);
delayMicroseconds (500);
digital (Lautsprecher, LOW);
delayMicroseconds (500);
} // Ende für Lautsprecher
digital (sensor1alarm, LOW); // Ausschalten des sensor1alarm geführt
Verzögerung (500);
} // Ende, wenn
// Fügen Sie hier, wenn Sie einen anderen Sender haben
} // Ende der Schleife
/ *, Wenn Sie mehr als eine transmiter Sie müssen nur eine diferent Nummer an das transmiter geben und kopieren müssen, wenn von (Daten == 50) bis Ende, wenn, und fügen Sie ihn in der Anzeige. und ändern Sie die Zahl 50 auf die Zahl in der anderen Sender. * /
Schritt 6: Fazit
-
Sie können Ihre Sensor in jedem Fall, dass Sie zu platzieren. Ich stelle mir in Getränkedosen, weil ich denke, niemand wird zu prüfen, ob es etwas falsch mit einer Dose. und Sie überall platzieren können und nicht scheint seltsam. So war gerne ein Geheimnis Spion oder einfach nur schützen Sie Ihr Haus von Fremden in der Nacht. die Verwendungen sind endlos, Sie müssen nur Ihre Kreativität setzen, um ein wenig zu arbeiten.
pd (Sie können den Bewegungssensor für eine Vielzahl von anderen Sensoren mit ein wenig Änderungen im Design zu ändern, und Sie können Temperatursensoren, Schallsensoren, Ultraschallsensoren, Gassensoren, Infrarotsensoren und viele andere Sensoren nach einem günstigen haben Preis, der die Dinge aus sicherer Entfernung erfassen kann).
Ich hoffe, Sie genießen diese instructable :), sorry, wenn mein Englisch ist nicht die beste.
Schritt 7: Wie zu 3 Sender mit einem Empfänger verwenden
-
Dies ist der Code für die Verwendung von 3-Bewegungssensoren mit einem Empfänger:
// Das für den Empfänger verwenden
// ************************************************ ***********************************************
#include <MANCHESTER.h> // sind die Kommunikations-Bibliothek
#define RxPin 6 // definieren Sie den Empfänger pin
#define Lautsprecher 9
#define sensor1alarm 12
#define sensor2alarm 11
#define sensor3alarm 10
Leere setup ()
{
MANCHESTER.SetRxPin (RxPin); // Benutzer stellt rx pin Standard 6
MANCHESTER.SetTimeOut (1000); // Benutzersätze Timeout Standardbausteine
Serial.begin (9600); Nur // Debugging
// Setzen der Stifte in arduino
pinMode (sensor1alarm, OUTPUT);
digital (sensor1alarm, LOW);
pinMode (sensor2alarm, OUTPUT);
digital (sensor2alarm, LOW);
pinMode (sensor3alarm, OUTPUT);
digital (sensor3alarm, LOW);
pinMode (Lautsprecher, OUTPUT);
digital (Lautsprecher, LOW);
} // Ende der Installation
Leere Schleife ()
{
unsigned int data = MANCHESTER.Receive ();
if (Daten == 50) // diese Zahl mit der Sensornummer übereinstimmen
{
digital (sensor1alarm, HIGH); // Auf der sensor1alarm führte schalten
for (int i = 0; i <500; i ++) {// erzeugen ein 1 kHz Ton für 1/2 Sekunde
digital (Lautsprecher, HIGH);
delayMicroseconds (500);
digital (Lautsprecher, LOW);
delayMicroseconds (500);
} // Ende für Lautsprecher
digital (sensor1alarm, LOW); // Ausschalten des sensor1alarm geführt
Verzögerung (500);
} // Ende, wenn
else if (Daten == 100) // diese Zahl mit der Sensornummer übereinstimmen
{
digital (sensor2alarm, HIGH); // Auf der sensor1alarm führte schalten
for (int i = 0; i <500; i ++) {// erzeugen ein 1 kHz Ton für 1/2 Sekunde
digital (Lautsprecher, HIGH);
delayMicroseconds (500);
digital (Lautsprecher, LOW);
delayMicroseconds (500);
} // Ende für Lautsprecher
digital (sensor2alarm, LOW); // Ausschalten des sensor1alarm geführt
Verzögerung (500);
}
else if (Daten == 150) // diese Zahl mit der Sensornummer übereinstimmen
{
digital (sensor3alarm, HIGH); // Auf der sensor1alarm führte schalten
for (int i = 0; i <500; i ++) {// erzeugen ein 1 kHz Ton für 1/2 Sekunde
digital (Lautsprecher, HIGH);
delayMicroseconds (500);
digital (Lautsprecher, LOW);
delayMicroseconds (500);
} // Ende für Lautsprecher
digital (sensor3alarm, LOW); // Ausschalten des sensor1alarm geführt
Verzögerung (500);
}
} // Ende der Schleife
// ************************************************ **************************************************
// Das für einen der Sender verwenden
// Sender 1.
#include <MANCHESTER.h> // sind die Bibliothek, um comunicate
#define TxPin 2 // der Stift, der verwendet wird, um Daten zu senden
unsigned int Tdata = 0; // Die Daten in 0 beginnen
int TRANSISTOR_PIN = 1; // Stift, der EIN und AUS des Transistors schalten
int PIR_SENSOR_PIN = 0; // Der Bewegungssensor pin
Leere setup ()
{
MANCHESTER.SetTxPin (TxPin); // Stellen Sie den Stift von comunication
pinMode (TRANSISTOR_PIN, OUTPUT);
pinMode (PIR_SENSOR_PIN, INPUT);
}
Leere Schleife ()
{
int pirVal = digitalRead (PIR_SENSOR_PIN); // Lesen Sie den Zustand der Bewegungssensor
if (pirVal == LOW) // wenn PIR-Sensor Bewegung erkennt dann
{/ * Aktion, in diesem Fall schalten Sie den Transistor an die Macht
der Sender senden Sie dann die Nachricht,
das Ausschalten des Transistors * /
digital (TRANSISTOR_PIN, HIGH); // Transistor ON
Verzögerung (1000);
Tdata = 50;
MANCHESTER.Transmit (Tdata); // Das Signal zu übertragen
Verzögerung (100);
digital (TRANSISTOR_PIN, LOW); // den Transistor um Batterie zu sparen
}
Verzögerung (2000);
}
// ************************************************ ********************************************
// Das für die secod Sender verwenden.
// Sender 2.
#include <MANCHESTER.h> // sind die Bibliothek, um comunicate
#define TxPin 2 // der Stift, der verwendet wird, um Daten zu senden
unsigned int Tdata = 0; // Die Daten in 0 beginnen
int TRANSISTOR_PIN = 1; // Stift, der EIN und AUS des Transistors schalten
int PIR_SENSOR_PIN = 0; // Der Bewegungssensor pin
Leere setup ()
{
MANCHESTER.SetTxPin (TxPin); // Stellen Sie den Stift von comunication
pinMode (TRANSISTOR_PIN, OUTPUT);
pinMode (PIR_SENSOR_PIN, INPUT);
}
Leere Schleife ()
{
int pirVal = digitalRead (PIR_SENSOR_PIN); // Lesen Sie den Zustand der Bewegungssensor
if (pirVal == LOW) // wenn PIR-Sensor Bewegung erkennt dann
{/ * Aktion, in diesem Fall schalten Sie den Transistor an die Macht
der Sender senden Sie dann die Nachricht,
das Ausschalten des Transistors * /
digital (TRANSISTOR_PIN, HIGH); // Transistor ON
Verzögerung (1000);
Tdata = 100;
MANCHESTER.Transmit (Tdata); // Das Signal zu übertragen
Verzögerung (100);
digital (TRANSISTOR_PIN, LOW); // den Transistor um Batterie zu sparen
}
Verzögerung (2000);
}
// ************************************************ *******************************************
// Das für Sender 3 verwenden
// Sender 3.
// Empfänger 2.
#include <MANCHESTER.h> // sind die Bibliothek, um comunicate
#define TxPin 2 // der Stift, der verwendet wird, um Daten zu senden
unsigned int Tdata = 0; // Die Daten in 0 beginnen
int TRANSISTOR_PIN = 1; // Stift, der EIN und AUS des Transistors schalten
int PIR_SENSOR_PIN = 0; // Der Bewegungssensor pin
Leere setup ()
{
MANCHESTER.SetTxPin (TxPin); // Stellen Sie den Stift von comunication
pinMode (TRANSISTOR_PIN, OUTPUT);
pinMode (PIR_SENSOR_PIN, INPUT);
}
Leere Schleife ()
{
int pirVal = digitalRead (PIR_SENSOR_PIN); // Lesen Sie den Zustand der Bewegungssensor
if (pirVal == LOW) // wenn PIR-Sensor Bewegung erkennt dann
{/ * Aktion, in diesem Fall schalten Sie den Transistor an die Macht
der Sender senden Sie dann die Nachricht,
das Ausschalten des Transistors * /
digital (TRANSISTOR_PIN, HIGH); // Transistor ON
Verzögerung (1000);
Tdata = 150;
MANCHESTER.Transmit (Tdata); // Das Signal zu übertragen
Verzögerung (100);
digital (TRANSISTOR_PIN, LOW); // den Transistor um Batterie zu sparen
}
Verzögerung (2000);
}
Schritt 8: Receiver 2.0
-
Einige von euch fragen, ob ich den Empfänger pcb für die Herstellung der Empfänger mit einem ATtiny85 wie der Sender hochzuladen, zu vermeiden, mit dem Arduino UNO. Sooo hier sind die Dateien, um den Empfänger und günstige machen. Ich hoffe, dass ich sie liebe.
Ich lasse die 3 LEDs, wie in der Arduino-Version, sondern der Platzierung einer Lautsprecher y stellen ein Relais, so dass Sie jedes Gerät, Sie können aktivieren. Zum Beispiel Ihr Haus Lichter, ein Alarm oder jedes Gerät, das Sie mögen.
Warnung: Stellen Sie sicher, dass Sie ein Relais für die Spannungs wirst du für die Schaltung zu verwenden zu verwenden. Wenn Sie mit einem 12 V-Relais sind sicher, dass Sie 12v in der BAT1 Platz verwenden
hier ist der Code:
/ ************************************************* ********************************** /
#include // sind die Kommunikations-Bibliothek
#define RxPin 0 // definieren Sie den Empfänger pin
#define Relais 4
#define sensor1alarm 1
#define sensor2alarm 2
#define sensor3alarm 3
Leere setup ()
{
MANCHESTER.SetRxPin (RxPin); // Benutzer stellt rx pin Standard 6
MANCHESTER.SetTimeOut (1000); // Benutzersätze Timeout Standardbausteine
Serial.begin (9600); Nur // Debugging
// Setzen der Stifte in arduino
pinMode (sensor1alarm, OUTPUT);
digital (sensor1alarm, LOW);
pinMode (sensor2alarm, OUTPUT);
digital (sensor2alarm, LOW);
pinMode (sensor3alarm, OUTPUT);
digital (sensor3alarm, LOW);
pinMode (Relais, Ausgang);
digital (Relais, LOW);
} // Ende der Installation
Leere Schleife ()
{
unsigned int data = MANCHESTER.Receive ();
if (Daten == 50) // diese Zahl mit der Sensornummer übereinstimmen
{
for (int i = 0; i <15; i ++)
{
digital (sensor1alarm, HIGH); // Auf der sensor1alarm führte schalten
Verzögerung (500);
digital (sensor1alarm, LOW); // Ausschalten des sensor1alarm geführt
Verzögerung (500);
}
} // Ende, wenn
if (Daten == 100) // diese Zahl mit der Sensornummer übereinstimmen
{
for (int i = 0; i <15; i ++)
{
digital (sensor2alarm, HIGH); // Auf der sensor2alarm führte schalten
Verzögerung (500);
digital (sensor2alarm, LOW); // Ausschalten des sensor2alarm geführt
Verzögerung (500);
}
} // Ende, wenn
if (Daten == 150) // diese Zahl mit der Sensornummer übereinstimmen
{
for (int i = 0; i <15; i ++)
{
digital (sensor3alarm, HIGH); // Auf der sensor3alarm führte schalten
Verzögerung (500);
digital (sensor3alarm, LOW); // Ausschalten des sensor3alarm geführt
Verzögerung (500);
}
} // Ende, wenn
if (Daten == 200) // diese Zahl mit der Sensornummer übereinstimmen
{
for (int i = 0; i <15; i ++)
{
digital (Relais, HIGH); // Das Relais schalten
Verzögerung (500);
}
} // Ende, wenn
} // Ende der Schleife
/ ************************************************* ************************************** /
Fragen schreiben Sie mir in den coments bitte :)