The project is to write and test a program for an Arduino connected to 2 Honeywell HMC5883L 3 axis magnetometer ICs via the I2C bus. The magnetometers to be placed [url removed, login to view] apart and read by the microprocessor at a user selected interval (initially 5 minutes). The program to include a digital IO on/off switch function with a user selected switch-on delay, with the system lighting a LED during this delay period and taking initial readings from the magnetometers at the end of this time. Commercially available breakout boards may be used to test the system.
The system (microprocessor and magnetometers) to 'sleep' between readings to conserve power, to have user selectable magnetometer gain and to constantly flash the same LED if a user selected change in valve is detected between the magnetometer readings when the next set of readings are taken (subject to a further reading to confirm that the change is permanent). These changes to be either in the previously calculated headings or the z axis only (user selected option). A further user selectable option to be to detect a change to both magnetometers or to alarm only if the readings from one magnetometer changes.
The system is to be used to detect small magnetic changes in an area and, if the project is successful, a further project will be considered to expand the system to include further magnetometers.