Introduction: The E.M.F.Meter
Hello, fellow Makers!
In this instructable, I will be discussing my newest and most versatile tool for edcuation: the E.M.F. Meter.
This instructable will be covering a lot of steps involving Arduino and Raspberry Pi software. Although resources will be provided, please make sure you have some familiarity with these softwares before tackling this project.
Step 1: A Tool for Hands-On Experiments With Electromagnetism
All to frequently, when students who take physics classes learn about electromagnetism and inductance, they are assigned to memorize formulas from a textbook. As for lab experiences, it would be considered a hands-on science lab if the instructor were to have magnet move through a copper coil and cause an LED to light up.
Being able to truly and organically engrave the laws of electromagnetism into our minds is lost in this style of teaching. My goal with building the E.M.F.Meter was to make a tool that allows students to learn the laws through raw experimentation: to be able to collect enough data to induce the laws for themselves.
With this device, a student can measure the voltage induced in the presence of a moving or changing magnetic field. Its portable size makes it extremely easy to put into various setups to test the laws of magnetism. For instance, one could set the EMF Meter up to measure how a coils voltage changes when a magnet rotates in place. Or, one could alter the coil's cross section to see how the area and shape affect the voltage over time. The limit is only your imagination.
In this instructable, I will be explaining how to assemble an E.M.F. meter and which resources you should use when setting it up. By the end of this instructable, you will be left with a device that not only measures the voltage and displays it on a TFT screen but also publishes the data to a single browser which can display an entire class's data.
Step 2: The ADS1115 Featherwing: a Recap
In my previous instructables, I described my first featherwing that requires surface-mounted soldering to make.
If you have not read this instructable yet, see here.
For a brief recap for those who have seen this instructable, the ADS1115 featherwing is a custom made device that is meant to:
-Measure voltages through two channels (one voltage source per channel)
-Amplify the measured voltage (optional)
-Fit the form factor of the Adafruit feather/featherwing family to encourage interchangeability and simplicity
Since the E.M.F. Meter's job is to measure the voltage produced from changing magnetic fields, this featherwing is crucial to have. Make sure that you have a properly built ADS1115 featherwing before starting.
Step 3: Additional Components: Hardware
The hardware you will need are the following:
Adafruit HUZZAH Feather: This feather is able to wirelessly send data through a protocol called MQTT. This itself does not publish data onto a browser but it does send it to a host sever (the raspberry pi) which then publishes it to a specified wifi.
Adafruit TFT Featherwing: This wing is what will be displaying the voltage-time graph on the E.M.F. Meter itself.
Raspbery pi 3B: This board is a computer that will be acting as the MQTT Host that recieves the HUZZAH feather's data and publishes it to the wifi.
PiTop (Optional, but strongly suggested): This is the physical interface that the raspbery pi will be placed in to make it easier to use (for finding IP addresses in particular).
Step 4: Additional Components: Software
Arduino: Make sure you have the newest Arduino available. It is completely free.
Node Red: This is the software that will make up the browser for displaying the E.M.F. Data. Your raspberry pi needs to download the Node Red software to work, though. Like Arduino, it is free.
Step 5: MQTT, Node Red, Raspberry Pi
Making the E.M.F. Meter publish data to the wifi requires a broad stretch of setting equipment up. Unfortunately, it would not be reasonable to go into detail here about the necessary steps to set up a raspberry pi for MQTT, so instead, I have attached a PDF that provides thorough detail on the process. Please make sure you read CAREFULLY when preparing your raspberry pi.
Step 6: Code
And finally, once you have the software and hardware prepared, you need the code to bring the E.M.F. Meter to life.
The E.M.F.Meter itself *: Click here to go to my github repository on the E.M.F Meter with wi-fi adaptations.
The Node Red Module: Click here to go to my github repository to get the module that allows the Raspberry Pi to communicate with the Arduino on the E.M.F Meter.
*If you do not have a raspberry pi or do not know the wifi details to use MQTT, then click here for a wifi/raspberry-pi free version of the E.M.F. Meter code.
Step 7: 3D Printed Container/Assembly Tips
Finally, your E.M.F. Meter will need a container. The STL files for the two parts of the container are attached above. The model for the container and lid can also be found on thingiverse.
I receive prints by ordering them through 3Dhubs.com and use pla plastic. However, if you have 3d printer, yourself, feel free to use it (I can't guarantee personal printer quality).
This enclosure's screw holes are meant to fit the screw holes of the TFT featherwing, which are M2.5 screws.
When assembling the EMF Meter with its enclosure, make sure that:
- TFT Featherwing is screwed on TOP of the container (as seen in the image below)
- The ADS1115 featherwing is on the inside of the container
- The indent on the floor portion of the container is facing in the direction of the ADS1115 featherwing, as seen in two of the images.
Step 8: Conclusion
Once you have uploaded the linked to code and assembled the electronics as shown in this instructable, you have built an E.M.F. Meter! Of course, the next question is what you do with it?
For some example experiments, my video on the E.M.F. Meter here. It uses an older design of the instrument, but the experimental setup is identical for both this current design and the one in the video.
In the meantime, I hope you enjoyed this instructable. If you have any questions, please feel free to leave them in the comment section below. Thanks!