Home > Technologie > Twitter Sensing Thermoelektrische Komponente

Twitter Sensing Thermoelektrische Komponente

0
Advertisement

Twitter Sensing Thermoelektrische Komponente

Dieses Arduino-Projekt war ursprünglich dazu bestimmt, zu spüren, wenn jemand mit dem Wort "warm" oder dem Wort "kalt" tweetete und auf diesen Reiz reagierte, indem er eine entsprechende LED aufleuchtete und ein Peltier-Element (im Grunde genommen eine Festkörper-Wärmepumpe) abkühlte Wärmen Sie die Spitze. Ich unterschätzte die Häufigkeit der Tweets mit diesen Worten in ihnen, so ging es immer los. Ich beschloss, seinen Zweck ein wenig zu ändern. Statt die Tweets selbst zu erfassen, wird es ein paar Stichproben und bestimmen, die derzeit häufiger ist. Es macht dann die gleiche Aktion, wo es leuchtet eine LED und schaltet sich das Peltier-Element.

SICHERHEITSASPEKTE:

- Mein Entwurf hat ein Problem, durch das es das Peltier-Element auf gefährliche Temperaturen aufheizen kann (ich habe Messwerte von fast 260 Fahrenheit oder 126 Celcius genommen). Wenn Sie meinem Entwurf folgen und nicht den Strom begrenzen, berühren Sie das Peltier-Element nicht, ohne eine Temperaturmessung mit einem vertrauenswürdigen Instrument (ich verwendete ein IR-Thermometer) zu nehmen und das in zu berücksichtigen. Selbst wenn das Element nicht mit Strom versorgt wird, ist es heiß, wenn es für eine Weile verwendet wurde.

- Das heißt, indem wir der Wärmepumpe weniger Energie zuführen, sollten wir in der Lage sein, die maximal erreichte Temperatur zu senken.

- Dieses Projekt nutzt eine beträchtliche Menge an Energie. Verwenden Sie gesunden Menschenverstand, einschließlich der gesunden Menschenverstand, um nicht versuchen, ein Projekt, das Sie nicht vollständig verstehen.

Schritt 1: Vorbereiten Ihrer Vorräte und Werkzeuge

Twitter Sensing Thermoelektrische Komponente

Twitter Sensing Thermoelektrische Komponente

Du wirst brauchen:

Werkzeuge:
Computer (die Sie eindeutig haben)
Arduino Software (kostenlos und Open Source)
USB A bis B Programmierkabel (für Arduino)
Kleine Schraubendreher (eventuell bei Verwendung von Schraubklemmen an Ihrem Motorregler oder Arduino)
Lötkolben (möglicherweise, wenn Sie einen Wi-Fi oder Ethernet-Adapter zusammenbauen müssen oder wenn Sie ein Protoboard verwenden)
Multimeter (möglicherweise, wenn etwas schief geht)
Thermometer (zu sehen, was los ist mit dem Peltier-Element)
Wire Strippers und Snippers

Werkstoffe:
Arduino Mikrocontroller kompatiblen Board (Ich habe ein Arduino Uno)
Wi-Fi oder Ethernet-Adapter für Ihr Board (Ich habe ein WiFly Shield)
Motorsteuerpult, das mindestens 7 Ampere bei 12 Volt verarbeiten kann, denn so lang Sie dieses laufen lassen möchten, verwendete ich das Dimension Engineering Sabertooth 5 Ampere Modell, das mehr handhaben kann, als angepriesen wird, zwar möglicherweise mit einer schädlichen Auswirkung auf das Maßeinheit Ist eine auf 5 Volt geregelte zusätzliche Leistungsabgabe vorzuziehen, um ansonsten außerhalb des Rahmens dieser anleitbaren)
Peltier-Element (ich habe die eine Sparkfun verkauft, aber wenn Sie ein anderes verwenden, müssen Sie Dinge wie Spannung und Strom an der Motorsteuerung einstellen.)
CPU-Kühlkörper (fast jeder tun, aber denken Sie daran, einige thermische leitfähige Gel erhalten)
Rote und blaue LED (mit passenden Widerständen)
Ein Protoboard oder Steckbrett
Solder (Wenn Sie planen, ein Protoboard verwenden oder müssen Sie einen Ethernet-oder WiFi-Adapter zusammenbauen)
Draht aus verschiedenen Messröhren
Ein Netzteil (ich benutzte ein Computer-Netzteil, aber wenn Sie möchten, könnten Sie etwas anderes, die Ihren Energiebedarf passt)
Ein kleiner Piezo-Summer
Potenziell ein Gehäuse (aber das ist außerhalb des Geltungsbereichs dieses Instructable)

