Inhaltsverzeichnis:

Wetterstation twittern - Gunook
Wetterstation twittern - Gunook

Video: Wetterstation twittern - Gunook

Video: Wetterstation twittern - Gunook
Video: The Neighbourhood - Sweater Weather (Official Video) 2024, Juli
Anonim
Wetterstation twittern
Wetterstation twittern

Wollten Sie schon immer die aktuellen Wetterbedingungen, den CO2-Fußabdruck, den Lärm und die Schadstoffbelastung Ihrer Stadt überwachen? Möchten Sie ein Kreuzritter des Klimawandels sein oder Ihre eigene Tweeting-Wetterstation einrichten und Ihre lokalen Wetterbedingungen mit der Welt teilen?

Lernen Sie die Tweeting Weather IoT Station alias TWIST kennen - eine DIY-, Open-Source-Plattform für die Umweltüberwachung und meteorologische Datenerfassung. Der Zweck von TWIST besteht darin, dass Einzelpersonen und Gemeinschaften Daten über das, was tatsächlich in ihrer Umgebung passiert, sammeln und diese Daten in sozialen Medien wie Twitter teilen können.

  • TWIST ist eine Internet of Things (IoT)-basierte Plattform.
  • Das Gehirn von TWIST ist ein Intel Edison Board.
  • TWIST ist mit einer Vielzahl von Sensoren kompatibel.
  • Alle Code- und Designdateien (Schaltpläne und PCB-Layout) sind Open-Source. Dies bedeutet, dass jeder zur TWIST-Plattform beitragen kann, indem er Code und Schaltpläne für verschiedene Sensoren teilt.

TWIST besteht aus drei technologischen Schichten:

Die erste Schicht ist eine Hardwareplatine, die alle Wetter- und Umweltsensoren enthält, die als „Sensorplatine“bekannt sind. Wie der Name schon sagt, trägt es Sensoren, die Luftzusammensetzung, Temperatur, Luftfeuchtigkeit und Regen messen. Zusätzliche Sensoren wie seismische Aktivität, UV-Index, Luftdruck, Höhe, Lux (Helligkeit), Schallpegel, Windgeschwindigkeit und -richtung usw. können ebenfalls hinzugefügt werden. Sobald es eingerichtet ist, kann das Sensor Board die von den Sensoren gemessenen Daten an die zweite Schicht streamen. Die zweite Schicht ist das Intel Edison Board, das Daten vom Sensor Board empfängt, verarbeitet und an die nächste Schicht sendet. Die dritte Schicht verbindet Ihr Edison-Board über Wi-Fi mit dem Internet, indem das Wireless-Modul auf dem Edison-Board verwendet und die aktuellen Wetter- und Umgebungsbedingungen getwittert werden.

Das Gerät kann über ein Solarpanel oder ein Netzteil mit Strom versorgt werden.

Versionskontrollierte Repositorys

Alle drei technologischen Schichten von TWIST sind Open-Source, und daher sind alle Dateien, die wir für Code, PCB-Entwicklung, mechanisches Design usw. verwenden, in unserem Github-Repository verfügbar.

Wettbewerbsbeiträge

Intel IoT-Einladungen

Ich möchte Intel + Instructables für die Bereitstellung des Intel Edison Boards danken. Ich plane, viele weitere IoT-bezogene Instructables mit dem Edison-Board zu erstellen.

#iotweatherstn

Wenn Sie TWIST erstellen, vergessen Sie nicht, das Wetter mit #iotweatherstn zu twittern. #iotweatherstn kann ein Hashtag sein, der von allen IoT-betriebenen Tweeting-Wetterstationen verwendet wird.

Schritt 1: Teile und Materialien

Teile und Materialien
Teile und Materialien
Teile und Materialien
Teile und Materialien
Teile und Materialien
Teile und Materialien

MengeTeileDetails 1

Intel Edison

mit Arduino Breakout-Board

1

MQ2 Sensor für brennbare Gase

1

YL-83

Regensensor

1

SL-HS-220

Temperatur- und Feuchtigkeitssensor

1

Widerstand

32K

4,7K

