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

Günstiges drahtloses Sensornetzwerk für Zuhause selbst bauen

Überblick

Dieses Tutorial zeigt, wie Sie ein Netzwerk kostengünstiger, drahtloser Sensormodule erstellen. Viele fertige Funkmodule sind für den Einsatz in mehreren Sensoreinheiten zu teuer. Während Wi-Fi- und Zigbee-Module beliebt und einfach zu nutzen sind, macht ihr Preis den Einsatz in Sensorarrays oft unpraktisch. Es gibt jedoch preiswerte RF-Module ohne teure Zusatzfunktionen, die für diese Zwecke hervorragend funktionieren. Die Arduino-Plattform kann Low-End-Funkmodule einfach und zuverlässig zur Kommunikation nutzen.

Nach dem Hardwareaufbau nutzen Sie die Raspberry Pi-Plattform, um die Daten an Xively's Internet-of-Things-Service zu senden, wo Sie Werte zeitlich verfolgen und bei Schwellenwerten Aktionen auslösen können.

Komponenten & Werkzeuge zusammenstellen

Das Projekt umfasst drei Teile: zwei Sendereinheiten und eine Empfängereinheit. Die Sender bestehen aus Arduino-Board, Sensor und RF-Sender. Die Empfängereinheit setzt sich aus Arduino-Board, RF-Empfänger, Logic-Level-Converter und Raspberry Pi zusammen.

Es gibt eine breite Palette Arduino-kompatibler Boards. Mindestanforderung für dieses Projekt sind zwei digitale GPIO-Pins und ein analoger Pin. Wählen Sie ein Board, das Kosten- und Simplizitätsanforderungen entspricht.

In diesem Tutorial verwende ich Arduino Nano Boards, die gut ins Breadboard passen und einfach zu programmieren sind. Die 5V-Versionen von Arduino Pro Mini oder Trinket funktionieren ebenfalls gut und zu deutlich niedrigerem Preis, erfordern aber etwas mehr Erfahrung. Wählen Sie weise.

Empfänger

Sender (zwei Einheiten)

Werkzeuge

Sender aufbauen

Die Sender sind relativ einfache Schaltungen. Ein Pin liest den Temperatur/Feuchtigkeitssensor, ein weiterer sendet die Daten an den RF-Sender. Das Breadboard-Layout ist unten dargestellt.

Das 9V-Netzteil verbindet sich mit der Buchse, wodurch die unteren Schienen 9V führen. Der Spannungsregler im Arduino erzeugt 5V für Funkmodul und Sensoren (obere Stromschiene im Diagramm).

Der Sensor bringt einen 10 kΩ Pull-Up-Widerstand mit, der den Datenpin mit VCC verbindet, während ein weiterer Draht ihn an GPIO D3 anschließt.

Achten Sie darauf, dem Aufbau exakt zu folgen und das Datenblatt von Sensor und RF-Modul zu prüfen, damit Komponenten korrekt im Breadboard positioniert sind und Strom-, Masse- und Signalpins an die richtigen Pins angeschlossen sind. Das Fritzing-Diagramm ist im Quellpaket enthalten.

Die Antenne ist wichtig, da das RF-Modul keine eingebaute Antenne hat. Ich nutzte ein 6-Zoll Female-to-Male Jumperkabel, das in das Breadboard gesteckt wurde – es funktionierte gut genug für Empfang in allen Bereichen meines Hauses und etwas draußen. Wie im Diagramm vermerkt, ist 6,5 Zoll optimal für zusätzliche Reichweite.

Hinweis zu RF-Nutzung: In verschiedenen Ländern gelten unterschiedliche Gesetze und Regeln zur Frequenznutzung. Stellen Sie sicher, dass Sie diese einhalten, bevor Sie senden. Die Signale dieser Module sind kaum stark genug, um das Haus zu verlassen. Unter idealen Bedingungen können sie bis zu 500 Fuß (ca. 150 m) reichen.

Bibliotheken für Komponenten herunterladen

Der Sender nutzt zwei Bibliotheken, die nicht im Arduino IDE enthalten sind. Laden Sie sie wie folgt herunter und entpacken Sie in Ihr Sketch-Verzeichnis in einen Unterordner namens Libraries.

Arduino Board programmieren

Dieses Tutorial setzt grundlegende Arduino-Erfahrung voraus. Falls nicht, finden Sie gute Anleitungen auf der offiziellen Arduino-Seite.

12345 #define MYID 1 //die ID-Nummer dieses Boards. Für jedes geflashte Board ändern. //Die ID wird mit den Daten übertragen, damit Sie erkennen können, welches Gerät sendet #define TRANSPIN 3 //welcher Pin zum Senden genutzt wird #define DHTPIN 4 // an welchem Pin der DHT angeschlossen ist #define UNIT 0 // 0 für Fahrenheit, 1 für Celsius