Schritt 2: Zusammenbau

Twitter Sensing Thermoelektrische Komponente

Twitter Sensing Thermoelektrische Komponente

Schließen Sie den Mikrocontroller Ihrer Wahl an den gewünschten Ethernet-Adapter an. Ich tat dies, indem ich das WiFly Shield an das Arduino anbaute. Verbinden Sie dann den Mikrocontroller mit dem Motorcontroller. Ich tat dies, indem ich den digitalen Pin 3 auf dem Mikrocontroller mit dem S1-PWM-Eingang am Motorcontroller, die Motorsteuerungen 5V auf den Arduino-Pin und den 0V-Pin am Motorcontroller auf den Massepin auf dem Arduino verdrahte.

Befestigen Sie dann den Lüfter am CPU-Kühlkörper und die Anschlüsse des Peltier-Elements an die entsprechenden Klemmen am Motorregler. Für mich bedeutete dies, dass die roten Leitungen für den Peltier und der Lüfter zum Terminal M1A und das schwarze zum M1B ging.

Als nächstes verdrahten Sie das Steckbrett. Befestigen Sie Stift 8 vom Arduino (oder was auch immer Sie von Ihrem Mikrocontroller wünschen) und führen Sie es zum Steckbrett, durch einen Widerstand, zu der positiven Seite der blauen LED und in die Brotplattenseite, die mit dem Boden des Mikrocontrollers verdrahtet werden sollte. Das gleiche gilt für Pin 9 und die rote LED. Schließlich Drahtstift 2 des Mikrocontrollers durch den Piezo-Summer auf den Boden des Mikrocontrollers.

Schließlich, Macht einrichten. Das ist wirklich bis zu Ihnen. Was ich mit einem Computer-Netzteil wurde bringen Sie die grüne Netzteil "Power On" Draht niedrig, indem Sie es mit einem schwarzen Erdungskabel. Seien Sie sicher, dass Sie die richtigen Drähte verbinden, oder könnten Sie etwas aus, was gefährlich sein könnte. Lassen Sie es unplugged für den Augenblick.

Als nächstes verbinden Sie einen Draht, dessen Spannung niedriger ist als die maximale Spannung Ihres Peltierelements und Ihrer Motorsteuerung (aber nicht negativ) zum positiven Eingang zu Ihrem Motorregler und einem schwarzen Masseleiter zum negativen Eingang auf Ihrem Motorsteuerpult. Ich habe ein gelbes 12V-Kabel für meine 15V max Peltier-Element. WICHTIGER HINWEIS: Verwenden Sie den Widerstand Ihres Peltier-Elements und das Ohmsche Gesetz, um festzustellen, ob die Spannung, die Sie verwenden, einen Strom verursacht, der größer als der maximale Strom Ihres Peltier-Elements ist. Anderenfalls riskieren Sie, zu viel Strom zu verwenden, der Ihre Komponente braten kann. Stellen Sie sicher, dass Sie dies mit der Stromversorgung ausgeschaltet auf Ihrer Versorgung zu tun, oder noch besser, noch nicht stecken Sie es noch.

Schritt 3: Code

Ich habe den Arduino-Code beigefügt, den ich für mein Projekt verwendet habe. Beachten Sie, dass mein Code hier auf der WiFly Bibliothek abhängig ist: http://forum.sparkfun.com/viewtopic.php?p=115626#p115626 .

<Code>

#include <_Spi.h>
#include <Client.h>
#include <Configuration.h>
#include <Debug.h>
#include <ParsedStream.h>
#include <Server.h>
#include <SpiUart.h>
#include <WiFly.h>
#include <WiFlyDevice.h>