3 Metallabstandshalter 1 Zoll

1

Widerstand

32K

4,7K

2

Holzblatt A4 Größe

Kann später zugeschnitten werden

3

Metallabstandshalter

1 Zoll

Schritt 2: Elektrisches Design

Leistung

Das gesamte System wird von einem 5V 1A Netzteil gespeist. Die Sensoren (Temperatur, Feuchtigkeit, Regen, Gas) ziehen ca. 200 mA, der Edison ca. 500 mA. Da der benötigte Gesamtstrom weniger als 1 Ampere beträgt, sollte eine 1-Ampere-Versorgung gut funktionieren. Die eingebaute grüne LED am digitalen Pin 13 des Edison Boards wird verwendet, um den Stromstatus anzuzeigen.

ControlAn Intel Edison leitet die Show für TWIST. Der Edison ist auf einem Arduino-Breakout-Board montiert, das das Auslesen der digitalen und analogen Signale von den Sensoren erleichtert. Der Edison wird über ein Micro-USB-Kabel an die 5V-Schiene angeschlossen. Der Edison verfügt über ein integriertes Wi-Fi-Radio, mit dem er sich ohne zusätzliche Hardware mit Twitter verbinden kann.

Echtzeituhr (RTC)

Da die von Twitter automatisch für jeden Tweet durchgeführte Zeitstempelung eine Auflösung hat, die auf die Gesamtzahl der Tage seit dem Zeitpunkt des Tweetens begrenzt ist, wird eine Echtzeituhr verwendet, um Datum und Uhrzeit im Stunden-Minuten-Format genau zu stempeln. Zweites Format. Die in der TWIST-Plattform verwendete Echtzeituhr ist das DS-1307 RTC-Modul.

SensorenDas grundlegendste Setup dieses Systems hat vier Sensoren (Temperatur, Feuchtigkeit, Regen, Gas), die mit dem Edison verbunden sind. Zusätzliche Sensoren wie Rauschen, Wind usw. können hinzugefügt werden. Jeder Sensor wird direkt über die 5-V-Schiene mit Strom versorgt und sein Signalstift ist jeweils mit den analogen Stiften A0 bis A2 und dem digitalen Stift 2 auf der Edison-Breakout-Platine verbunden. Die Sensoren haben auch jeweils ein Empfindlichkeitseinstellpotentiometer, das auf jeder Sensorplatine montiert ist; Der MQ-2 ist ein Sensor für brennbare Gase (Flüssiggas, Propan, Wasserstoff und Methan), der eine analoge Spannung proportional zur Gaskonzentration in Teilen pro Million ausgibt. Der SL-HS-220 verfügt über einen Thermistor, der den Temperaturwert angibt. Da der Ausgang des Thermistors nichtlinear ist, wird die entsprechende Temperaturtabelle im Sensorspeicher angegeben. Der Thermistor benötigt eine Spannungsteilerschaltung, wenn er an die Edison-Platine angeschlossen wird, wie im Schaltplan gezeigt. Der SL-HS-220 verfügt außerdem über ein eingebautes Hygrometer, das die Feuchtigkeit misst und eine analoge Spannung ausgibt, die einem festen Feuchtigkeitswert entspricht. Die Feuchte-Spannungs-Tabelle ist auch im Sensorspeicher hinterlegt. Ein üblicher Ersatz für den SL-HS-220 ist der DHT11-Sensor. Der Regensensor/Wassersensor verfügt über ein Potentiometer, das so eingestellt ist, dass es für eine bestimmte Regenmenge einen digitalen Ausgang liefert, dessen Empfindlichkeit vom Benutzer eingestellt werden kann.

Wetterstation.fzz

Schritt 3: Mechanisches Design

Der Korpus des TWIST besteht aus zwei Platten aus Holzplatten. Obwohl ich 1/4 "Sperrholz verwendet habe, kann das Design aus jedem Plattenmaterial zusammengebaut werden, da der Abstand (von 1" Aluminiumabstandshaltern beibehalten) das einzige kritische Element ist. Die Vektordateien habe ich oben zum Download angehängt.

Laser schneiden

