Weerstation op basis van Raspberry Pi (10 / 11 stap)

Stap 10: Update voor Project 1 - windrichting


Het is al een tijdje sinds de oprichting van dit instructable en dingen kreeg enige verbetering.

Het weerstation loopt en upload nu beide wind snelheid en richting. Nu zal ik u tonen hoe de windrichting werkt. Het is ook lezen en uploaden van UV-índex.

Er zijn een paar projecten rond die gebruikmaken van een installatie van riet swicthes te krijgen van de kop van de wind. Ik dacht altijd dat het doet een vrij eenvoudige oplossing, maar tegenwoordig met digitale kompassen lijkt geschikter om één van deze kleine apparaten te gebruiken. Ook, aangezien mijn doelstelling was om uit te voeren van alle sensoren op I2C bus, was ik zeker dat ik kon vinden dat zou passen in dit soort bus. Dus deed ik.

Ik ben met behulp van een HMC5883L, die een 3-as digitale kompas is, I2C bus gebruikt. Vindt u klaar gesoldeerd modules op ebay zo goedkoop als 1 euro. Gewoon zoeken en u vindt ze zeker.

Een stuk van advies met deze sensor. Ik denk dat dit soort sensoren erg gevoelig, omdat ik erin geslaagd om te doden een. Na een paar dagen krijgen van verkeerde aanwijzingen van het, kreeg ik een nieuwe die een en al geregeld. Maar wees voorzichtig, niet laten vallen ook veel vaak.

Importante anderzijds dat ik gebruikte heet een Sleepring. Wat is een Sleepring? Het is een klein apparaat waarmee u een roterende as en verbindingen tegelijkertijd. Er zijn verschillende parameters die definiëren van dergelijk apparaat. Één is het aantal manieren (of draden) en de andere is de nominale stroom aangenomen door de draden. Sindsdien zijn we alleen lezing sensor, en in dit geval I2c, zullen we 4 draden en de huidige is zo laag als je kunt krijgen.

Ik heb een 6 draad, lage huidige die is er gebeurd met de as diameter hebben hetzelfde als de binnenste maatregel van sommige kunststof leidingen die ik gebruikt om te bouwen van de vaan.

De diverse foto's tonen hoe ik erin geslaagd om te bouwen van het ding. Het is niet mooi maar het dows de baan.

SOFTWARE

Het is een vrij simpel ding om te lezen van de HCM. Nam ik een paar blikken op het gegevensblad, wat onderzoek gedaan in het web, en ik moet de regels van deze code om het werk te zetten:

def write_byte (adres, adr, waarde):
bus.write_byte_data (adres, adr, waarde)

-Procedure om gegevens te schrijven in een specifiek adres van de I2C-bus.

def median(lst):
LST = sorted(lst)
Als len(lst) < 1:
retourneren geen
Als len(lst) %2 == 1:
lst terug [((len (lst) + 1) / 2)-1]
anders:
Return float(sum(lst[(len(lst)/2)-1:(len(lst)/2)+1])) / 2.0

-Dit is een procedure voor het krijgen van het gemiddelde aantal van een lijst van lezingen. Het zal nodig zijn

write_byte (0x1E, 0, 0b01110000) # 8 monsters bij 15Hz instellen
write_byte (0x1E, 1, 0b00100000) # 1.3 krijgen LSb / Gauss 1090 (standaard)
write_byte (0x1E, 2, 0b00000000) # continue bemonstering
schaal = 0.92
x_offset = 45
y_offset =-82

-Verklaringen voor de sensor nodig. De eerste 3 regels instellen monster lezingen en krijgen. De vierde stelt de schaal. De 2 laatsten zijn waarden af te stemmen op de sensorgegevens. Ze kunnen variëren van sensor naar sensor, maar allermeest naar de tijd zij niet van invloed op veel van de lezing.

