(photo above is mont ventoux weather station, NOT Dunmore East! – We’ll have a real photo when we’re done)
** Note this is work in progress – last update 01/10/2018 **
Coderdojo kids are building a weather station for the sailing club in Dunmore East (WHSC). This page documents the progress and provides instructions for those who wish to build their own. Hopefully the instructions will avoid too much technical jargon and be easy for anyone to follow.
Thanks to WHSC. The sailing club provides Coderdojo use of a fantastic space for it’s bi-weekly meetings free of charge. The dojo collected contributions for light and heat which the sailing club kindly returned for funding the weather station.
Weather Station Missions
The weather station is being built by the kids using a number of fun ninja missions.
Weather Station Requirements
- Budget €70
- Wind speed, direction and pressure reading essential (it’s for sailing !).
- Must live feed information to the clubs website.
- Sits on the clubhouse roof attached to an existing mast (no need to buy a pole, there is no power).
- Fun project, not a scientific instrument.
The weather station is built using an Arduino Uno (non-genuine) micro-controller board with an Ethernet module attached (for internet connectivity). The Arduino board is housed in a waterproof enclosure close to the sensors on the mast. Power is provided to the Arduino board using the Ethernet cabling.
The Arduino Ethernet module runs a simple http server which publishes data. We have not decided how it will be collected or aggregated yet!
( will put a photo here).
Note that this weather station is not yet in production. The parts, the price (shipping cost to Ireland) and where they were obtained for the readers information, it’s not a recommendation. Prices have been converted to EURO where applicable. The Arduino Uno used is not a genuine Arduino board, this works as expected so far . The Anemometer and Wind Vane sensors are common components re-used in many standard kits, see the specific sensor section for more information.
|Arduino Uno||UNO R3 (CH340G) MEGA328P for UNO R3 (NO USB CABLE)||€2.50||Aliexpress.com (China)|
|Ethernet Module||W5100 Ethernet module Ethernet network module||€3.23||Aliexpress.com (China)|
|Anemometer||replacement anemometer-for n25fr n76nf||€3.45||maplin.ie (in store)|
|Wind vane||Spare part for weather station to test the wind direction, MS-WH-SP-WD||€11.73||Aliexpress.com (China)|
|Anemometer & WV mount||Mounting arm for wind speed sensor wind direction sensor, spare part for weather station||€2.75||Aliexpress.com (China)|
|Temperature Sensor||Stainless steel package Waterproof DS18b20 temperature probe temperature sensor 18B20||€1.20||Aliexpress.com (China)|
|Light Sensor||GY-302 BH1750 light intensity illumination module||€0.73||Aliexpress.com (China)|
|Atmospheric pressure sensor||I2C / SPI BMP280 3.3 Digital Barometric Pressure Altitude Sensor High Precision Atmospheric Module||€0.67||Aliexpress.com (China)|
|Box||Small Electronics Enclosure Clear Plastic Enclosure Waterproof Junction Box Switch Box DIY PLC Project Box 100*68*50mm||€2.13||Aliexpress.com (China)|
|12V Power Supply||–||Myvolts.com (Irl)|
|POE Injector||Hot POE Cable Passive Power Over Ethernet Adapter Cable POE Splitter Injector Power Supply Module 12-48v For IP Camera||€1.41|
|Circuit components||Resistors, capacitors etc.. (detailed list)|
|Misc..||mounting clips and screws|
The anemometer is definitely the most exciting sensor for kids (and adults) because it spins.. This scoopy wind thing (as coined by one of our ninjas) has been around since the 15th century ( see Wikipedia). The spoon shaped ‘scoopy’ version was invented by Thomas Romney Robinson in 1846 (that’s especially interesting for our dojo because Mr. Robinson was born in Dublin – coincidentally, the dojo mentor who purchased our Anemometer in Dublin was also Mr. Robinson. They may or may not be related ).
DS18B20 Waterproof Digital temperature sensor
As the title says this is a DIGITAL temperature sensor and will therefore need to connect to a digital pin on Arduino.
- Usable temperature range: -55 to 125°C (-67°F to +257°F)
- 9 to 12 bit selectable resolution
- Uses 1-Wire interface- requires only one digital pin for communication
- Unique 64 bit ID burned into chip
- Multiple sensors can share one pin
±0.5°C Accuracy from -10°C to +85°C
- Temperature-limit alarm system
- Query time is less than 750ms
- Usable with 3.0V to 5.5V power/data
Advantage of digital: No degradation or interference of signal. Can have multiple sensors connected to a single pin.
Disadvantage: More complicated to read. Uses the Dallas 1-Wire protocol which needs to be decoded.
Red connects to 3-5V, Black connects to ground and Yellow (blue in fig) is data. A pullup resistor is required (We used 5.1K)
Note that you need to place the OneWire folder in your Arduino libraries folder for this to compile. (on windows C:\Users\username\Documents\Arduino\libraries )
Connect up the sensor and test placing in hot water and iced water. Here’s the serial plotter.
Solder the pull up resistor and shrink wrap or tape up for convenience.
BH1750 light intensity illumination module
BH1750 Is a DIGITAL Light sensor using the I2C bus interface.
It measures illuminance. illuminance is a measure of how much luminous flux is spread over a given area. One can think of luminous flux (measured in lumens) as a measure of the total “amount” of visible light present, and the illuminance as a measure of the intensity of illumination on a surface
Lumen : The unit for the quantity of light flowing from a source in any one second (the luminous power, or luminous flux) is called the lumen.
In our sensor we will take a reading from it in Lux which is equal to one lumen per square metre:
Lux = 1 Lm/m2 .
- Illuminance to Digital Converter
- Wide range and High resolution. ( 1 – 65535 lx )
- Low Current by power down function
- 50Hz / 60Hz Light noise reject-function
- I2C bus Interface ( f / s Mode Support )
- No need any external parts
- It is possible to select 2 type of I2C slave-address.
- It is possible to detect min. 0.11 lx, max. 100000 lx by using this function.
ADDR pin sets the address, tying to ground sets address to 0x23. 5V shown above but according to specs 3.3V preferred.
- Download the code and samples here
- Unzip the folder BH1750 and place it in the arduino libraries folder
- Connect the BH1750 as pins as follows; VCC -> 3.3V, SDA -> A4, SCL -> A5, addr -> Gnd, Gnd ->Gnd
- Connect the USB cable to board
- Run the program BH1750 which you will find in examples folder.
- Cover the sensor, shine torch etc.. to see the value fluctuate.
Plot of lux.
Address (ADDR) pin tied to Gnd with jumper sets address to 0x23. .
Further ref: this instructables guide.
W5100 Ethernet module Ethernet network module
This module uses the W5100 chip which provides a set of TCP/IP protocols, MAC (Media Access) and PHY (Physical Interface) in one network chip, with support for the SPI bus interface.
The Arduino IDE library supports W5100 directly using standard Ethernet and SPi library. There are no libraries to load, this is very simple to get working.
- Supports 10/100 Base TX
- Supports half/full duplex operation
- Supports auto-negotiation and auto cross-over detection
- IEEE 802.3/802.3u Compliance
- Operates 3.3V with 5V I/O signal tolerance
- Supports network status indicator LEDs
- Includes Hardware Internet protocols: TCP, IP Ver.4, UDP, ICMP, ARP, PPPoE, IGMP
- Includes Hardware Ethernet protocols: DLC, MAC
- Supports 4 independent connections simultaneously
- Supports MCU bus Interface and SPI Interface
- Supports Direct/Indirect mode bus access
- Supports Socket API for easy application programming
- Temperature : 0 ~ 70℃ (Operation), -40 ~ 85℃ (Storage)
*Note that it does NOT support POE ( Power Over Ethernet – even though you can see POE printed on the circuit, it’s not supported on this version)
- Connect the boards as illustrated.
G -> Gnd (Black)
+5 -> +5v (Red)
R -> Reset (Purple)
SS -> 10 (Orange)
MO -> 11 (Green)
MI -> 12(Blue)
CK -> 13(Yellow)
- Connect to USB
- Load the IDE with File > Example > Ethernet > Web Server (this is in the default install)
- Set the IP address you want to use for the web server in the code. Line -> ‘ IPAddress ip(10, 1, 1, 80);’. Note that you will need to match your network address range (more on that in step 6).
- Compile and upload to Arduino
- Connect an Ethernet cable to the module. The other end should go to your network router or (on most modern PC’s) you can connect directly to the LAN port on the PC. Note that if you make a direct connection, you will need to set the IP address of the Ethernet adapter manually to an IP in the same range as the module for it to work. Normally you will have a green light on your Ethernet port if the cable link is working.
- If you are connected you should have lots LED’s lit on your W5100 module.
- Open up a browser with the IP address you used, you should see a list of analog input values from Arduino.
- You can also use the serial monitor to inspect the http traffic
Further ref – https://arduino-info.wikispaces.com/Ethernet