Für alle, die die beiden Platten laserschneiden möchten, habe ich unten die Lasercutter-Dateien zum Download angehängt. Es enthält auch einen zusätzlichen Luftqualitätssensor in seinem Design. So können Sie je nach Wahl entweder ein MQ2-Sensormodul oder ein Luftqualitätssensormodul verwenden.

Schritt 4: Rahmenmontage: Gesicht & Basis

Frontplatte

Die Sensoren passen in die passenden Löcher und Ausschnitte und können mit Schrauben oder Kleber befestigt werden.

Grundplatte

Die Abstandshalter des Edison Boards werden auf die Baseplate geschraubt. Der am Regensensor angeschlossene Analog-Digital-Wandler (ADC) kann auch auf die Baseplate geschraubt werden.

Auch Zusatzkomponenten wie Summer oder die Spannungsreglerschaltung für den Solareingang können auf die Baseplate geschraubt werden.

Die Baseplate und die Faceplate sind beide durch 1 Abstandshalter getrennt.

Schritt 5: Elektronik- und Sensorbaugruppe

Leistung

Die Stromversorgung des Systems erfolgt über einen Wandadapter mit einer Standard-Barrel-Buchse, die direkt an den Edison-Barrel-Anschluss angeschlossen wird. Das System kann auch über den USB-Port auf der Edison-Platine mit Strom versorgt werden. Sie können das Board auch über ein externes Solarpanel mit Strom versorgen.

Sensoren

Die Sensoren sind an Breakout-Boards mit Stiftleisten befestigt und können daher über Steckbrückenkabel direkt mit dem Edison verbunden werden.

Schritt 6: Twitter-Konfiguration

Um zu twittern, verwenden wir eine von NeoCat entwickelte Drittanbieter-App, die den Twitter-Token erhält, den Sie zum Tweeten mit Ihrem Edison-Board benötigen. Token können auch von der Entwickler-Webseite von Twitter bezogen werden.

Um zu beginnen, besuchen Sie die Website von NeoCat, folgen Sie seinem / ihrem Tutorial, um die Twitter-Bibliothek und Ihren Twitter-Token zu erhalten. Wie NeoCat auf ihrer Website erwähnt hat, missbrauchen Sie den Dienst bitte nicht. Halten Sie Ihre Tweets spärlich. Wenn Sie etwas brauchen, das alle 6 Sekunden twittert, sollten Sie einen eigenen Server und eine eigene Twitter-App einrichten und daher stellt der Code, den ich geschrieben habe, sicher, dass der Server von NeoCat nicht überlastet wird (TWIST-Tweets alle 6 Stunden).

Die Bibliothek verwendet die Website von NeoCat als Proxy-Server für OAuth-Zeug. Ihr Tweet darf während der Wartung dieser NeoCat-Website nicht verwendet werden. Twitter scheint wiederholte Tweets mit dem gleichen Inhalt abzulehnen (gibt Fehler 403) zurück.

Twitter-Token

Arduino Tweet-Bibliothek

Schritt 7: Software & Konfiguration

Befolgen Sie die Setup-Anleitung von Intel für die Intel Edsion, bevor Sie mit dem Programmieren beginnen.

Das Programm ist eine Arduino-Skizze, die auf dem Edison läuft. Ich habe jeden der Hauptcodeblöcke unten erklärt.

Der Code enthält einige vordefinierte Konstanten, Pin-Deklarationen und einige serielle Druckanweisungen, die bei der Fehlerbehebung helfen.

Tweet-Verzögerung

Da Twitter Tweets herausfiltert, die denselben Inhalt haben und innerhalb kurzer Zeit zwischen ihnen getwittert werden, wurde eine Standardverzögerung von 3 Stunden (10800000 Millisekunden) zwischen jedem Tweet festgelegt.

tweetMessage();

Verzögerung (10800000);

Typ Gießen

Viele der Messwerte, die wir von den Sensoren erhalten, sind im Datentyp „int“oder „float“. Aber da wir diese Werte twittern, müssen wir sie in einen 'String'-Datentyp umwandeln. Dazu verwenden wir eine spezielle Type-Casting-Technik.

