Introduction: Build a Sunburn Alarm
Here's a little demo; Continue to the next page and I'll answer a few questions and show you how to make it
Step 1: FAQ
How does it work?
Sun exposure time is a factor of 3 things;- Skin type. Lighter complexions burn more quickly
- Sunscreen. Suncreen extends exposure time
- Ultraviolet Radiation. UVA (315-400nm) is the main culprit, and it can vary widely throughout the day, geography, time of year, etc.
Initially, I went to the usual sources to get a UV sensor, but I found out they were very expensive ($20 - $30). If you take a regular LED and invert it (so the anode is connected to ground), it will generate a very weak voltage in response to light, but you need an op-amp circuit to amplify the voltage & I wanted something simpler.
Finally, I came across this whitepaper from Mitsubishi - they had the problem of sensing when to turn on the light in your remote control; a capacitive sensor would turn it on when it's not needed and waste power. They figured out a way to sense light using the backlight LED itself - and that's what Mr. Burns is based on.
When you use an LED as a photodiode, it's sensitive to wavelengths equal to it's output color and shorter. By using a blue LED that generates light at 415nm, it's a perfect fit for sensing UVA, and it's cheap (<$1)
Once Mr. Burns has skin tone, UV level, and sunscreen info, it uses WHO data (pdf) to determine how long until you get a sunburn.
Here's a walkthrough of how it works. Note that I'm using a Propeller Platform SD and LCD UI module, but this instructable will also show you how to do it on a breadboard.
How Accurate is it?
The sensor picks up the UVA and measures it correctly. Exposure calculations are based on WHO research, too. It's pretty accurate, the most likely cause of error is sunscreen;Most people don't put on enough sunscreen - you're supposed to put on 1mg/cm2, which means about an ounce to cover an adult male. You're also supposed to re-apply every 2 hours. If you do this correctly, you're fine, but otherwise, you should under-estimate the SPF of your sunscreen.
Also, Mr. Burns measures incident UVA at the beginning of the exposure, but it doesn't re-adjust if UV changes. The literature isn't clear as to whether your skin is equally sensitive throughout the exposure. It's easy to implement, though - and if I find evidence that it is, I'll update the code.
What are the Technical Details?
It's a Parallax Propeller running at 80Mhz connected to an HD44780 8x2 character LCD (4-bit interface). The Propeller stores the exposure table in RAM and measures incident UV through an R/C decay circuit.Step 2: Materials
I built mine with a Propeller Platform SD and an LCD UI module. If you've got those, then the only thing you'll need is blue LED and 22pF Cap. Download the file on step 9 to your SD card, attach the LED & Cap, and you're ready to go.
But I'll also show you how to build Mr. Burns on a breadboard - and here's what you'll need for that;
Code
Here's the sourcecode. Everything is available under the MIT license.
8x2 Character LCD
Displays the time. Sparkfun has a 16x2 LCD that will work, too
3xAA battery box
Mouser Part#12BH331/CS-GR
Parallax Propeller
Available at Parallax
5Mhz Crystal
Available at Parallax
32.768 KHz Crystal
Mouser Part #73-XT262
32kb EEPROM
Mouser Part #579-24LC256-I/P
22pf Ceramic Cap
Blue LED
Mouser Part 859-LTL42UB6N
5x Tactile Switches
Mouser Part #653-B3F-1000
3.3v Voltage Regulator
Mouser Part #511-LD1117V33
Around 10 10k ohm Resistors
4x 4.7k ohm Resistors
3 or 4 .1uF Ceramic Caps
3 47uF Electrolytic Caps
A Prop Plug
Breadboard and a bunch of hookup wire.
Step 3: Make It: Schematic
First, review the schematic below to understand how everything is connected. The box on the left is the SD card slot, and the box on top is the Prop Plug. I'll walk through breadboarding it, but the schematic is your best guide. Here's a hi-res version, the lo-res version is below.
Step 4: Make It: Power and Propeller
Add the voltage regulator and bypass caps as shown on the image below. Also, add the battery box, connecting the black wire to the negative rail, and the red wire to the input on the regulator.
I've also added pull up resistors in the picture, that's for the EEPROM I'll add in the next step.
Step 5: Make It: Testing
Add the EEPROM, connecting Vdd and Vss. Also add a 4pin header as shown in the photo.
Your basic Propeller setup is now complete. Plug your Prop Plug into the headers, connect the usb cable and fire up the Propeller Tool. Hit F7 and make sure you can communicate with the Prop
Step 6: Make It: Display and Crystal
Connect the display - it's quite a few wires, so follow the schematic. Note that I'm using a protoboard to make the display hookup a bit easier. I suggest you do the same.
The crystal goes on the pins marked Xo and Xi. No need for caps on the crystal.
Step 7: Make It: UI and Sensor
Add the buttons, as shown on the schematic. You'll need 4 buttons;
- Left
- Right
- Enter
- Begin Exposure
Also add the LED and cap. This is your UV sensor portion of the circuit. The longer lead on the LED goes to the negative rail, the shorter lead connects to P7.
Step 8: Make It: Programming
Once you've got everything wired up, download the sourcecode (here), connect your Prop Plug and program the Propeller.
Step 9: Make It: Using the Propeller Platform SD and LCD UI
If you're using the Propeller Platform SD and LCD UI, setup is a little different;
1 - The Propeller Platform SD is pre-assembled.
2 - Follow this instructable to put together the LCD UI.
3 - You don't need a Prop Plug. The Propeller Platform SD has a bootloader, so you just unzip this file and copy to the root of your SD Card.
4 - You'll need to add a blue LED and a 22pf Cap. You can get the Blue LED right here, the battery pack is here. The long lead from the LED goes to ground, the short lead goes through the hole marked P7. Connect the cap on the other side of the board to the same holes - doesn't matter which lead goes to which hole.
That's it! Stay out of the sun!
21 Comments
12 years ago on Introduction
I think if you can turn this into a smaller package (using different microcontroller packages for example and a smaller LCD), you could sell these quite well during summer time. I mean I'm not into sun bathing related items and stuff, but i think this thing could be the next best invention to that field since sunscreen.
If you can, assuming you have mass purchases, injectionmolding and a factory at your disposal, design one that is not bigger than those odometers which are cheap enough to be put into cereal boxes which come complete with LCD, for about 2 USD production price maximum, the lower the better, then this thing might have a bright future ahead.
12 years ago on Introduction
In Australia, I have my own sunburn alarm: IF Outside = 1 AND Visibility = 1 AND NaturalLight = 1 THEN AlarmState$ = "PANIC!"
Reply 12 years ago on Introduction
I want to peel off a skin suit, so I'm all for sunburn :D
Reply 12 years ago on Introduction
just when you have a bath, get a scour sponge and scrub your self.
it is a loy safer and won't hurt afterwards
Reply 12 years ago on Introduction
Ha! I think in Australia it's safe to assume that UV is always at 10. But the challenge with UV is that the level can change independent of visible light. For example, UV penetrates cloud cover, so even if it looks cloudy and shady, you may still be getting a lot of UV.
Reply 12 years ago on Introduction
Cloudy = NaturalLight, IF Visibility = 1 AND NaturalLight = 0 THEN Time = "Night" That means it's safe to spread one's wings and go for a night flight in search of food.
Reply 12 years ago on Introduction
unless you get eaten by some other creature... then Alive = 0 and Game = over :c
12 years ago on Introduction
if you want to avoid sunburn, you could probably just get a tan
Reply 12 years ago on Introduction
A tan provides about the same protection as an SPF 4 sunscreen. Also, a tan doesn't protect your eyes, which are damaged from sun exposure. Wearing an SPF 40 sunscreen is a much better idea, just be sure to re-apply and use enough (about 1 ounce).
12 years ago on Step 9
Good project, but the only problem that I can see is that if you leave an LCD display in the sun for long periods it goes all black and can't be read anymore.
12 years ago on Step 3
True, but someone who's not as experianced in electronics may not realize this. Joe
12 years ago on Step 3
Just to let you know. You need to rework your scematic of the propeller using the 4 sided chip. The current pins are in the wrong location. Joe
Reply 12 years ago on Step 3
The schematic isn't a physical representation of the chip - the pins could go anywhere. You might notice the actual pin numbers next to each pin on the chip. You'll often see designers put all the Vdd or Vss pins next to each other.
12 years ago on Introduction
How about america stops being lazy and just wears sunscreen!!!!
12 years ago on Introduction
Could you use a pocket-calculator sized solar panel to power it? Seems like a pretty logical tweak.
12 years ago on Introduction
You know, i stumbled upon that exact mitsubishi whitepaper a year or two ago and i thought it was such a novel idea. I've wanted to try it out but never had the funds to get the MC and associated components. It's awesome that you've found an application for this and I'd love to see more projects that implement this bizzare LED behavior. Overall great idea, and great instructable, but i'd have to agree with Treknology int sunburnAlarm(String location, int timeOfDay) { if ((location == "Outdoors") && (timeOfDay > 700 && timeOfDay < 2100)) { printf("Get the hell inside!"); } return 0; }
12 years ago on Introduction
Give this to your daughter --- Repels sunburn -- AND first dates. :D
12 years ago on Introduction
They make beads that change from clear to a certain color when you need to put on sunscreen to avoid sunburn I'm not sure what they are called but I'm sure they would be cheaper, waterproof, and lighter. But your idea is truely genius
Reply 12 years ago on Introduction
or you can stay inside all the time ;) but great 'ible
12 years ago on Introduction
This is nice. I may make a waterproof one for the pool.