Client twitter = Client ( "199.59.148.201", 80); // Die oben genannten Bibliotheken haben ein Objekt
// eine Verbindung zu einem entfernten Server darstellt
String warm1 = "warm"; // die Zeichenfolge, nach der in den Eingabedaten gesucht wird, die darstellen, dass das Gerät aufwärmt
String in = ""; // eine Zeichenfolge, die vorerst leer bleibt
String kalt = "kalt"; // Eine weitere zu suchende Zeichenfolge
String results = "\" from_user "; // Eine weitere zu suchende Zeichenfolge
Int-Index; // ein Nebenprodukt von unordentlichem Code, ist dies Teil eines Systems, um festzustellen, ob der Beitrag neu ist oder nicht
// sie sind selten
Int buzz = 2;
Int colds = 0;
Int hots = 0;
Int S1 = 3; // den Ausgangspin des Motorkontrollers, der den
Int blau = 8; // Der Ausgangs-Pin ist mit einer blauen LED verbunden
Int red = 9; // Der Ausgangsstecker ist mit einer roten LED verbunden
Int oldIndex [] = {0, 0, 0}; // eine Menge von Zahlen für den Index, an dem verschiedene Teilstrings
// in der Eingabe erscheinen, werden sie verwendet, um zu bestimmen, ob der Beitrag neu ist oder nicht

