en:aws
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionNext revisionBoth sides next revision | ||
en:aws [2013/02/20 15:49] – created kaklik | en:aws [2014/08/18 19:16] – [RS232/RS485] fluktuacia | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Automatic weather station AWS01B ====== | ||
+ | |||
+ | An autonomous weather station with its own auto-diagnostics. The station is designed to work in remote areas together with other scientific instruments like robotic telescopes or[[cs: | ||
+ | |||
+ | Very common problems of such applications are scarce energy resources and a need for short-term data transmission occurring after long time intervals. As a result, a possibility of immediate failure report via short-band data channel is essential in order to minimize dropouts in data acquisition. | ||
+ | |||
+ | Apart from these technically still unsolved problems, there are other reasons to design such station - most notably an absence of serious OpenSource-hardware solution for meteorological data collection providing data for [[http:// | ||
+ | |||
+ | |||
+ | ===== Sensors ===== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | ==== Anemometer ==== | ||
+ | |||
+ | A classic anemometer design with cup-shaped rotor. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | The anemometer generates impulses with period inversely proportional to the wind speed. Easy reading via pulse counter and timer. | ||
+ | |||
+ | Wind speed measuring requirements are met with 1Hz sampling or upon the impulse arrival | ||
+ | |||
+ | === Common difficulties === | ||
+ | |||
+ | * Mechanical degradation | ||
+ | * Freezing | ||
+ | * Limit to the mximum measured wind speed | ||
+ | * Seizing up (([[http:// | ||
+ | |||
+ | Solvable by using other anemometer designs - e.g. sonic or ionization anemometer. | ||
+ | |||
+ | ==== Wind direction ==== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Weather vane with wind rose serves as the most basic wind detector. The position of the vane is read by a reed switch and it is recorded when it changes. | ||
+ | |||
+ | === Common difficulties === | ||
+ | |||
+ | Similar to anemometer. | ||
+ | |||
+ | * Mechanical degradation | ||
+ | * Freezing | ||
+ | |||
+ | |||
+ | Can be solved by using more sophisticated anemometer designs that measure vectors (for example ionization or sonic). | ||
+ | |||
+ | ==== Precipitation ==== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | The rain gauge should be equipped with heating and temperature sensor for ice melting regulation. | ||
+ | |||
+ | === Common difficulties === | ||
+ | |||
+ | * Clogging, freezing | ||
+ | |||
+ | ==== Snow precipitation ==== | ||
+ | |||
+ | According to requirements of a weather station operator, a wide variety of snow parameters can be measured. | ||
+ | |||
+ | === Height === | ||
+ | |||
+ | {{: | ||
+ | |||
+ | In the case of acustic measurement, | ||
+ | |||
+ | === Mechanical properties === | ||
+ | |||
+ | Some of the snow's mechanical properties, like hardness and stiffness, can be estimated using the reflected signal of the ultrasonic rangefinder. Using the optical rangefinder, | ||
+ | |||
+ | === Weight === | ||
+ | |||
+ | A total weight of snow cover constitutes an important information in terms of security risks. It can be measured using a reflective plate placed under the snow cover height sensor. At the same time, the plate can act as a weight. | ||
+ | |||
+ | ==== Humidity ==== | ||
+ | |||
+ | Humidity sensors are located in radiation shield. | ||
+ | |||
+ | [[cs: | ||
+ | |||
+ | Sensor time constant is approximately 3s, a satisfactory recorded data sampling is therefore less than 10s. | ||
+ | |||
+ | === Common difficulties === | ||
+ | |||
+ | * Gradual degradation of the measuring element | ||
+ | * Damage to sensor | ||
+ | * Measuring element saturation and time-lagging during vater evaporation. | ||
+ | |||
+ | Self-test in pseudorandom time serves as a diagnostic tool. | ||
+ | |||
+ | |||
+ | ==== Temperature ==== | ||
+ | |||
+ | Measuring the temperature of the air, although being one of the most important function of the station, is in some cases performed incorrectly - e.g. by letting the Sun influence the value. A solution to this problem is so-called radiation shield, which prevents the effect of radiation on the sensor. | ||
+ | |||
+ | Apart from commonly used [[cs: | ||
+ | |||
+ | ==== Pressure ==== | ||
+ | |||
+ | [[cs: | ||
+ | |||
+ | |||
+ | ==== Magnetometer ==== | ||
+ | |||
+ | [[cs: | ||
+ | |||
+ | |||
+ | ==== Cloud cover ==== | ||
+ | |||
+ | === Coverage === | ||
+ | |||
+ | [[cs: | ||
+ | |||
+ | === Height (ceilometer) === | ||
+ | |||
+ | |||
+ | A laser ceilometer can be built from already existing modules. | ||
+ | |||
+ | |||
+ | ==== Radiometer (sunshine measurement) ==== | ||
+ | |||
+ | |||
+ | === Luminous flux === | ||
+ | |||
+ | Use of a photovoltaic cell, measuring output in W/ | ||
+ | |||
+ | === UV index === | ||
+ | |||
+ | Measuring the UV index to determine safe exposure (similar to [[cs: | ||
+ | |||
+ | === Light intensity === | ||
+ | |||
+ | Possible to measure with [[cs: | ||
+ | |||
+ | |||
+ | ==== Ionization detector ==== | ||
+ | |||
+ | Measuring the intensity of ionizing radiation with [[cs: | ||
+ | |||
+ | ==== Infrasound detector ==== | ||
+ | |||
+ | ==== Sound level meter ==== | ||
+ | |||
+ | ==== Limnimeter ==== | ||
+ | |||
+ | Measurement of water level and flow. | ||
+ | |||
+ | ==== Chemical sensors ==== | ||
+ | |||
+ | * Gas detection CO, CO2, N2... H2S, CH4.. [[http:// | ||
+ | * PH-meter | ||
+ | |||
+ | ===== Communication interface ===== | ||
+ | |||
+ | The weather station has several possibilities for interfaces to connect and communicate with other devices. | ||
+ | ==== RS232/RS485 ==== | ||
+ | |||
+ | Modules | ||
+ | |||
+ | ==== Ethernet ==== | ||
+ | |||
+ | === Wifi router === | ||
+ | |||
+ | One of the most universal methods of connecting the station is to use a router with [[https:// | ||
+ | |||
+ | The weather station communicates with router via I2C bus. The bus can either lead directly form the router or through | ||
+ | |||
+ | === ARM modul === | ||
+ | |||
+ | With an advantage of lower power consumption and simpler design a module fitted with ARM [[cs: | ||
+ | |||
+ | ==== USB ==== | ||
+ | |||
+ | === I²C master === | ||
+ | |||
+ | In this case, the entire device acts as [[cs: | ||
+ | |||
+ | === Emulated COM port === | ||
+ | |||
+ | The weather station is connected via [[cs: | ||
+ | |||
+ | ==== Wireless ==== | ||
+ | |||
+ | === Wifi === | ||
+ | |||
+ | See the use of wifi router with OpenWRT. | ||
+ | |||
+ | === GSM === | ||
+ | |||
+ | [[cs: | ||
+ | |||
+ | === ISM band === | ||
+ | |||
+ | ISM represents an [[http:// | ||
+ | |||
+ | * RFM01SMD01A | ||
+ | * RFM02SMD01A | ||
+ | * RX433MHz01A | ||
+ | * TXsaw433MHz01A | ||
+ | * ZIGBEE01A | ||
+ | |||
+ | |||
+ | ===== Reading of measured values ===== | ||
+ | |||
+ | This design offers a possibility of connecting variety of sensors, which are initialised at every station startup. It uses [[cs: | ||
+ | |||
+ | ==== Software instalation ==== | ||
+ | |||
+ | Probably currently the best method is a direct reading of sensors from a master system via [[cs: | ||
+ | |||
+ | Lukáš Mičan from [[http:// | ||
+ | |||
+ | The program is written in Python and uses [[cs: | ||
+ | |||
+ | ===== Power supply ===== | ||
+ | |||
+ | * autonomous power source, e.g. photovoltaic panel | ||
+ | * local power grid | ||
+ | |||
+ | ===== Auto diagnostics ===== | ||
+ | |||
+ | Necessary to implement algorithms controlling mutual correlations of measured values and to detect anomalies. | ||
+ | |||
+ | * Wind direction can not change without speed indication by anemometer. | ||
+ | |||
+ | |||
+ | ==== Considered failures ==== | ||
+ | |||
+ | |||
+ | === Random mechanical destruction === | ||
+ | |||
+ | Involves failures that may arise from defect material or its fatigue due to environmental effects (involving UV radiation, temperature cycles,…) | ||
+ | |||
+ | == Anemometer == | ||
+ | |||
+ | Damage to anemometer can involve breaking off one or more blades or rotor. These events should be detected by measuring an uneven speed during one revolution | ||
+ | |||
+ | === Fake outupt === | ||
+ | |||
+ | Relates to following sensors: | ||
+ | |||
+ | * Anemometer - seizing up | ||
+ | * Wind direction - breaking off the vane | ||
+ | * Precipitation - clogging | ||
+ | |||
+ | === Degradation === | ||
+ | |||
+ | Relates to the sensors measuring: | ||
+ | |||
+ | * temperature | ||
+ | * relative humidity | ||
+ | |||
+ | |||
+ | === Power failure === | ||
+ | |||
+ | Causes: | ||
+ | |||
+ | * Data loss during failure | ||
+ | |||
+ | |||
+ | |||
+ | ===== Output data format ===== | ||
+ | |||
+ | Ideal output data should be compatible with of the already used meteorological data protocols: | ||
+ | |||
+ | * NMEA | ||
+ | * [[https:// | ||
+ | * RMYT? | ||
+ | * Direct reading I²C | ||
+ | |||
+ | Data output should also include accurate time record of measurement - time information can be obtained via [[cs: | ||
+ | |||
+ | ==== Data recording ==== | ||
+ | |||
+ | Data measured by weather station should be recorded and displayed locally. That is why a program serving the weather station should run either on local computer or directly on weather station processor. In the latter case, the weather station would probably run a web server as well, which could provide local data previews and send them to collection network. | ||
+ | |||
+ | The following list contains some of the most widespread Open-Source programs for local data recording and processing. | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Our ideal program should be multi-platform with minimal operating requirements and with possibility of sending data to one of the global network of weather stations. The data should be, at the same time, locally backed up and they should be able to combine with data from other stations. Examples of such databases include: [http:// | ||
+ | |||
+ | ===== Examples of use ===== | ||
+ | |||
+ | * [[en: | ||
+ | * [[cs: | ||
+ | * Weather station of [[cs: | ||
+ | |||
====== Automatic weather station AWS01A ====== | ====== Automatic weather station AWS01A ====== | ||
+ | |||
+ | ===== Sensors ===== | ||
+ | |||
+ | ==== Temperature ==== | ||
+ | |||
+ | Measured by [[cs: | ||
+ | |||
+ | ==== Pressure ==== | ||
+ | |||
+ | Measured by [[cs: | ||
+ | |||
+ | ==== Humidity ==== | ||
+ | |||
+ | To measure a relative humidity and air temperature we use a [[http:// | ||
+ | |||
+ | ==== Anemometer ==== | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Reading is carried out by two timers - one (timer1) is clocked by a crystal and second (timer0) counts the impulses. | ||
+ | |||
+ | |||
+ | ===== Data output ===== | ||
+ | |||
+ | # AWS01A 0.1 (C) 2013 www.mlab.cz | ||
+ | # ver seq temp[K] hum_temp[K] hum[%] bar_temp[K] pressure[hPa] anemo[m/s] check | ||
+ | | ||
+ | $AWS0.1 0 29271 29390 64.3 29416 959.4 6.0 *5C | ||
+ | $AWS0.1 1 29271 29390 64.3 29416 961.1 6.3 *53 | ||
+ | $AWS0.1 2 29277 29389 64.3 29416 960.7 7.0 *59 | ||
+ | |||
+ | Meaning of the variables is as follows: | ||
+ | |||
+ | * **ver** denotes the device and firmware version | ||
+ | * **seq** is the serial number of a measurement | ||
+ | * **temp[K]** denotes the temperature from thermometer (in hundredths of Kelvin) | ||
+ | * **hum_temp[K]** - temperature from 1st humidity sensor | ||
+ | * **hum[%]** - relative humidity measured by 1st humidity sensor | ||
+ | * **bar_temp[K]** - a very inaccurate barometer temperature (interesting rather in the case of eventual relative temperature compensation) | ||
+ | * **pressure[hPa]** - pressure measured by barometer | ||
+ | * **anemo[m/ | ||
+ | * **check** - a checksum (same as NMEA format) | ||
+ | |||
+ | ===== Firmware update ===== | ||
+ | |||
+ | The firmware can be updated without any special utility only by sending HEX file with firmware to serial link of processor when it expects the firmware and writes: | ||
+ | |||
+ | uf?uf? | ||
+ | | ||
+ | This condition occurs after resetting the device. | ||
+ | |||
+ | Following that, a new firmware can be send using a command listed below (either under root account or under account with absolute access to the serial line) | ||
+ | |||
+ | $ echo uf > / | ||
+ | ascii-xfr -s -v -l 110 ./ | ||
+ | | ||
+ | Ascii-xfr program is a part of minicom package in Ubuntu. In order to monitor the data recording, it is possible to listen at the same port: | ||
+ | |||
+ | picocom / | ||
+ | | ||
+ | |||
+ | ===== Weather Station Application ===== | ||
+ | |||
+ | * BART Ondřejov | ||
+ | * D50 telescope (Ondřejov) | ||
+ | |||
+ | === Referencies === | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
en/aws.txt · Last modified: 2015/03/05 22:49 (external edit)