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

Erstellen einer automatisch verriegelnden Bürotür mit Smartphone-Näherungssensor

Pssst – einen High-Tech-Schutz für dein Heimbüro oder ein geheimes Schloss für deine „Werkstatt“ möchtest (ok, du hast mich, es ist eigentlich ein Kerker/Spielzimmer) dass die Kinder es nicht verstehen? Wir geben dir Deckung. Lassen Sie uns ein intelligentes DIY-Schloss bauen, das automatisch erkennt, wenn Sie dort sind, und sperrt, wenn Sie nicht da sind.

Wie funktioniert es? NIEMAND WEISS! Oder genauer gesagt Bluetooth.

Das Konzept

Ihr Smartphone ist ein leistungsstarkes Gerät, das der Außenwelt ständig Informationen über sich preisgibt. eine Möglichkeit, dies zu tun, ist Bluetooth.

Im Discovery-Modus sendet es eine eindeutige Identifikationsnummer – aber selbst wenn es sich nicht ausdrücklich erlaubt, entdeckt zu werden, kann alles, was diese Adresse kennt, versuchen, sie zu pingen. Wenn eine Antwort zu hören ist, zeigt dies an, ob sie in Reichweite ist oder nicht.

Wir werden einen Raspberry Pi mit einem Bluetooth-Adapter einrichten, um ständig darauf zu achten, wenn Ihr Smartphone außer Reichweite ist. Wenn dies der Fall ist, rastet das Relais ein und verriegelt die Tür.

Sie benötigen

Mit Bluetooth arbeiten

Bluetooth ist für dieses Projekt von zentraler Bedeutung. Beginnen wir also mit der Installation von Bluetooth-Unterstützung und testen Sie unseren Adapter. Sie können dies entweder direkt vom Pi aus oder per SSH aus der Ferne tun (wie Sie Windows für SSH in Ihrem Pi einrichten).

sudo apt-get install bluez python-bluez 

Stecken Sie Ihren Dongle ein, falls Sie dies noch nicht getan haben, und sehen wir uns an, was er meldet.

hcitool dev 

Wenn in der Ausgabe etwas aufgeführt ist, können Sie loslegen. Als nächstes verwenden wir ein Python-Skript, um nach Bluetooth-Geräten in der Nähe abzufragen und die eindeutige Geräteadresse zu ermitteln. Wir müssen dies nur einmal für jedes Gerät tun.

wget https://pybluez.googlecode.com/svn/trunk/examples/simple/inquiry.py python query.py 

Wenn Sie „0 Geräte gefunden“ sehen, haben Sie entweder keinen kompatiblen USB-Bluetooth-Dongle oder Ihr Smartphone ist nicht auffindbar. Aber nicht verzweifeln:Ich musste tatsächlich die Bluetooth-Einstellungsseite auf meinem iPhone öffnen, um es in den Erkennungsmodus zu versetzen, dann passierte Folgendes:

Großartig, jetzt erstellen wir die erste Stufe unserer Software, die die Erkennung durchführt. Erstellen Sie eine Python-App namens detect.py , und öffnen Sie es mit Nano.

nano-detektieren.py 

Fügen Sie diesen Beispielcode ein:

#!/usr/bin/python import bluetooth import time while true:print "Checking " + time.strftime("%a, %d %b %Y %H:%M:%S", time.gmtime()) result =bluetooth.lookup_name('78:7F:70:38:51:1B', timeout=5) if (result !=None ):"Benutzer anwesend" drucken sonst:"Benutzer außerhalb der Reichweite" drucken time.sleep(10)  

und passen Sie die folgende Zeile mit Ihrer Bluetooth-Geräteadresse an:

Ergebnis =bluetooth.lookup_name('78:7F:70:38:51:1B', timeout=5) 

Drücken Sie STRG-X und J zu schließen und zu speichern. Führen Sie denselben Code aus und Sie sehen Folgendes:

Der Code sollte sehr einfach zu verstehen sein, auch wenn Sie Python noch nie zuvor berührt haben:Er sucht alle 10 Sekunden nach einem bestimmten Bluetooth-Gerät und druckt eine andere Nachricht aus, je nachdem, ob es gefunden wird oder nicht. Schalten Sie Bluetooth auf Ihrem Telefon um, um das Bewegen in und aus der Reichweite zu simulieren (in der Realität wahrscheinlich etwa 4 m). Sie können die Zeit zwischen den Scans verkürzen oder verlängern, aber ich hielt 10 Sekunden für eine angemessene Zeit, um möglicherweise warten zu müssen, bis sich die Tür öffnet, und das ist schließlich der Punkt, an dem wir mit diesem ganzen Projekt arbeiten.

Ich sollte hinzufügen, dass ich den Stromverbrauch nicht kenne, aber ich würde annehmen, dass ein häufigeres Pingen eines Geräts zwangsläufig mehr Strom verbrauchen würde. Ich habe beim Testen keine offensichtlichen Leistungsprobleme festgestellt, aber wenn die Batterielebensdauer ein ernsthaftes Problem für Sie ist, sollten Sie in Ihrem Büro einen Schalter verwenden, der die Scanschleife aktiviert und deaktiviert. Wenn Sie also drinnen sind, können Sie die Sperre anhalten und reaktivieren Sie das Scannen, wenn Sie das System verlassen.

