Inhaltsverzeichnis:
- Schritt 1: Teile und Komponenten
- Schritt 2: Der Sensor
- Schritt 3: Anpassung der Echtzeituhr
- Schritt 4: Sonstiges an Bord
- Schritt 5: Schaltplan
- Schritt 6: Software und Logik
Video: Postino: Hat der Postbote etwas geliefert? - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Keine Ahnung von mir: Eines Tages fragte mich ein Freund nach einer Möglichkeit, aus der Ferne zu überprüfen, ob Postsendungen in seinem Briefkasten lagen. Der Briefkasten befindet sich nicht auf dem Gehweg zu seiner Tür, also fragte er sich, da er ein fauler Junge ist, ob ein technisches Gerät ihn vor jedem Brief in den Briefkasten warnen sollte. Ich habe mich auf dem Markt umgesehen und kein fertiges Gerät gefunden, das seinen Bedürfnissen entspricht, also habe ich mich selbst herausgefordert: Warum nicht entwerfen und bauen?
Die Einschränkungen waren:
- batteriebetrieben mit einer angemessenen Lebensdauer zwischen Batteriewechseln;
- WiFi-Kommunikation;
- nur einmal am Tag prüfen, ob Post da ist oder nicht;
Die Hauptfrage war: Welcher Sensortyp könnte meinen Anforderungen entsprechen? Ein Näherungssensor konnte nicht funktionieren, da die Überprüfung nur einmal am Tag und nicht in Echtzeit erfolgen musste; ein Gewichtssensor auch nicht, da dies zu Komplexitäts- und Empfindlichkeitsproblemen geführt hätte (ein Blatt Papier könnte sehr leicht sein). Meine Wahl fiel auf einen Time-of-Flight (ein Mikrolaser) Sensor. Einmal auf die Briefkastengröße kalibriert, hätte alles, was in der Mitte lag, den Sensor ausgelöst! In Anbetracht der 3 Einschränkungen habe ich mich entschieden, einen ESP8266 (der die Software ausführt und mit WiFi verbunden ist), einen VL6180 Time-of-Flight-Sensor für die Messung und eine DS3231 Real Time Clock zu verwenden, um alle Schaltungen einmal am Tag auszulösen: so war es Postino war geboren!
Schritt 1: Teile und Komponenten
- ESP8266-01 (oder ESP-12E NodeMCU)
- VL6108 Flugzeitsensor
- DS3231 Echtzeituhr
- IRLZ44 N-Kanal-MosFET
- BC547 Transistor
- Widerstände
- CR123 Batterie
Schritt 2: Der Sensor
Das Herzstück des Systems ist der Sensor VL6180. Dies ist eine bahnbrechende Technologie, die es ermöglicht, die absolute Entfernung unabhängig vom Reflexionsgrad des Ziels zu messen. Anstatt die Entfernung durch Messung der vom Objekt reflektierten Lichtmenge zu schätzen (die stark von Farbe und Oberfläche beeinflusst wird), misst der VL6180X präzise die Zeit, die das Licht benötigt, um zum nächstgelegenen Objekt zu gelangen und zum Sensor zurückreflektiert zu werden (Zeit -of-Flight). Durch die Kombination eines IR-Senders, eines Entfernungssensors und eines Umgebungslichtsensors in einem gebrauchsfertigen, reflowfähigen 3-in-1-Gehäuse ist der VL6180X einfach zu integrieren und erspart dem Endprodukthersteller lange und kostspielige optische und mechanische Designoptimierungen.
Das Modul ist für den Low-Power-Betrieb ausgelegt. Ich habe das Pololu Breakout Board verwendet, das Spannungsregler an Bord hat, die es ermöglichen, über einen Eingangsspannungsbereich von 2,7 V bis 5,5 V zu arbeiten.
Der Sensor erlaubt 3 gültige Skalierungsfaktoren, die den maximalen Messbereich von 20 bis 60 cm mit unterschiedlichen Empfindlichkeiten einstellen. Durch Konfigurieren eines Bereichsskalierungsfaktors kann die potenzielle maximale Reichweite des Sensors auf Kosten einer geringeren Auflösung erhöht werden. Die Einstellung des Skalierungsfaktors auf 2 bietet eine Reichweite von bis zu 40 cm bei einer Auflösung von 2 mm, während ein Skalierungsfaktor von 3 eine Reichweite von bis zu 60 cm bei einer Auflösung von 3 mm bietet. Sie müssen die 3 Waagen mit Ihren Briefkastenmaßen testen. Da meine 25 cm (H) war, habe ich den Skalierungsfaktor = 1 verwendet.
Schritt 3: Anpassung der Echtzeituhr
Für die RTC habe ich ein DS3231 Breakout Board verwendet, das ein EEPROM (für meinen Zweck nutzlos) und eine Münzbatterie enthält. Als ich beschloss, die RTC über die Batterie des Hauptgeräts (eine 3 V CR123) zu betreiben, entfernte ich die Knopfbatterie; Um Strom zu sparen, habe ich auch das EEPROM (durch vorsichtiges Schneiden der Stifte) und die Onboard-LED entfernt.
Die Münzbatterie war für mich nicht nützlich, da ich Datum/Stunde/Minute/Sekunde in Echtzeit nicht speichern musste, sondern die RTC nur 24 Stunden zählen musste und dann den Alarm auslösen musste, um das Gerät einzuschalten.
Schritt 4: Sonstiges an Bord
Das Einschalten des Geräts erfolgt über eine Transistor- und MosFET-Schaltung, die durch den RTC-Alarm ausgelöst wird. Sobald der Alarm zurückgesetzt wurde, unterbricht der Stromkreis die Stromversorgung des Geräts für einen weiteren 24-Stunden-Zyklus. Wenn ein Alarm erreicht wird, schaltet der DS3231 einen Pin von High auf Low: Unter normalen Bedingungen ist der Transistor gesättigt und schließt das Gate des MosFET mit Masse kurz. Sobald der Alarm die Basis des Transistors auf Masse bringt, öffnet er sich und ermöglicht dem MosFET, den Stromkreis zu schließen und den Rest der Komponenten mit Strom zu versorgen.
Außerdem habe ich einen „test-1M“-Jumper hinzugefügt. Der Zweck dieses Schalters besteht – falls aktiviert – darin, den Zyklus von einmal täglich auf einmal pro Minute zu ändern, um Einsatztests durchzuführen. Um das Intervall von einem Tag auf eine Minute zu ändern, müssen Sie zuerst den Jumper „Test-C“für ca. 15 Sekunden schließen, um die Aktivierungszeit des Uhralarms zu umgehen und das Gerät einzuschalten. Wenn die Tests abgeschlossen sind, öffnen Sie die Jumper und setzen Sie das Gerät zurück (aus- und wieder einschalten).
Schritt 5: Schaltplan
Schritt 6: Software und Logik
Während der Tests habe ich (aus praktischen Gründen) einen NodeMCU-Controller verwendet, die Software kümmert sich darum, indem sie die CHIP-Variale auf „NodeMCU“oder „esp8266“setzt.
Die Skizze implementiert die WiFiManager-Bibliothek, damit sich das Gerät beim ersten Durchlauf mit einem gültigen WiFi-AP verbinden kann. In einem solchen Fall wechselt das Gerät in den AP-Modus, sodass Sie eine Verbindung herstellen und das richtige WLAN-Netzwerk auswählen können, dem Sie beitreten möchten. Danach wird die Netzwerkkonfiguration für nachfolgende Zyklen im EPROM gespeichert.
Die Variable REST_MSG enthält die HTTP-Nachricht, die gesendet wird, wenn der Sensor ein Objekt in der Mailbox findet. In meinem Fall sendet es eine Nachricht an einen Domotic-REST-Server, aber Sie können sie nach Belieben ändern: eine Telegramm-BOT-Nachricht, ein IFTTT-WebHook-Ereignis usw.
Der Rest der Skizze befindet sich in der setup()-Funktion, da die Schleife nie erreicht wird. Nach den für die verschiedenen Bibliotheken erforderlichen Konfigurationen stellt die Software die Uhrzeit auf 00:00:01 und den Wecker auf einmal täglich (oder einmal pro Minute, wenn der Jumper „test-1M“aktiviert ist). Dann führt es die Messung durch, sendet die Benachrichtigung (wenn ein Objekt in der Mailbox gefunden wird) und setzt den Alarm-Pin zurück, wodurch das Gerät heruntergefahren wird. Am Ende des Zyklus wird nur die RTC eingeschaltet und zählt 24 Stunden lang. Der Jumper Test-1M wird mit dem RX-Pin des ESP8266, der als GPIO-3 verwendet wird, mit der Einstellung: setMode(PIN, FUNCTION_3) verbunden. Aus diesem Grund können Sie den seriellen Monitor nicht verwenden, während der ESP8266 ausgeführt wird: Die Zeile " #define DEBUG " (die alle seriellen Drucke in der Skizze zulässt) wird nur verwendet, wenn eine NodeMCU anstelle eines ESP8266 installiert ist.
Der ESP8266 wickelt die I2C-Kommunikation mit der RTC und dem Sensor über seine Pins GPIO-0 und GPIO-2 ab, die in der Wire-Bibliothek initialisiert sind.
Der vollständige Code kann unter diesem Link heruntergeladen werden.
Zweiter im Assistive Tech Contest
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
ESP-01 Programmier-Hack - der Einfache :): 6 Schritte
ESP-01 Programmierer Hack - der Einfache :): Hallo ESPer, In diesem anweisbaren zeige ich Ihnen einen einfachen Hack, um einen Programmierer für ESP-01 / ESP8266-01 / ES-01-Modul zu machen. Die meisten von uns haben ein Arduino-Board oder FTDI USB-TTL-Geräte als Programmierer für dieses Modul verwendet. Beide Methoden funktionieren gut. Aber t
Der Sanity Check: 5 Schritte (mit Bildern)
Der Sanity Check: Bei diesem Projekt dreht sich alles um die Gesundheit oder darum, dass er regelmäßig überprüft wird. Der beste Weg, dies zu erreichen, besteht darin, eine Maske zu bauen, deren Augen zufällig rot leuchten. Oft genug, damit es auffällt, aber spärlich genug, um die Leute zweifeln zu lassen
So erstellen Sie einen Smart Pot mit NodeMCU, der von der App gesteuert wird – wikiHow
So erstellen Sie einen Smart Pot mit NodeMCU, der von einer App gesteuert wird: In dieser Anleitung bauen wir einen Smart Pot, der von einem ESP32 und einer Anwendung für Smartphones (iOS und Android) gesteuert wird. Wir verwenden NodeMCU (ESP32) für die Konnektivität und die Blynk-Bibliothek für das Cloud-IoT und die Anwendung auf dem Smartphone. Endlich haben wir