def get_heading():
x_out = (read_word_2c(0x1E,3) - x_offset) * schaal
y_out = (read_word_2c(0x1E,7) - y_offset) * schaal
z_out = (read_word_2c(0x1E,5)) * schaal
rekening houdend met = math.atan2 (y_out, x_out)
Als (rekening houdend met < 0):
rekening houdend met += 2 * math.pi
Als ((math.degrees(bearing) + 90) < 360 en (math.degrees(bearing)+90) > 90):
rubriek = math.degrees (lager) + 90
# print round(heading,0)
Elif math.degrees (lager) + 90 == 360:

rubriek = 0
# print round(heading,0)
anders:
rubriek math.degrees (lager) =-270
# print round(heading,0)
rubriek terug

-Dit is de belangrijkste lezing-procedure. Het geeft u de kop van de lamel in graden tussen 0 tot 359

Dus nu dat we alle declaraties en procedures, de enige ontbreekt voorbij is de volgende code invoegen in het hoofdprogramma:

DIR = 0
Lista = range(500)
afdrukken ('lezen van 500 keer windrichting gescheiden door 10mS elke voor het vloeiend maken laatste lezen...')
voor dd in bereik (0, 500):
Lista [dd] = get_heading()
time.Sleep(0.01)
richting = median(lista)
afdrukken ('Done!')
afdrukken ('Wind dir is', richting)

Ik vond dat slechts één lezing doen leiden enorme variaties in de richting, tot zou dus wat we hier doen is het nemen van 500 metingen gescheiden door 10mS elke en uitvoeren van het gemiddelde van alle waarden. Alle regels afdrukken kunnen worden geschrapt aangezien ze alleen dienen voor foutopsporing.

Vergeet niet de upload-lijn om aan te werken wunderground, nu we meer gegevens hebben, dus je moet zetten in windir = richting, in mijn geval.

Cheers, mensen!

Gerelateerde Artikelen

Monitor voor draadloos verkeer tank robot op basis van raspberry pi

Monitor voor draadloos verkeer tank robot op basis van raspberry pi

DIY een tank van de monitor voor draadloos verkeer is niet moeilijk op basis van de raspberry pi, weergegeven in de volgende afbeelding.Stap 1: Materialen voor de monitor van de raspberry pi gebaseerd rc tank 1.De Raad van de Raspberry pi:http://www.
3G Draadloze Router op basis van Raspberry Pi2

3G Draadloze Router op basis van Raspberry Pi2

Dit is een 3G draadloze router op basis van Raspberry Pi 2. De raspberry pi die kan uitvoeren van de verschillende linux distributies kan doen diverse voeders en interessante hulpprogramma's worden gebruikt. Ik had deze 3g-router met behulp van de ra
Draagbare inheemse MOD speler op basis van Raspberry PI (speelt MOD, S3M, IT, XM enz...). BassPlay-bibliotheek gebruikt.

Draagbare inheemse MOD speler op basis van Raspberry PI (speelt MOD, S3M, IT, XM enz...). BassPlay-bibliotheek gebruikt.

Description:Raspberry-PI gebaseerd inheemse MOD speler om te spelen muziek modules MOD, S3M, IT, XM o.a..Het opdrachtregelprogramma speler op basis van Bas-spel bibliotheken gebruikt.Korte beschrijving van de muziek modules:Muziek modules is afkomsti
Aquarium LED licht Controller op basis van Raspberry Pi

Aquarium LED licht Controller op basis van Raspberry Pi

Het hebben van een aquarium is goed voor een hobby en goed voor een beroep.Een van de belangrijkste onderdelen van een aquarium is de juiste verlichtingssysteem (onder anderen).Er is veel literatuur op het internet over dit thema, uit de zeer fundame
High-End Sound met 7 Inch Touchscreen Control op basis van Raspberry Pi en Max2Play

High-End Sound met 7 Inch Touchscreen Control op basis van Raspberry Pi en Max2Play

