Bauen Sie mit einem ESP8266 und NodeMCU einen Personenzähler für 30 $
Ein Personenzähler ist ein Gerät, mit dem die Anzahl der Personen gemessen wird, die einen Eingang, einen Flur, eine Straßenecke usw. durchqueren. Wenn Sie wissen möchten, wie viele Personen sich in einem Raum aufhalten, ist dies Ihre einfache Lösung. Wird typischerweise in Einzelhandelsgeschäften, Großveranstaltungen und intelligenten Bürogebäuden eingesetzt. Diese Zähltechnologie hat Erkenntnisse sowohl über die Anzahl der Körper in einer Umgebung als auch über deren Verhalten geliefert. Stellen Sie sich vor, Sie wären der Ladenbesitzer. Dieser Zähler informiert Sie über die täglichen Besucher, die genutzten Wanderwege, die häufigsten Haltepunkte und wie lange sich eine Person an einem Ort aufhält. Möchten Sie nicht wissen, welche Materialien/Produkte die meiste Aufmerksamkeit erregen? Mit dieser Erkenntnis kann ein Vermarkter Produkte geografisch neu positionieren, um die Bekanntheit zu steigern. Dies kommt den Bedürfnissen Ihrer Kunden und Ihrem Geschäftsergebnis zugute.
In dieser Anleitung erfahren Sie, wie Sie Ihren eigenen, selbstgebauten Personenzähler bauen. Außerdem sind Anweisungen für die Nutzung Ihrer neu erfassten Daten über Ubidots , eine Plattform zur Anwendungsaktivierung, enthalten.
Erforderliche Materialien
- ESP8266 NodeMCU
- PIR-Bewegungssensor
- Weiblich – weibliche Drähte
- Schutzhülle aus Kunststoff
- MicroUSB-Kabel
Verkabelung und Gehäuse
Wie Sie sehen können, verfügt der Bewegungssensor über drei Pins: V+, Masse und einen dritten für Ausgangssignale („1“ = Bewegung und „0“ statische Umgebung). Schließen Sie zunächst die Kabel direkt an die Pins Ihrer NodeMCU an. Folgen Sie dabei der Tabelle und dem Diagramm unten:
NodeMCU | PIR-Sensor | NodeMCU | LED | |
---|---|---|---|---|
GND | GND | GND | GND | |
D6 | AUS | D4 | VCC | |
3,3 V | VCC |
Da der PIR-Bewegungssensor sehr empfindlich auf Bewegungen reagiert, habe ich einen Jumper-Schalter dahinter verwendet, um die niedrigste Empfindlichkeit einzustellen. Ich habe auch die Linsenecken übermalt, um den Fokus auf einen bestimmten Raum statt auf die Kugel zu richten. (Beschränken Sie sich nicht, Sie können erkunden und innovativ sein.) Die Ergebnisse dieser wenigen zusätzlichen Minuten Arbeit führen zu dem unten abgebildeten, benutzerfreundlichen, geschlossenen Gerät.
Nachdem das Gehäuse und das Gerät zusammengesetzt sind, müssen wir uns nun mit der Arduino IDE verbinden.
Verbinden Sie zunächst Ihre NodeMCU über den Micro-USB-Anschluss mit dem Anschluss Ihres Computers
HINWEIS Arduino IDE noch nicht haben , klicken Sie hier, um sie herunterzuladen
1.- Öffnen Sie die Arduino IDE und wählen Sie Datei -> Einstellungen. Geben Sie als Nächstes die folgende URL in das Textfeld „Zusätzliche Board-Manager-URLs“ Bei Bedarf können Sie mehrere URLs hinzufügen, indem Sie diese durch Kommas trennen.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
HINWEIS : Wenn Sie ein Mac-Benutzer , beachten Sie bitte, dass Arduino im Vergleich zum Windows-Betriebssystem andere Dropdown-Funktionen enthält. Außerdem müssen Sie den folgenden Treiber , um Ihre NodeMCU hochladen zu können.
2.- Öffnen Sie den Boards Manager über das Menü „Extras -> Board“ und installieren Sie die ESP8266-Plattform. Um einfach das richtige Gerät zu finden, suchen Sie in der Suchleiste ESP8266
3.- Wählen Sie Ihr NodeMCU 1.0 (ESP-12-Modul) aus „Extras“ > „Board“ .
Darüber hinaus müssen wir in der Lage sein, mit der NodeMCU zu kommunizieren; Wählen Sie den richtigen COM-Port für Ihr Gerät aus.
Gehen Sie zu Extras > Port > Wählen Sie den entsprechenden PORT für Ihre Computer-/Geräteverbindung aus.
Damit alles schnell und reibungslos läuft, stellen wir außerdem sicher, dass die Upload-Geschwindigkeit auf 115200 optimiert ist.
Gehen Sie zu Extras > Upload-Geschwindigkeit > 115200:
4.- Als nächstes müssen wir die Ubidots MQTT ESP-Bibliothek von Github herunterladen. Öffnen Sie dazu hier , laden Sie die Bibliothek herunter, indem Sie auf die grüne Schaltfläche „ Klonen oder herunterladen “ klicken und wählen Sie „ ZIP herunterladen “.
5.- Gehen Sie nun zurück zu Ihrer Arduino IDE und klicken Sie auf Skizze -> Bibliothek einschließen -> .ZIP-Bibliothek hinzufügen
6.- Wählen Sie die .ZIP-Datei von ubidots MQTTESP und klicken Sie dann auf „ Akzeptieren “ oder „ Auswählen “.
Bei Erfolg erhalten Sie unten in der Arduino IDE die folgende Meldung, die Ihre Bibliothek bestätigt:
7.- Als nächstes gehen Sie zu Sketch/Programm -> Bibliothek einbinden -> Bibliotheksmanager und installieren Sie die PubSubClient -Bibliothek. Um einfach die richtige Bibliothek zu finden, suchen Sie in der Suchleiste PubSubClient
8.- Schließen Sie die Arduino IDE und öffnen Sie sie erneut. Dieser Neustart ist erforderlich. Bitte verpassen Sie diesen Schritt nicht!!
Jetzt ist es an der Zeit, mit dem Codieren zu beginnen 🙂
Kopieren Sie den folgenden Code und fügen Sie ihn in die Arduino IDE ein.
Nachdem Sie den Code kopiert haben, müssen Sie die Parameter zuweisen: WLAN-Name und Passwort sowie Ihr individuelles, einzigartiges Ubidots -TOKEN. Wenn Sie nicht wissen, wie Sie Ihren Ubidots -TOKEN finden, lesen Sie bitte den folgenden Artikel.
// Hergestellt von: Maria Carlina Hernandez /**************************************** * Bibliotheken einschließen ****************************************/ #include " Ubidots ESPMQTT.h " /**************************************** * Konstanten definieren ***** ***********************************/ #define TOKEN „…“ // Dein Ubidots TOKEN # define WIFINAME „…“ //Ihre SSID #define WIFIPASS „…“ // Ihr WLAN-Pass #define DEVICE „pir-sensor“ // Weisen Sie die Gerätebezeichnung zu. #define VARIABLE „motion“ // Weisen Sie die Variablenbezeichnung zu #define LED 2 #define SENSOR D6 uint8_t counter=0; vorzeichenloser langer Zustand = 0; Ubidots -Client (TOKEN); /**************************************** * Hilfsfunktionen ****** **********************************/ void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Nachricht angekommen ["); Serial.print(topic); Serial.print("] "); für (int i=0;i <length;i++) { Serial.print((char)payload[i]); } Serial.println(); } /**************************************** * Main Functions ****************************************/ void setup() { // put your setup code here, to run once: Serial.begin(115200); pinMode(SENSOR, INPUT); pinMode(LED, OUTPUT); client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback); } void loop() { // put your main code here, to run repeatedly: if (!client.connected()) { digitalWrite(LED, LOW); client.reconnect(); digitalWrite(LED, HIGH); } else { digitalWrite(LED, HIGH); } uint8_t sensorValue = digitalRead(SENSOR); bool flag = false; if(sensorValue> 0){ for(uint8_t wait=0; wait<=4; wait++){ sensorValue = digitalRead(SENSOR); Serial.println(sensorValue); if(sensorValue==1){ counter++; } if(counter>3){ flag = true; } Verzögerung(500); } } Serial.println("sending data"); uint8_t-Wert; if(flag){ value = 1; client.add(VARIABLE, Wert); Kunde. ubidots Publish(DEVICE); }else{ Wert = 0; if(state == 10000){ client.add(VARIABLE, value); Kunde. ubidots Publish(DEVICE); Zustand = 0; } } state++; client.loop(); Zähler = 0; }
Nachdem Sie den Code eingefügt und die WLAN-Parameter aktualisiert haben, müssen Sie dies in der Arduino IDE überprüfen. Dazu sehen Sie in der oberen linken Ecke unserer Arduino-IDE die folgenden Symbole. Wählen Sie das Häkchen-Symbol, um einen beliebigen Code zu bestätigen.
Sobald der Code überprüft wurde, erhalten Sie in der Arduino IDE die Meldung Kompilierung abgeschlossen
Als nächstes müssen Sie den Code in Ihre NodeMCU hochladen. Wählen Sie dazu das Symbol mit dem Pfeil nach rechts neben dem Häkchensymbol.
Sobald der Code hochgeladen ist, erhalten Sie in der Arduino IDE die Meldung Hochladen abgeschlossen
Jetzt sendet Ihr Sensor Daten an die Ubidots Cloud!
Status-LED
Sobald Ihr Code hochgeladen ist, informiert Sie die integrierte LED über die Konnektivität des Geräts.
- LED an -> Ok, Gerät verbunden und sendet Daten.
- LED blinkt (1 Sekunde) -> Es wird versucht, die Verbindung wiederherzustellen. Verbindung verloren. Kein Zugang zum Internet.
- LED aus -> Gerät nicht verbunden
Verwaltung der Daten in Ubidots
Wenn Ihr Gerät korrekt angeschlossen ist, wird in Ihrem Gerätebereich in Ihrer Ubidots -Anwendung ein neues Gerät erstellt. Der Name des Geräts lautet „ sensor-pir “. Außerdem sehen Sie im Gerät die erstellte Variable „ motion“. „
Wenn Sie Ihre Geräte- und Variablennamen in einen benutzerfreundlicheren Namen ändern möchten, lesen Sie bitte diesen Artikel
Um die Anzahl der von Ihrem Gerät erkannten Personen zu zählen, müssen wir als Nächstes eine neue abgeleitete Variable erstellen, um die Daten verwalten und die Anzahl der erkannten Personen zählen zu können.
Klicken Sie auf „ Variable hinzufügen “ und wählen Sie „ Synthetisch “:
Wählen Sie das Gerät mit der Bezeichnung „ PIR-Sensor “ und die Variable „ Bewegung “ aus und berechnen Sie dann die Summe zu jedem gewünschten Zeitpunkt (1 Minute, 1 Stunde, 1 Tag), um die Anzahl der erkannten Personen zu erhalten. Klicken Sie auf Speichern und vergeben Sie einen Namen für die Variable. Ihre Formel sieht in etwa wie folgt aus:
sum(motion, „1H“)
Sobald Ihre Variable erstellt ist, erhalten Sie die Anzahl der in dieser neuen synthetischen Variablen erkannten Personen. Nachfolgend finden Sie eine Darstellung des Endergebnisses:
Ergebnis
Dieses Projekt informiert Administratoren und Entscheidungsträger über die Anzahl der Personen, die einen bestimmten Raum passieren, und über deren Funktionsweise. Bitte beachten Sie, dass aufgrund der Einschränkungen des Bewegungssensors nicht jede Person erkannt wird. Die Sichtlinie ist für uns Menschen wichtig und auch Maschinen haben damit zu kämpfen. Aber wir arbeiten daran!
dashboard zu erstellen, um die Variablen Ihres eigenen People Counter zu steuern und zu verwalten. Um mehr über Ubidots Video-Tutorials an und melden Sie sich noch heute kostenlos an !