|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Estación meteorológica
Cómo montar una estación meteorológica
Juan Antonio Villalpando

-- Tutorial de montaje y configuración --

Volver al índice del tutorial  

____________________________

9.- Formulario meteorológico.

- Aquí presento varias fórmulas para obtener datos meteorológicos.

- Las aplicaciones las he realizado con Autoit, atrévete a pasarlas a App inventor 2.

- Los sensores de las estaciones meteorológicas suelen medir:

Humedad exterior, Humedad interior, Temperatura exterior, Temperatura interior, Presión, Velocidad del viento, Cantidad de lluvia y Dirección del viento.

Los demás valores que observamos en las web de las estaciones meteorológicas, por ejemplo: sensación térmica, punto de rocío, índice de calor, fase lunar,... están obtenidas mediante expresiones matemáticas con los datos de los sensores indicados anteriormente.

- Aquí he puesto alguno de ellos:

_________________________________________

- De Centígrados a Fahrenheit.

fahrenheit.exe

_________________________________________

- De Fahrenheit a Centígrados.

centigrados.exe

_________________________________________

- De mph a km/h. De millas por hora a kilómetros por hora.

- De km/h a mph. De kilómetros por hora a millas por hora.

mph.exe

_________________________________________

- De m/s a km/h. De metros por segundo a kilómetros por segundo.

- De km/h a m/s. De kilómetros por segundo a metros por segundo.

ms.exe

_________________________________________

- De mm a in. De milímetros a pulgadas (inches).

pulgadas.exe

_________________________________________

- De in a mm. De pulgadas (inches a milímetros).

 

milimetros.exe

_________________________________________

- Punto de rocío.

Pr = Punto de rocío.

H = Humedad.

T = Temperatura.

punto_de_rocio.exe

_________________________________________

- Humedad.

H = Humedad.

Pr = Punto de rocío.

T = Temperatura.

humedad.exe

_________________________________________

- Altura de la base de las nubes.

T = Temperatura.

Pr = Punto de rocío.

altura_de_las_nubes.exe

_________________________________________

- Sensación térmica.

Twc = Sensación térmica.

T = Temperatura.

V = Velocidad del viento en km/h.

sensacion_termica.exe

_________________________________________

- Índice de calor.

indice_de_calor.exe

_________________________________________

- Índice de humedad.

IH = Índice de humedad.

T = Temperatura.

Pr = Punto de rocío.

indice_de_humedad.exe

_________________________________________

- Altura por relación de presiones.

a = Altura en metros.

Po = Presión estática.

Pref = Presión de referencia.

 

altura.exe

_________________________________________

- Cálculo de la fase lunar.

fase_lunar.exe

 

Con autoit


#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Fase Lunar", 361, 271, 192, 124)
$Label1 = GUICtrlCreateLabel("Día", 32, 40, 31, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput("", 72, 32, 33, 28, BitOR($ES_RIGHT,$ES_AUTOHSCROLL))
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Mes", 128, 40, 37, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Input2 = GUICtrlCreateInput("", 176, 32, 33, 28, BitOR($ES_RIGHT,$ES_AUTOHSCROLL))
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("Año", 232, 40, 36, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Input3 = GUICtrlCreateInput("", 280, 32, 49, 28, BitOR($ES_RIGHT,$ES_AUTOHSCROLL))
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Pulsa para obtener la fase lunar", 80, 72, 201, 33)
$Label4 = GUICtrlCreateLabel("Fase lunar:", 24, 128, 94, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Label5 = GUICtrlCreateLabel("", 128, 128, 172, 20)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Pic1 = GUICtrlCreatePic("C:\estacion_meteorologica\imagenes\fase_lunar.gif", 32, 176, 305, 57, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
; Cuando pulsa el botón realiza el cálculo.
Case $msg = $Button1

$dia = GUICtrlRead($Input1)
$mes = GUICtrlRead($Input2)
$anno = GUICtrlRead($Input3)

$c = 0
$e = 0
$jd = 0
$b = 0

If ($mes < 3) Then
$anno = $anno - 1
$mes = $mes + 12
EndIf

$mes = $mes + 1
$c = 365.25 * $anno
$e = 30.6 * $mes
$jd = $c + $e + $dia - 694039.09 ; jd es el tiempo total transcurrido

$jd = $jd / 29.5305882 ; divide por el ciclo lunar

$b = Int ($jd)
$jd = $jd - $b
$b = Round($jd * 8)

If ($b >= 8 ) Then $b = 0

Switch $b
Case 0
$fase = "Luna nueva"
Case 1
$fase = "Poco creciente"
Case 2
$fase = "Cuarto creciente"
Case 3
$fase = "Muy creciente"
Case 4
$fase = "Luna llena"
Case 5
$fase = "Poco menguante"
Case 6
$fase = "Cuarto menguante"
Case 7
$fase = "Muy menguante"
EndSwitch

GUICtrlSetData($Label5, $b & "-" & $fase)

EndSelect
WEnd
Exit


_________________________________________

- Cálculo de la salida y puesta de sol. Orto y Ocaso.

¿Te atreves con esto? Se trata de pasar un algoritmo que calcula la salida y la puesta del sol a un lenguaje de programación, en nuestro caso el AutoIt.


- El algoritmo lo encontramos en: http://williams.best.vwh.net/sunrise_sunset_algorithm.htm.
- Los datos de entrada son el día, mes, año, longitud y latitud.

- Los lenguajes de programación realizan las funciones seno, coseno, tangente, arcoseno, arcocoseno y arcotangente en radianes, y el algoritmo hace los cálculos en grados, por lo cual debemos hacer conversiones de grados a radianes y viceversa:
- g = (r * 360) / (2 * PI) = 57.29578 * r
- r = (g * 2 * PI) / 360 = 0.0174532 * g

Notas palurdas:

sin (angulogrados * r)
cos (angulogrados * r)
tan (angulogrados * r)
g * asin(valor)
g * acos(valor)
g * atan(valor)

- floor es un redondeo al menor entero. floor(4.76) = 4          floor(-4.29) = -5

- Nota sabia: si hablas con un argentino, no le menciones el orto ;-)


___________________________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información