Void setup () // Diese Funktion wird einmal am Anfang ausgeführt
{
WiFly.begin (); // das mit dem Wi-Fi-Adapter verbundene Objekt einrichten
Serial.begin (9600); // das mit dem seriellen Anschluss des Mikrocontrollers verbundene Objekt aufbauen
// wird für das Debuggen des Programms verwendet
PinMode (S1, OUTPUT);
PinMode (Summen, AUSGANG);
PinMode (blau, AUSGANG);
PinMode (rot, AUSGANG);
// diese wurden verwendet, um verschiedene Pins zur Ausgabe zu setzen
If (! WiFly.join ( "*******", "*********")) // Das wifi-Objekt gibt bei dieser Funktion den Wert true zurück
// es verbindet sich erfolgreich mit dem Netzwerk mit der SSID und passworrd in den obigen Parametern
{
Ton (Buzz, 100, 600);
Serial.println ( "Netzwerk nicht verbunden".);
Während (1) // was gibt es zu tun, wenn die Verbindung fehlschlägt?
{
aufrechtzuerhalten.
aufrechtzuerhalten.
Ton (Summen, 3000, 1000);
aufrechtzuerhalten.

Void Schleife ()
{
Verbindung wiederherstellen:
Für (int i = 10; i> 0; i -) // erhalten tweets immer und immer wieder
{
If (! Twitter.connected ()) // Wenn der Server nicht verbunden ist, läuft er durch den Verbindungsprozess
{
Serial.println ( "Verbindung zum Server ..."); // für das Debuggen verwendet
If (twitter.connect ()) // führt die Funktion aus, wenn sie erfolgreich ist, gibt sie true zurück und liefert Debugging-Informationen
{
Serial.println ( "verbunden");
Ton (Summen, 4000, 1000);
aufrechtzuerhalten.
sonst
{
Ton (Summen, 180, 600);
Serial.println ( "Verbindung fehlgeschlagen."); // oder wenn es falsch ist, wird es Debugging-Informationen
Wiederherstellen; // yeah, yeah, goto ist verpönt, ich benutze es trotzdem
aufrechtzuerhalten.
aufrechtzuerhalten.
Twitter.println ( "GET /search.json?q=\"warm\"+OR+\"cold\"&rpp=1 HTTP / 1.0 \ r \ n"); // Dieser Suchstring nahm an
// eine lange Zeit zu trainieren und zu debuggen
// sehen Sie dev.twitter.com, wenn Sie mehr Info wünschen
Twitter.println ( "Host: search.twitter.com \ r");
Verzögerung (300); // Ich vergesse, warum ich diese Verzögerung
If (! Twitter.available ()) // Wenn es nichts zu lesen gibt, gehen Sie voran und drucken Sie Debugging-Informationen, andernfalls:
{
Serial.println ( "Ich habe nichts.");
Ton (Summen, 180, 600);
Goto wait_again;
aufrechtzuerhalten.
Während (twitter.available ())
{
In + = char (twitter.read ()); // fügen Sie dem Eingabe-String wiederholt das neueste Zeichen hinzu
aufrechtzuerhalten.
Twitter.flush (); // die Eingabe vom Server löschen (nur für den Fall)
Twitter.stop (); // Schließen Sie die Serverkonfiguration
Serial.println (in); // Drucken Sie diese als Debugging-Informationen an ein serielles Terminal
Ton (Summen, 6000, 1000);
Serial.println ( "Neuer Beitrag ...");
Wenn (in.indexOf (warm1)! = -1 || in.indexOf (kalt)! = -1) // sicherstellen, dass einer der Suchzeichenfolgen vorhanden ist
{
Wenn (in.indexOf (warm1) <in.indexOf (kalt))
{
Hots ++; // fügen Sie einen der heißen Punktzahl hinzu
aufrechtzuerhalten.
sonst
{
Erkältungen ++; // füge einen der kalten Partitur hinzu
aufrechtzuerhalten.
aufrechtzuerhalten.
aufrechtzuerhalten.
Wenn (hots> colds)
{
warm(); // aufwärmen wenn heiß gewonnen wird
aufrechtzuerhalten.
sonst
{
cool(); // Kühlen Sie es ab, wenn Kälte gewann
aufrechtzuerhalten.
wait_again:
OldIndex [1] = in.indexOf (kalt);
OldIndex [2] = in.indexOf (warm1);
Verzögerung (10000); // verzögern, damit wir nicht bombardieren twitter mit Abfragen
In = ""; // Löschen Sie die Eingabezeichenfolge
Kälte = 0; Klären Sie die Schmerzen und Erkältungen
Hots = 0;
Für (int i = 40; i> 0; i--) // Diese Schleife sagt nur, dass der Motorcontroller aufhört, Strom durchzulassen
{
DigitalWrite (S1, HIGH);
DelayMicroseconds (1500);
DigitalWrite (S1, LOW);
DelayMicroseconds (1500);
aufrechtzuerhalten.
aufrechtzuerhalten.

Void warm ()
{
(Int i = 40; i> 0, i-)
{
DigitalWrite (S1, HIGH);
DelayMicroseconds (1100);
DigitalWrite (S1, LOW);
DelayMicroseconds (1100); // Start senden Strom in eine Richtung (Erwärmung der Oberseite der Platte)
aufrechtzuerhalten.
DigitalWrite (rot, HIGH); // schaltet LED ein
Verzögerung (50000); // für 50 Sekunden (50000 Millisekunden)
DigitalWrite (rot, LOW); // schaltet die LED aus
(Int i = 40; i> 0, i-)
{
DigitalWrite (S1, HIGH);
DelayMicroseconds (1500);
DigitalWrite (S1, LOW); // stoppt den Strom
DelayMicroseconds (1500);
aufrechtzuerhalten.
aufrechtzuerhalten.

Void cool ()
{
(Int i = 40; i> 0, i-)
{
DigitalWrite (S1, HIGH);
DelayMicroseconds (1900);
DigitalWrite (S1, LOW);
DelayMicrosekunden (1900); // Strom in die andere Richtung senden
// (Abkühlen der Oberseite und Erwärmen der Unterseite, die durch einen Kühlkörper zerstreut wird)
aufrechtzuerhalten.
DigitalWrite (blau, HIGH); // schaltet die LED ein
Verzögerung (50000); // für 50 Sekunden
DigitalWrite (blau, LOW); // schaltet die LED aus
(Int i = 40; i> 0, i-)
{
DigitalWrite (S1, HIGH);
DelayMicroseconds (1500); // stoppt den Strom
DigitalWrite (S1, LOW);
DelayMicroseconds (1500);
aufrechtzuerhalten.
aufrechtzuerhalten.

</ Code>

Schritt 4: Probieren Sie es aus

Probieren Sie es aus!

Stellen Sie sicher, dass Sie den Code auf Ihre Wi-Fi-Netzwerkinformationen eingestellt haben.

Angenommen, nichts sprengt, sollten Sie beginnen zu hören Pieptöne und sehen blinkende Lichter. Wenn Sie nicht denken, dass es funktioniert, versuchen Sie es mit dem seriellen Arduino-Monitor, um die Debugging-Informationen aus der seriellen Ausgabe des Codes zu überprüfen.

Related Reading