Inhaltsverzeichnis:

Servothermometer - Gunook
Servothermometer - Gunook

Video: Servothermometer - Gunook

Video: Servothermometer - Gunook
Video: The thermometer from the servo motor - Термометр из серводвигателя 2024, November
Anonim
Servo-Thermometer
Servo-Thermometer
Servo-Thermometer
Servo-Thermometer

Dies ist eine analoge Temperaturanzeige, die aus einem digitalen Sensor ds18b20, einem Mini-Servo und einer auf einem ESP-12f-Modul basierenden Elektronik besteht

Es hat die folgenden Funktionen.

  • Eigenständige Einheit, die Elektronik, Servo und Batterie hält
  • Gute Genauigkeit und Präzision mit dem digitalen Sensor ds18b20
  • Wiederaufladbarer LIPO mit eingebautem Ladegerät
  • Sehr geringer Ruhestrom (< 20uA) für lange Batterielebensdauer
  • Servo wurde nur für kurze Zeit eingeschaltet, was eine gute Batterielebensdauer ergibt.
  • Normalerweise schläft das Modul zwischen Temperaturaktualisierungen, kann aber zur Überprüfung und Konfiguration in einen Nicht-Schlafmodus geschaltet werden
  • Upload der Konfigurationsdaten und Servotest über das Webinterface
  • Minimale, maximale Temperaturen, Celsius. Fahrenheit und Aktualisierungsintervall konfigurierbar
  • Batterieüberwachung
  • Software kann über Webinterface aktualisiert werden
  • Kostengünstig

Schritt 1: Benötigte Komponenten und Werkzeuge

Benötigte Komponenten und Werkzeuge
Benötigte Komponenten und Werkzeuge
Benötigte Komponenten und Werkzeuge
Benötigte Komponenten und Werkzeuge

Folgende Komponenten werden benötigt

  • MINI-Servomotor (MG90S)
  • Ds18b20 Temperatursensor
  • ESP-12F (esp8266-Modul)
  • 18650 LIPO-Akku
  • LIPO Batteriehalter
  • Micro-USB-LIPO-Ladegerät
  • LDO niedriger Ruhestrom 3.3V Regler. Ich habe XC6203 verwendet
  • Widerstände 4K7, 10K
  • 220uF 6V Entkopplungskondensator
  • n-Kanal-MOSFET-Treiber mit niedriger Schwelle. Ich habe AO3400. verwendet
  • p-Kanal-MOSFET-Treiber mit niedriger Schwelle. Ich habe AO3401 verwendet
  • Kleines Stück Leiterplatten-Prototypplatine
  • Schieben Sie den Netzschalter
  • Kleiner Druckknopf (6mm quadratisch)
  • Draht anschließen
  • Doppelseitiges Klebeband
  • 3D-gedrucktes Gehäusedesign verfügbar unter
  • Optionaler Zeiger. Ich benutzte einen Ersatzuhrzeiger; eine gedruckte Version kann verwendet werden.

Folgende Werkzeuge werden benötigt

  • Fine Point Lötkolben
  • Heißklebepistole
  • Locher

Schritt 2: Elektronik

Elektronik
Elektronik

Der größte Teil der Elektronik ist ein ESP8266-WLAN-Mikrocontroller. Eine kleine Menge an Unterstützungselektronik wird benötigt, um den Servomotor zu aktivieren und die Batterie auf 3,3 V zu regulieren, die Sensoren zu unterstützen und einen Widerstandsteiler zur Überwachung der Batteriespannung. Die Servomotorversorgung wird von 2 MOSFET-Transistoren angesteuert. Sie werden kurz eingeschaltet, bevor ein Servo-Update erforderlich ist, und für kurze Zeit eingeschaltet, damit das Servo seine Bewegung beenden kann. Die Last ist so leicht, dass sich das Servo im stromlosen Zustand nicht bewegt.

Die gesamte Support-Elektronik außer dem LIPO-Ladegerät ist auf dem PCB-Prototyp-Board montiert. Ich verwende SMD-Komponenten, um dies so klein wie möglich zu halten, aber es könnte mit Lead-Through-Komponenten gemacht werden, da ein vernünftiger Platz zur Verfügung steht. Das LIPO-Ladegerät verfügt über einen Micro-USB-Anschluss, der zum Aufladen des Akkus verwendet werden kann. Ein Schiebeschalter kann zum Ein- und Ausschalten der Stromversorgung verwendet werden. Eine Schaltfläche soll beim Einschalten den Ruhemodus außer Kraft setzen, der dann den Webzugriff zur Konfiguration und Steuerung ermöglicht.

Schritt 3: Montage

Montage
Montage
Montage
Montage
Montage
Montage