Herzlichen Glückwunsch, Sie haben jetzt eine Python-App, die weiß, wann Sie sich in Reichweite befinden, damit wir entsprechend handeln können.

GPIO-Board-Modi

Bevor Sie fortfahren, müssen Sie herausfinden, welchen Board-Modus Sie verwenden werden. Es gibt keine richtige oder falsche Antwort, es beeinflusst nur, ob Sie die wörtliche Pinnummer oder die virtuelle GPIO-Pinnummer angeben.

Standardmäßig wird die wörtliche Pinnummer („Board-Modus“) verwendet, beginnend mit Pin 1 unten links (wenn man auf den Pi mit den USB-Ports rechts unten schaut). Pin 2 liegt direkt darüber.

Wenn Sie jedoch ein GPIO-Breakout-Board („Schuster“) haben, stammen die Beschriftungen, die Sie haben, aus einem alternativen Modus, der als „BCM“ (Broadcom SOC-Kanal) bezeichnet wird und normalerweise mit GPIO oder P vor der Nummer geschrieben wird. Sie brauchen nicht unbedingt einen GPIO-Breakout – es macht die Dinge nur einfacher. Wenn Sie kein Breakout-Board haben und keins kaufen möchten, verwenden Sie dieses Diagramm:

Beachten Sie, dass das ursprüngliche Modell B Revision 1, Revision 2 und das Modell B+ und Pi2 alle unterschiedliche Pinbelegung haben. In dieser StackExchange-Frage finden Sie ein Diagramm, das zu Ihrem Board passt.

In diesem Projektcode verwende ich das BCM GPIO-Nummerierungssystem, das dem von mir verwendeten Adafruit-Breakout-Board entspricht. Wenn Sie den wörtlichen Pin-Modus verwenden möchten, sind geringfügige Änderungen erforderlich.

Draht in einem Relais

Bringen Sie die Breakout-Platine an und stellen Sie sicher, dass der Draht von den Pins 1 und 2 (die in der Ecke Ihres Pi) an 3v3 und 5V0 am Breakout befestigt ist. Vielleicht möchten Sie einen Spannungsprüfer herausziehen, um dies zu überprüfen.

Bevor Sie fortfahren, überprüfen Sie, ob jemand anderes Ihr spezielles Relais mit dem Raspberry Pi verwendet hat (oder suchen Sie vorher eines, von dem Sie wissen, dass es funktioniert). Einige benötigen möglicherweise 5 V zur Aktivierung – aber der RPi kann nur 3,3 V an den GPIO-Ausgangspins bereitstellen. Zufällig ist der, den ich verwende, mit 3,3 V zufrieden, daher brauchte ich keine zusätzlichen Schaltkreise, nur die 5V0 zu VCC , GND zu GND , und GPIO-Pin 23 für den ersten Relaiseingang .

Mein vorheriges Tutorial zu GPIO hat gezeigt, wie man eine Transistorschaltung verdrahtet, um bei Bedarf 3,3 V auf volle 5 V zu skalieren (tatsächlich habe ich die gleiche Relaisplatine für dieses Tutorial verwendet, aber es stellte sich heraus, dass ich keine 5 V brauchte immerhin).

Der Elektromagnet muss noch nicht verkabelt werden, da Sie beim Auslösen des Relais ein hörbares Klicken hören können.

Als nächstes holen wir uns etwas Code, um mit den GPIO-Ports zu interagieren.

Wir beginnen mit Tests außerhalb von Python, um zu bestätigen, dass alles an den Ports selbst funktioniert. Installieren Sie wiringPi, das Ihnen einige nützliche Befehlszeilentools bietet.

git clone git://git.drogon.net/wiringPi cd wiringPi ./build 

Konfigurieren Sie nach der Installation den GPIO-Pin 23 als Ausgang.

gpio -g mode 23 out 

Führen Sie nun einen schnellen Scan aller Ports durch, um dies zu bestätigen

gpio -g readall 

Sie werden etwas Ähnliches haben, obwohl Ihres bei einem Modell B+ oder Pi2 länger sein kann, da es mehr GPIO-Pins hat:

Für weitere Details:Erstellen Sie eine automatisch verriegelnde Bürotür mit einem Smartphone-Näherungssensor


Herstellungsprozess

  1. Banktresor
  2. Einfache Näherungssensorschaltung und Arbeiten mit Anwendungen
  3. Betrachten Sie das Problem Nr. 1 bei Bluetooth-basierten intelligenten Sensornetzwerken
  4. Cypress:Bluetooth-MCUs bieten Mesh-Netzwerke mit allgegenwärtiger Smartphone-Konnektivität
  5. Linienverfolgungssensor mit RPi
  6. Umgebungssensor-API mit einem RPi
  7. Ein einfacher analoger Näherungssensor mit digitaler Schnittstelle (für Raspberry Pi) [letztes Update:7. Februar 2014]
  8. Portenta- und Thermoelement-Sensor (mit MAX6675)
  9. CO2-Überwachung mit K30-Sensor
  10. Arduino mit Bluetooth zur Steuerung einer LED!