Summary of Arduino MKR1000 Weather Station
This project builds a mini weather station using an Arduino MKR1000 to monitor temperature, pressure, light, dust, and soil moisture. Data is displayed on an OLED screen and sent to the Cayenne IoT dashboard via MQTT. The system integrates multiple sensors for environmental analysis and provides real-time updates through a custom interface.
Parts used in the Mini Weather Station:
- Arduino MKR1000
- Adafruit TSL2561 Luminosity Sensor
- Adafruit BMP180 Barometric Pressure/Temperature Sensor
- OLED display I2C
- SparkFun Level Shifter Board
- Sharp GP2Y1010AU0F Dust Sensor
- Soil Moisture Sensor
- Breadboard (generic)
- Jumper wires (generic)
Weather station monitors temperature, pressure, light, dust, soil moisture values and displays on the OLED screen and Cayenne dashboard.

Things used in this project
Story


The OLED display shows the temperature, pressure and dust. The Arduino MKR1000 is connected to the Cayenne over MQTT.
Connecting the Arduino MKR1000 to Cayenne:
- Add new: Device/Widget
- Bring Your Own Thing
- Add code to Username, Password and Client ID
- Add code to SSID and Password from your Wi-Fi
- Upload code to the Arduino MKR1000
- Wait for board to connect
Add Widgets:
- Add new: Device/Widget
- Custom Widgets
- Select a widget that you need
- Enter the name of the widget
- Select device, Virtual Pin, Pin number
- Select Data, Unit, Icon
- Add Widget

Schematics
Code
- How does the device connect to the internet?
The Arduino MKR1000 connects to Cayenne over MQTT using provided SSID, password, username, and client ID. - What components are required to build this station?
You need an Arduino MKR1000, luminosity sensor, barometer, OLED display, level shifter, dust sensor, moisture sensor, breadboard, and jumper wires. - Does the system display data locally?
Yes, the OLED display shows temperature, pressure, and dust values directly on the board. - Can users customize the widgets on the dashboard?
Yes, users can add custom widgets by selecting the device, virtual pin, name, unit, and icon in the Cayenne Dashboard. - What is the interval for publishing data?
The code is set to publish data every 10 seconds, though this value can be changed in the loop function. - How is the dust level calculated?
The system reads analog voltage from the Sharp sensor and converts it to micrograms per cubic meter using a specific formula. - What software is needed for this project?
You must use the Arduino IDE and the myDevices Cayenne online service. - Which pins are used for the sensors?
The code defines Virtual Pins V1 through V5 for barometer, temperature, light, dust, and moisture respectively.