char *dtostrf (double val, vorzeichenbehaftete Zeichenbreite, unsigned char prec, char *sout) {

char-fmt[100]; sprintf(fmt, "%%%d.%df", width, prec); sprintf(sout, fmt, val); Rückkehr nach Süden; }

Twitter-Token

Der Twitter-Token wird auf der Website von NeoCat erstellt und sollte hier in den Token-Bereich eingefügt werden.

Leere tweetMessage() {

Twitter twitter(" TWITTER TOKEN HIER EINGEBEN ");

Tweeting-Sensorwerte

Um den Sensorwert zu twittern, geben wir zuerst den Sensortyp ein; Beispiel: "Luftfeuchtigkeit". Darauf folgt eine Zeichendeklaration und eine Codezeile, die für die Typumwandlung erforderlich ist. Als nächstes fügen wir eine Aussage für die Maßeinheit hinzu; Beispiel: "%rF". Auf ähnliche Weise können wir auch weiterhin Werte anderer Sensoren hinzufügen.

Feuchtigkeit(); schweben feucht;

//Twitter-Nachricht String stringMsg = "Luftfeuchtigkeit:"; char-tmp[10]; dtostrf(feucht, 1, 2, tmp); stringMsg += tmp; stringMsg += "%RH";

Standort und Markierung der Wetterstation

Als nächstes markieren wir den Standort (Stadt, Ort usw.) und andere Tags wie #iotweatherstn.

stringMsg += " #Mumbai #Bandra #iotweatherstn ";

Echtzeituhr (RTC)

Wie bereits erwähnt, kann TWIST auch die Echtzeituhrdaten tweeten. Unten ist ein Beispiel für den 'Tag'-Parameterblock des RTC-Codes. Die Echtzeituhr-Funktion ist in der TWIST-Plattform optional, da das Modul separat geliefert wird. Daher wird im TWIST-Repository ein separater Zweig für den Code und die Schaltpläne des Echtzeituhrzweigs erstellt.

TwistDateTime(); DateTime now = rtc.now(); int twistday, twistmonth, twistyear, twisthour, twistmin, twistsec; String stringMsg = ""; char ds1307day[10]; dtostrf(twistday, 1, 0ds1307day); stringMsg += ds1307day; stringMsg += "/";

140 Zeichenbegrenzung

Dieser Codeblock wandelt das String-Array in ein 140-Zeichen-Array um, das zum Tweeten bereit ist.

Zeichennachricht[140];

stringMsg.toCharArray(msg, 140);

Fehlerbehebung bei Meldungen und Verbindungen

Dieser Codeblock druckt ein paar Textzeilen im Serial Monitor aus, um dem Benutzer zu helfen, die Nachricht und den Tweet-Status zu überprüfen.

//Twittere diesen Trottel!

if (twitter.post (msg)) {int status = twitter.wait(); if (status == 200) {Serial.println("OK."); Serial.println ("Nachricht getwittert"); aufrechtzuerhalten. Sonst {//Verbindungstest Serial.print ("fehlgeschlagen: Code"); Serial.println ("Nachricht nicht getwittert"); Serial.println (Status); } } else { Serial.println ("Verbindung fehlgeschlagen."); Serial.println ("Nachricht nicht getwittert"); }

Alle anderen Codeblöcke wandeln einfach die analogen oder digitalen Messwerte der Sensoren in nutzbare Daten um.

Der Code kann von hier oder aus dem Haupt-Repository heruntergeladen werden:

Wetterstation.ino

Schritt 8: Beitrag zum Sensor-Repository

Sie sind Programmierer, Ingenieur oder Designer und haben eine tolle Idee für ein neues Feature in TWIST? Vielleicht haben Sie eine gute Idee für einen Bugfix? Zögern Sie nicht, unseren Code, Schaltpläne und CAD-Dateien von Github zu holen und daran zu basteln.

TWIST GitHub

Intel® IoT-Einladungen
Intel® IoT-Einladungen
Intel® IoT-Einladungen
Intel® IoT-Einladungen

Zweiter Preis beim Intel® IoT Invitational

Empfohlen: