Inhoudsopgave:

Weerstation tweeten: 8 stappen (met afbeeldingen)
Weerstation tweeten: 8 stappen (met afbeeldingen)

Video: Weerstation tweeten: 8 stappen (met afbeeldingen)

Video: Weerstation tweeten: 8 stappen (met afbeeldingen)
Video: Webinar 'Tewerkstellingsondersteunende maatregelen' 2024, November
Anonim
Weerstation tweeten
Weerstation tweeten

Ooit de huidige weersomstandigheden, CO2-voetafdruk, geluidsoverlast en vervuilingsniveaus van uw stad willen volgen? Wil je een Climate Change Crusader zijn of je eigen Twitter-weerstation opzetten en je lokale weersomstandigheden met de wereld delen?

Maak kennis met het tweeten van Weather IoT Station, ook bekend als TWIST - een doe-het-zelf, open-source platform voor milieumonitoring en meteorologische data-acquisitie. Het doel van TWIST is dat individuen en gemeenschappen gegevens kunnen verzamelen over wat er werkelijk in hun omgeving gebeurt en deze gegevens kunnen delen op sociale media zoals Twitter.

  • TWIST is een door Internet of Things (IoT) aangedreven platform.
  • Het brein van TWIST is een Intel Edison Board.
  • TWIST is compatibel met verschillende sensoren.
  • Alle code, ontwerpbestanden (schema's en PCB-lay-out) zijn open source. Dit betekent dat iedereen kan bijdragen aan het TWIST-platform door code en schema's voor verschillende sensoren te delen.

TWIST bestaat uit drie technologische lagen:

De eerste laag is een hardwarebord dat alle weer- en omgevingssensoren bevat die bekend staan als het 'Sensorbord'. Zoals de naam al doet vermoeden, draagt het sensoren die de luchtsamenstelling, temperatuur, vochtigheid en regen meten. Extra sensoren zoals seismische activiteit, UV-index, luchtdruk, hoogte, lux (lichtsterkte), geluidsniveaus, windsnelheid en -richting, enz. kunnen ook worden toegevoegd. Zodra het is ingesteld, kan het Sensor Board de door de sensoren gemeten gegevens naar de tweede laag streamen. De tweede laag is het Intel Edison Board dat gegevens van het Sensor Board ontvangt, verwerkt en naar de volgende laag stuurt. De derde laag verbindt uw Edison-bord met internet via Wi-Fi met behulp van de draadloze module op het Edison-bord en Tweet's de huidige weers- en omgevingsomstandigheden.

Het apparaat kan van stroom worden voorzien door een zonnepaneel of een AC-adapter.

Versiebeheerde opslagplaatsen

Alle drie de technologische lagen van TWIST zijn open-source, en dus zijn alle bestanden die we gebruiken voor code, PCB-ontwikkeling, mechanisch ontwerp, enz. direct beschikbaar in onze Github-repository.

Wedstrijdinzendingen

Intel IoT Invitational

Ik wil Intel+Instructables bedanken voor het verstrekken van de Intel Edison Board. Ik ben van plan om nog veel meer IoT-gerelateerde Instructables te maken met behulp van het Edison-bord.

#iotweatherstn

Als je TWIST maakt, vergeet dan niet het weer te tweeten met #iotweatherstn. #iotweatherstn kan een hashtag zijn die door alle door IoT aangedreven tweeting-weerstations wordt gebruikt.

Stap 1: Onderdelen en materialen

Onderdelen en materialen
Onderdelen en materialen
Onderdelen en materialen
Onderdelen en materialen
Onderdelen en materialen
Onderdelen en materialen

HoeveelheidOnderdeelDetails 1

Intel Edison

met Arduino Breakout Board

1

MQ2 sensor voor brandbaar gas

1

YL-83

Regen sensor

1

SL-HS-220

Temperatuur- en vochtigheidssensor

1

Weerstand

32K

4,7K

3 metalen afstandhouder 1 inch

1

Weerstand

32K

4,7K

2

Houten blad A4-formaat

Kan later op maat worden gesneden

3

Metalen afstandhouder

1 inch

Stap 2: Elektrisch ontwerp

Stroom

Het hele systeem wordt gevoed door een 5V 1A voeding. De sensoren (temperatuur, vochtigheid, regen, gas) verbruiken ongeveer 200 mA, de Edison ongeveer 500 mA. Aangezien de totale benodigde stroom minder dan 1 ampère is, zou een voeding van 1 ampère prima moeten werken. De ingebouwde groene LED op digitale pin 13 van het Edison Board wordt gebruikt om de stroomstatus weer te geven.

ControleEen Intel Edison runt de show voor TWIST. De Edison is gemonteerd op een Arduino breakout board, waardoor het gemakkelijk is om de digitale & analoge signalen van de sensoren te lezen. De Edison wordt via een micro-USB-kabel aangesloten op de 5V-rail. De Edison heeft een ingebouwde Wi-Fi-radio, waardoor hij verbinding kan maken met Twitter zonder dat er extra hardware nodig is.

Realtime klok (RTC)

Aangezien de tijdstempel die automatisch door Twitter wordt uitgevoerd voor elke tweet een resolutie heeft die beperkt is tot het totale aantal dagen sinds de tijd van het tweeten, wordt een realtime klok gebruikt om de datum en tijd nauwkeurig in de Hour-Minuten- Tweede formaat. De realtime klok die in het TWIST-platform wordt gebruikt, is de DS-1307 RTC-module.

Sensoren De meest basale opstelling van dit systeem heeft vier sensoren (Temperatuur, Vochtigheid, Regen, Gas) die op de Edison worden aangesloten. Er kunnen extra sensoren worden toegevoegd, zoals ruis, wind, enz. Elke sensor wordt rechtstreeks gevoed door de 5V-rail en heeft zijn signaalpin aangesloten op respectievelijk analoge pinnen A0 tot en met A2 en digitale pin 2 op het Edison-breakoutboard. De sensoren hebben ook elk een potentiometer voor het instellen van de gevoeligheid die op elke sensorkaart is gemonteerd; De MQ-2 is een sensor voor brandbaar gas (vloeibaar petroleumgas, propaan, waterstof en methaan) die een analoge spanning afgeeft die evenredig is met de concentratie van gassen in delen per miljoen. De SL-HS-220 heeft een thermistor die de temperatuurwaarde aangeeft. Aangezien de output van de thermistor niet-lineair is, wordt de overeenkomstige temperatuurtabel gegeven in de sensoropslag. De thermistor heeft een spanningsdelercircuit nodig wanneer deze is aangesloten op de Edison Board, zoals weergegeven in het schakelschema. De SL-HS-220 heeft ook een ingebouwde hygrometer die de vochtigheid meet en een analoge spanning afgeeft die overeenkomt met een vaste vochtigheidswaarde. De vochtigheid-spanningstabel wordt ook gegeven in de sensorrepository. Een veelvoorkomend alternatief voor de SL-HS-220 is de DHT11-sensor. De regensensor/watersensor heeft een potentiometer die is afgesteld om een digitale uitgang te geven voor een bepaalde hoeveelheid regen waarvan de gevoeligheid door de gebruiker kan worden aangepast.

Weerstation.fzz

Stap 3: Mechanisch ontwerp

Het lichaam van de TWIST is gemaakt van twee platen van houten platen. Hoewel ik 1/4" multiplex heb gebruikt, kan het ontwerp uit elk plaatmateriaal worden geassembleerd, aangezien de afstand (behouden door 1" aluminium afstandhouders) het enige kritische element is. Ik heb de vectorbestanden voor download hierboven bijgevoegd.

Laser snijden

Voor iedereen die de twee platen wil lasersnijden, heb ik de lasercutter-bestanden hieronder bijgevoegd om te downloaden. Het bevat ook een extra luchtkwaliteitssensor in zijn ontwerp. U kunt dus een MQ2-sensormodule of luchtkwaliteitssensormodule gebruiken, afhankelijk van uw keuze.

Stap 4: Framemontage: gezicht en basis

Voorplaat

De sensoren passen in hun bijpassende gaten en uitsparingen en kunnen worden bevestigd met schroeven of lijm.

Grondplaat

De afstandhouders van het Edison-bord worden op de basisplaat geschroefd. De analoog-naar-digitaal converter (ADC) die is aangesloten op de regensensor kan ook op de grondplaat worden geschroefd.

Extra componenten zoals zoemers of het spanningsregelaarcircuit voor de zonne-ingang kunnen ook op de grondplaat worden geschroefd.

De grondplaat en de voorplaat zijn beide gescheiden door afstandhouders van 1 inch.

Stap 5: Elektronica en sensorassemblage

Stroom

De stroomvoorziening voor het systeem wordt geleverd door een wandadapter met een standaard barrel jack die direct is aangesloten op de Edison's Barrel connector. Het systeem kan ook worden gevoed via de USB-poort op het Edison-bord. U kunt het bord ook van stroom voorzien via een extern zonnepaneel.

Sensoren

De sensoren zijn bevestigd aan breakout-borden met mannelijke headers en kunnen daarom rechtstreeks op de Edison worden aangesloten via mannelijke-naar-vrouwelijke jumperdraden.

Stap 6: Twitter-configuratie

Om te kunnen tweeten, gebruiken we een app van derden die is ontwikkeld door NeoCat en die de Twitter-token krijgt die je nodig hebt om te tweeten met je Edison-bord. Tokens kunnen ook worden verkregen via de ontwikkelaarswebpagina van Twitter.

Dus, om te beginnen, bezoek NeoCat's website, volg zijn/haar tutorial om de Twitter-bibliotheek en je Twitter-token te krijgen. Zoals NeoCat op hun site vermeldt, maak geen misbruik van de service. Houd je tweets spaarzaam. Als je iets nodig hebt dat elke 6 seconden tweet, moet je je eigen server en twitter-app opzetten en daarom zorgt de code die ik heb geschreven ervoor dat de server van NeoCat niet overbelast wordt (TWIST tweets elke 6 uur).

De bibliotheek gebruikt de website van deze NeoCat als een proxyserver voor OAuth-dingen. Uw tweet mag niet worden toegepast tijdens het onderhoud van de website van deze NeoCat. Twitter lijkt herhaalde tweets met dezelfde inhoud te weigeren (retourneert fout 403).

Twitter-token

Arduino Tweet Bibliotheek

Stap 7: Software & Configuratie

Volg de installatiehandleiding van Intel voor de Intel Edsion voordat u begint met coderen.

Het programma is een Arduino-schets die op de Edison draait. Ik heb elk van de belangrijkste codeblokken hieronder uitgelegd.

De code bevat een aantal vooraf gedefinieerde constanten, pin-declaraties en een aantal seriële print-statements die helpen bij het oplossen van problemen.

Tweet vertraging

Aangezien Twitter tweets uitfiltert die dezelfde inhoud hebben en binnen korte tijd tussen beide tweets worden getweet, is er standaard een vertraging van 3 uur (10800000 milliseconden) tussen elke tweet ingesteld.

tweetBericht();

vertraging (10800000);

Type Gieten

Veel van de metingen die we van de sensoren krijgen, zijn van het datatype 'int' of 'float'. Maar aangezien we deze waarden tweeten, moeten we ze converteren naar een 'String'-gegevenstype. Hiervoor gebruiken we een speciale Type-casting techniek.

char *dtostrf (dubbele waarde, ondertekende char-breedte, niet-ondertekende char prec, char *sout) {

char fmt[100]; sprintf(fmt, "%%%d.%df", breedte, prec); sprintf(zuid, fmt, val); terug naar het zuiden; }

Twitter-token

De twitter-token is gemaakt op de website van NeoCat en moet hier in de tokenruimte worden geplakt.

ongeldige tweetMessage() {

Twitter twitter ("VOER HIER TWITTER TOKEN IN ");

Sensorwaarden tweeten

Om de sensorwaarde te tweeten nemen we eerst het Sensortype op; Voorbeeld: "Vochtigheid". Dit gevolgd door een karakterdeclaratie en een regel code die nodig is voor typecasting. Vervolgens voegen we een statement toe voor de meeteenheid; Voorbeeld: "%RH". Op dezelfde manier kunnen we ook waarden van andere sensoren blijven toevoegen.

vochtigheid(); drijven vochtig;

// Twitter-bericht String stringMsg = "Vochtigheid:"; char tmp[10]; dtostrf(vochtig, 1, 2, tmp); stringMsg += tmp; stringMsg += "%RH";

Locatie en tagging van weerstation

Vervolgens taggen we de locatie (stad, plaats, enz.) en andere tags zoals #iotweatherstn.

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

Realtime klok (RTC)

Zoals eerder uitgelegd, kan TWIST ook de realtimeklokgegevens tweeten. Hieronder ziet u een voorbeeld van het codeblok 'dag' van de RTC. De Real Time Clock-functie is optioneel in het TWIST-platform, aangezien de module afzonderlijk wordt geleverd. Daarom is er een aparte tak gemaakt in de TWIST-repository voor de code en schema's van de Real Time Clock-tak.

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

Limiet van 140 tekens

Dit codeblok bedekt de stringarray tot een array van 140 tekens, klaar om te tweeten.

char bericht[140];

stringMsg.toCharArray(msg, 140);

Problemen met berichten en verbinding oplossen

Dit codeblok drukt een paar regels tekst af in de seriële monitor om de gebruiker te helpen het bericht en de tweetstatus te controleren.

//Tweet die sukkel!

if (twitter.post(msg)) {int status = twitter.wait(); if (status == 200) { Serial.println("OK."); Serial.println("Bericht getweet"); } else { //Verbindingstest Serial.print("mislukt: code"); Serial.println("Bericht niet getweet"); Serieel.println(status); } } else { Serial.println("verbinding mislukt."); Serial.println("Bericht niet getweet"); }

Alle andere codeblokken zetten de analoge of digitale uitlezing van de sensoren eenvoudig om in bruikbare gegevens.

De code kan hier of vanuit de hoofdrepository worden gedownload:

Weerstation.ino

Stap 8: Bijdragen aan de Sensor Repository

Ben jij een programmeur, ingenieur of ontwerper die een geweldig idee heeft voor een nieuwe functie in TWIST? Misschien heb je een goed idee voor een bugfix? Voel je vrij om onze code, schema's en CAD-bestanden van Github te pakken en ermee te sleutelen.

TWIST GitHub

Intel® IoT Invitational
Intel® IoT Invitational
Intel® IoT Invitational
Intel® IoT Invitational

Tweede prijs in de Intel® IoT Invitational

Aanbevolen: