Step 1: Make it
What is it?
A wireless alarm to warn you when someone opens a door – or leaves it open.
How to make it
- You will need two micro:bits with different code on each. One micro:bit acts as a radio transmitter and the other as a radio receiver.
- Attach the transmitter micro:bit and battery pack to the corner of a door frame and attach a magnet close to it on the corner of a door.
- Place the receiver micro:bit anywhere nearby.
- If the alarm doesn’t work as you expected, you may need to change the magnetic force strength number in the transmitter code. Pressing button A shows the current magnetic force reading. Use this to decide on the threshold number, taking readings with the door open and closed.
How it works
- The transmitter program uses the micro:bit’s compass (magnetometer) input sensor and a loop to measure the strength of the magnetic field every two seconds.
- It uses selection so when the magnetic field strength falls below a certain level (the threshold), it sends a radio signal ‘open’. If the magnetism reading goes above the threshold, it sends the signal ‘closed'.
- When the receiver micro:bit receives the signal ‘open’, a cross appears on its LED display and an audible alarm sounds. When it receives the signal ‘closed’, a tick appears on its LED display and no sound plays.
What you need
- two micro:bits and at least one battery pack
- a magnet
- some adhesive putty to fix a magnet to a door and a micro:bit to a door frame
- if you have a V1 micro:bit and want to hear an audible alarm, optional headphones, buzzer or speaker and crocodile clip leads to attach them
Step 2: Code it
Sensor / transmitter:
1from microbit import * 2import radio 3radio.config(group=17) 4radio.on() 5 6while True: 7 if button_a.was_pressed(): 8 display.scroll(compass.get_field_strength()) 9 if compass.get_field_strength() < 100000: 10 display.show(Image.DIAMOND_SMALL) 11 radio.send('open') 12 else: 13 display.clear() 14 radio.send('closed') 15 sleep(2000) 16
Alarm / receiver:
Step 3: Improve it
- Use multiple micro:bits to track the status of different doors by sending different radio messages, e.g. ‘back door open’.
- Use a variable to measure how long doors are left open – could this help you save heating energy?
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.