Der MYID define ist eine numerische ID, die der Sender zur eindeutigen Identifikation nutzt. Da Sie mehrere Sender an verschiedenen Orten betreiben, ist eine einzigartige ID für jeden wichtig. Diese Nummer wird wieder verwendet, wenn Sie das Empfängerskript einrichten.

Der Serial Monitor setzt den Arduino zurück, Sie sollten eine Zeile sehen wie:

12 Humidity: 44.00 % Temperature: 60.80 *F Sending Message: ID:1:TS:23143:TF:60.79:RH:44.00

Die Nachricht besteht aus Name:Value-Paaren, die der Empfänger verarbeitet. Der Sender liest und sendet sein Signal in einem langen zufälligen Intervall. Da sich Sensordaten nicht stark oder häufig ändern, bringt häufigeres Senden als einmal pro Minute keinen Mehrwert. Die zufällige Wartezeit erlaubt mehreren Sensoren die Koexistenz.

Selbst bei Kollision und Verlust beider Signale sorgt das zufällige Intervall dafür, dass die nächsten Sendungen nicht überlappen. Der Zufalls-Seed wird von einem analogRead an einem ungenutzten Analogport gesetzt, der zufällige Werte liefert, damit keine zwei Sender im gleichen Muster senden.

Der Beispielcode oben nutzt Fahrenheit. Man sieht TF:60.79 in der Nachricht – mein Labor ist knapp unter 61 °F. Die relative Luftfeuchte RH:44.00 ist angenehme 44 %. Man könnte schließen, dass mein Labor im Keller ist. Wäre man richtig.

Sender warten standardmäßig 2 bis 5 Minuten zwischen Sendungen. Zum Debuggen können Sie den delay()-Wert am Sketch-Ende auf 5000 (ms) ändern. Für den Dauerbetrieb dringend empfohlen, den Wert zurückzusetzen und den Code neu hochzuladen.

Empfängerboard aufbauen

Das Empfängerboard empfängt die Broadcast-Nachricht über seinen RF-Empfänger und leitet sie über serielle Leitungen an den Raspberry Pi weiter. Der Arduino wird für den Empfang aus zwei wichtigen Gründen genutzt: Der VirtualWire-Code nutzt die Echtzeitfähigkeit des Arduino zum Modulieren und Demodulieren des Signals.

Das bedeutet, die Empfangseinheit muss auf der gleichen Frequenz arbeiten. Zudem gibt es wenig Spielraum für Jitter auf dem empfangenden Prozessor, wozu der Raspberry Pi aufgrund seines präemptiven, nicht echtzeitfähigen Betriebssystems neigt. Der Kostenvergleich von Arduino Pro Mini plus RF-Empfänger gegen ein Zigbee-Modul, das direkt mit dem Pi sprechen könnte, zeigte, dass der externe Arduino immer noch sehr ökonomisch ist.

An diesem Punkt die 5V- und Masse-Leitungen vom Pi NICHT an das Breadboard anschließen. Jumperkabel griffbereit halten, aber Sie wollen den Arduino nicht sowohl über USB als auch über den Pi mit Strom versorgen.

Beachten Sie, dass der Logic Level Converter in der Materialliste nicht exakt dem im Fritzing-Library entspricht, aber die Pin-Bezeichnungen sind gut beschriftet, nur an anderen Positionen. Stellen Sie sicher, dass die korrekten Drähte an die korrekten Pins des tatsächlichen Converters angeschlossen sind.

Dieses Bauteil ist erforderlich, um das 5V Arduino-Serialsignal auf 3,3V Raspberry Pi-Serialsignal zu wandeln und den Pi nicht zu beschädigen. Siehe Bild unten für zusätzliche Hilfe.

Für weitere Details: Building a Wireless Sensor Network in Your Home

Herstellungsprozess

  1. Wireless Sensor Networks wechseln: 6 Schlüsselfaktoren für Technologie-Migration
  2. Low-Power Wireless Sensor Networks verstehen: Effiziente IoT-Lösungen antreiben
  3. Zuverlässiger kabelloser Einfahrtssensor für lange Einfahrten – Einfache Raspberry Pi Integration
  4. Drahtloses Sensornetzwerk in einer Mühle des 18. Jahrhunderts einsetzen
  5. Deploying und Managing Wireless Sensor Networks im Enterprise
  6. Kabellose Datenübertragung per Magnetfeld: Arduino & Infineon 3D-Sensor (TLE493D)
  7. K30 CO₂-Sensor: Echtzeit-Luftqualitätsmessung mit Arduino
  8. Digitales Stadiometer bauen: Körpergröße messen mit Arduino & Lasersensor VL53L0X
  9. DFRobot Kapazitiver Fingerabdrucksensor mit Arduino oder ESP8266 einbinden
  10. Robuste Langstrecken-Funk-Sensornetzwerke für Fernüberwachung