Ich habe die folgenden Montageschritte gemacht

  • 3D-Gehäuse ausdrucken
  • Lötdraht auf Schalter, Taster und 3-poligen Stecker löten
  • Bringen Sie Schalter, Taster und Stecker mit einer kleinen Menge Harzkleber am Gehäuse an, um sie zu sichern
  • Servo anbringen. Dahinter ist genug Platz für die Kabeldurchführung. Zur Befestigung kann dann ein Keil aus Pappe verwendet werden.
  • Sichern Sie das LIPO-Ladegerät an Ort und Stelle. Ich habe Kabel durch die vier Löcher des LIPO-Ladegeräts verwendet, um die Höhe (2 mm) der Basis einzustellen, damit sie mit dem USB-Loch ausgerichtet ist. Heißkleber an Ort und Stelle.
  • Verdrahten Sie Batteriehalter, Schalter und Ladegerät und lassen Sie genügend Spielraum an den Batteriekabeln, damit sie auf der Seite liegen können.
  • Machen Sie die Peripherieelektronik auf einem kleinen Stück Prototyping-Platine.
  • Montieren Sie die Prototyping-Platine oben auf dem ESP-12-Modul.
  • Komplette Anschlussverkabelung
  • Gewähltes Zifferblatt (und ggf. Zeiger) auf steifem Hochglanzpapier ausdrucken und ausschneiden.
  • Verwenden Sie den Locher, um ein Loch für das Servo zu erstellen
  • Zifferblatt mit doppelseitigem Klebeband an der Box befestigen
  • Zeiger an Servo anbringen
  • Kalibrieren Sie die Position des Zeigers, indem Sie die Webfunktion verwenden, um einen Temperaturwert einzustellen.

Schritt 4: Software

Die Software für dieses Projekt ist verfügbar unter github

Es ist ein Arduino-basiertes Projekt, also richten Sie eine esp8266 Arduino-Entwicklungsumgebung ein. Vielleicht möchten Sie die Passwörter für WifiManager und Software-Update in der ino-Datei auf etwas Sinnvolleres setzen.

Es sollte in der Arduino ESP8266 IDE kompiliert und seriell auf das Modul hochgeladen werden. Es empfiehlt sich, GPIO13 in Ihrer Entwicklungsumgebung mit GND zu verbinden, da sich die Software dann im kontinuierlichen Modus befindet.

Bei der erstmaligen Verwendung wird ein Zugangspunkt gestartet, der mit einem Telefon oder Tablet verbunden werden sollte. Siehe Code für Passwort. Der Browser auf dem Telefon oder Tablet sollte dann verwendet werden, um auf 192.168.4.1 zuzugreifen, was die Auswahl der lokalen WLAN-Ssid und des Passworts ermöglicht. Dies muss nur einmal durchgeführt werden oder wenn sich das WLAN-Netzwerk ändert. Von da an verbindet sich das Modul bei Bedarf mit dem lokalen WLAN-Netzwerk. Der normale Tiefschlafmodus verwendet kein WLAN. Es wacht im Schlafintervall auf, liest die Temperatur, aktualisiert das Servo und geht wieder in den Schlaf. Bei jedem 10. Lesen wird eine Batterieablesung durchgeführt und protokolliert. Dies kann überprüft werden, indem Sie den WLAN-Modus ohne Schlaf einschalten und die Protokolldatei überprüfen.

Einige Support-Dateien sollten auch hochgeladen werden. Diese befinden sich im Datenordner des Git. Sie können hochgeladen werden, indem Sie auf ip/upload zugreifen. Sobald diese hochgeladen wurden, kann ip/edit verwendet werden, um weitere Uploads auf einfachere Weise durchzuführen.

Schritt 5: Betrieb

Nach der Konfiguration funktioniert das Gerät nur nach dem Einschalten.

Wenn es mit gedrückter Taste eingeschaltet wird, können eine Reihe von Webbefehlen verwendet werden.

  • http:/ipAddress/upload ermöglicht den Zugriff auf einen einfachen Datei-Upload. Wird verwendet, um das System zu booten.
  • http:/ipAddress/edit ermöglicht den Zugriff auf das Dateisystem (z. B. um eine neue Konfiguration zu erstellen oder auf eine beliebige Protokolldatei zuzugreifen)
  • http:/ipAddress ermöglicht den Zugriff auf ein Formular, um die Anzeige auf einen Wert zu setzen. Kann verwendet werden, um den Zeiger anzupassen.
  • https://ipAddress/firmware zum Hochladen einer neuen Firmware-Binärdatei

Schritt 6: Wählen und Konfiguration

Die Powerpoint enthält einige Beispiel-Zifferblätter für die Verwendung in Celsius oder Fahrenheit. Diese ermöglichen 15 Segmente, aber der Bereich kann leicht durch Ändern des Schrittintervalls angepasst werden. Wenn mehr oder weniger Segmente gewünscht werden, müssen die Eigenschaften des Donut-Objekts bearbeitet werden. Ebenso können die Farbhintergründe der Segmente verändert werden.

Die Konfigurationsdaten sind in einer Datei namens servoTempConfig.txt enthalten. Diese wird im Ablagesystem des Moduls gehalten. Um die Konfiguration zu ändern, bearbeiten Sie die Datei und laden Sie sie über das Webinterface http:ipAddress/edit. hoch

Die Konfigurationsdaten sind nur Werte auf Zeilen wie folgt

  • Hostname
  • minimal angezeigte Temperatur (in den gewählten Einheiten)
  • maximal angezeigte Temperatur (in den gewählten Einheiten)
  • Schlafintervall zwischen den Messwerten in Sekunden
  • Schlafmodus (0=Dauernd mit WLAN, 1= Normaler Tiefschlaf, 2=Dauernd, kein WLAN
  • Aktivitätsprotokollierung in servoTempLog.txt wenn Protokollierung = 1. Batteriespannungen werden immer protokolliert.
  • Temperatureinheiten 0=Centigrad, 1=Fahrenheit
  • ADC_CAL-Kalibrierung für Batteriespannungsmesswerte.

Stellen Sie sicher, dass die Mindest- und Höchsttemperaturen in den ausgewählten C/F-Einheiten angegeben sind.