Met de komst van de nieuwe officiële Raspberry Pi Touchscreen waren we enthousiast om te vinden van aanvragen voor het in ons Max2Play-systeem. Sinds audio-toepassingen hebben een van onze belangrijkste richt zich vanaf het begin, dacht wij meteen va
Programmeren van de ATtiny85 van Raspberry Pi

Programmeren van de ATtiny85 van Raspberry Pi

deze instructies vertellen u hoe te installeren en de ATtiny85 microcontroller van een Raspberry Pi via de SPI interface program. Veel mensen gebruiken de Ardiuno om dit te doen (dan kun je de Arduino IDE en vereenvoudigde C opdrachten gebruiken), of
Kwik RF afstandsbediende contactdoos controle van Raspberry Pi

Kwik RF afstandsbediende contactdoos controle van Raspberry Pi

Hoe u kunt besturen van kwik RF externe aansluitingen van de Raspberry Pi met behulp van Python.Stap 1: preambuleIk wilde het bouwen van een aangepaste controller voor bewaking en beheersing van het milieu in mijn (sub) tropische kassen, en de eerste
Glas van computers op basis van Arduino Uno

Glas van computers op basis van Arduino Uno

Aan mijn meesters graduate project ("Gowing Computers, aansluiten van organen, knippen het snoer") van Konstfack College van kunstnijverheid en Design (keramiek en glas/CRAFT) heb ik gemaakt 3 glazen computers op basis van de specificaties van d
PocketLab op basis van seismograaf

PocketLab op basis van seismograaf

Wonen in California, zijn aardbevingen een onderdeel van het leven. Vroeg of laat u voelt een, en de eerste keer kunnen vrij eng! Als er een kleine aardbeving, die gelukkig de meeste zijn, is het eigenlijk moeilijk zeker te weten totdat u het nieuws
Een zeer goedkope ESP8266 WiFi smart auto bestuurd door telefoon op basis van NodeMCU

Een zeer goedkope ESP8266 WiFi smart auto bestuurd door telefoon op basis van NodeMCU

DoitCar is ontworpen en ontwikkeld door artsen van Shenzhen of Intelligence & technologie (SZDOIT), die het meest kosteneffectief is. Het wordt algemeen toegepast op vele terreinen, sucha als de elektronische minnaar, studenten, Internet of Things (I
Stalen maskers op basis van een 3D gezicht scan

Stalen maskers op basis van een 3D gezicht scan

Ik heb een heleboel de laatste jaar experimenteren met een proces om mozaïek stalen formulieren met behulp van 3D-modellen en waterjet snijden/etsen te maken. (Meer details gegeven hier en hier). I 'm gonna snel opgeschaald in sommige openbare kunst
ESP8266 (stand-alone) weerstation met behulp van de Arduino IDE en GadgetKeeper Cloud Platform

ESP8266 (stand-alone) weerstation met behulp van de Arduino IDE en GadgetKeeper Cloud Platform

Dit is een upgrade van mijn eerdere project GadgetKeeper-weerstation. In dit project ben ik het opbouwen van dezelfde functionaliteit maar alleen met behulp van ESP8266 WiFi SoC standalone met DHT11 temperatuur en vochtigheid sensor. In het vorige pr
DONKER/licht SENSOR op basis van de opamp LM741

DONKER/licht SENSOR op basis van de opamp LM741

he iedereen, i 'm gonna make een donker/licht sensor met behulp van een lm741 opamp. Het is zeer gemakkelijk en vereist slechts zeer weinig delen en is heel interessant lees op.vragen voor de instructables maken te leren jeugd wedstrijd:Wat heeft u t
DIY een Smart apparaat toezicht op basis van Win10 IoT

DIY een Smart apparaat toezicht op basis van Win10 IoT

Ik ben zeer geïnteresseerd in Win10 IoT Core, en willen altijd om een project mee te maken. Ditmaal zal ik u tonen een project dat de milieu-gegevens zoals bodemvochtigheid vocht correcte sensor temperatuur, enzovoort kunt controleren met behulp van