Aurora Alerts Ring




While visiting the north part of Scotland, I came across websites and apps that shows alerts for the Aurora (northern lights). After reading Uri Shaked article "How to Connect Your T-Shirt to Slack Using Arduino", I decided to create an Aurora alerts ring, using WeMos board and 24 NeoPixel LED and gets the alerts from AuroraWatch UK API.

I won’t explain here how the software works, you can read Shaked article for that.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Step 1: Materials

For this project you will need:



  • WeMos D1 Mini  - A tiny ESP8266-based board that run Arduino code, and has built-in WiFi support
  • An RGB LED Ring, I recommend using the 24 NeoPixel LED

I used 24 NeoPixel LED but you can use any type of display you like. Gust modify the code as needed.

I decided to frame it all so I can put it on a wall. And use a standard USB cable to power it up.

Step 2: Step 2: Installation

Arduino Environment Configuration

Make sure you have Arduino 1.6.7 or newer. You can download the latest version from You will need to set up your Arduino environment for ESP8266 development, I use the AdaFruit tutorial. From the Arduino IDE, install the WebSockets and AdaFruit NeoPixel libraries (Sketch> Include Library> Manage Libraries)

Connecting the NeoPixel Ring to the WeMos D1 Mini

Connect the NeoPixel Ring to your WeMos D1 Mini as follows:

  • NeoPixel VCC ↔ WeMos 5V
  • NeoPixel GND ↔ WeMos G
  • NeoPixel IN / DI ↔ WeMos D2 pin

Step 3: Step 3:​ Setting Up the Code

Download the code from

Update aurara_ring.ino with your Wi-Fi network id and password.

const char* networks[][2] = {

{ "ssid", "password"}


* if you need to set up more than one network, read the project's readme file.


If you like only to test the ring, change testRingMode to true.

const boolean testRingMode = true;

Step 4: Step 4: Make It Pretty

I use a nice frame, so I can put it on the wall.

If you don't like to expose the led's ring you can use a thin paper in front of it.

First Time Authors Contest 2016

Participated in the
First Time Authors Contest 2016

Arduino Contest 2016

Participated in the
Arduino Contest 2016

Make it Glow Contest 2016

Participated in the
Make it Glow Contest 2016

1 Person Made This Project!


  • Made with Math Contest

    Made with Math Contest
  • Multi-Discipline Contest

    Multi-Discipline Contest
  • Robotics Contest

    Robotics Contest

9 Discussions


1 year ago

Been away from this for a few weeks, finally got a 24 LED Neo Pixel. I can't get my head around the coding and I can't get it to illuminate a proper proportion of the ring for values below 50. ie if the activity level is currently 7, I'd expect 7/50*24 pixels to light - which equates to 3 LEDs, however, non are currently lit..Please advise how I can improve this...


2 replies

Reply 1 year ago


Yellow alert => 50. Amber => 100 and Red => 200.
The ring is up to 200, in that point we get a full red circle.
There for your calculation is 7/200*24 = 0.84, so no LED should be on.

There is a parameter name "testRingMode". When changing it to true, the system will set a random number (0-249) every 3 Sec. So you can test the LED ring.




Reply 1 year ago

Thanks Daniel, I'll see if I can modify it so that if it's green the calculation will be (e.g.) 7/50*24.

I have a similar device that uses a Blinkt connected to a Pi Zero and I wrote it's program in Python. Yours is much more sophisticated and I feel an ESP8266 sat on my wifi network is possibly less vulnerable to attack than an RPi.


1 year ago

Just made it brilliant!


2 years ago

Hi , I've made one. Works very well. The only change I made was to use a strip of leds and mount them just out of sight on the back ov my TV .In the evening I can see the glow of the lit leds on the wall behind the TV without being intrusive . The TV also has a handy spare USB socket to power the unit

3 replies

Reply 2 years ago

A couple of updates.
I noticed that my wifi seemed a bit slow over the last day or so.After a bit of investigation and using a wifi monitor I found that the EEP8266 was acting as both an access point and a station and broadcasting on the same channel as my home router. To make it act as a station only you have to add this line.
immediatly befor the line.
in the source code.
I found that when my wife turned her reading light In the evening I could not see the led's glow on the wall. But our TV stand has a glass top, so I taped the led strip to the underside of the glass top and now I can see the glow of the leds but not the strip its self.


2 years ago

Fun idea :) We get aurora here sometimes but you have to go out of town to see it.