Time to know what my printer is doing when I am not around
Yes, I know... never leave a 3d printer unattended while running blah blah. Well, realistically, who sits and watches their printer plod through a 25+ hour print. So, after digging around the workshop I found a spare GSM module. I put that into a 3d printed front enclosure, along with an I2C 128x64 OLED screen and a couple of buttons. So, to get over that issue, I have broken into the printers control panel buttons and taken a parallel pair off the down and enter buttons.
I can use my processor (Arduino Mega2560p) to operate these buttons to select 'pause' and 'unpause' from the menu. When printing, it's the same button press combination every time to obtain the pause and unpause functions. |
Inside the enclosure, I have installed a smoke detector module (good old AliExpress).
Its actually an MQ-8 Hydrogen Gas Sensor, but it works as a smoke sensor too. It can output a digital signal with it's threshold set using the onboard pot, but I am using it's analogue output. You need to let the module warm up before taking readings, so my code ignores the analogue signal for the first 2 minutes after initialisation. I 3d printed an enclosure and mounted it at the top of the print zone (left). This can be set within the menu settings to do a range of things. |
Upon the filament running out, it can pause the printer or stop the printer (or do nothing). It can do this with or without texting you a message to report this action.
The smoke sensor can set set to stop the printer, kill the power to the printer (internal contactor I added to the incoming power supply) and it can also kill the power to the entire workshop.
I added a 63A (12v coil) contractor to my workshop incoming power supply. The printer has a socket on the back that interfaces with the workshop distribution board.
The module also texts or calls my mobile phone to inform me of the smoke detection. Calling my phone is a much more 'urgent' method of informing me of the fire.
The microphone input of the GSM module is connected directly to an Arduino pin (through a filter circuit).
I used the 'Talkie voice' which give you very basic quality voice messages out on an Arduino pin. It simply repeats the phrase 'FIRE' over the phone when you answer.
The existing set of Ultrasonic sensors are also connected to the system. I have a HC-SR04 Ultrasonic module on the bottom of the printer facing upwards. This measures the distance to the bottom of the print plate.
This enables it to know when the print has ended (the plate lowers fast). Usually during printing, the plate lowers at a very slow rate.
Again, the print ending can be set to turn the printer off, text me or call me (It just says 'END' over the phone).
I also added a temperature sensor to the inside of the printing chamber.
All the information and settings can be adjusted by texting the module (as well as the OLED screen menu system). You can set the smoke detection level. I leave it at automatic. It samples the air multiple times at boot, and then sets a trigger level a pre-determined amount above that. You can set all the actions the module takes on different alarms. So, at least I can now monitor my prints remotely.
It already has a wireless camera on a flexible arm mounted above the printer. So I can log in using my phone and check on the print. Fitting all the parts in the base was a little bit of a challenge. Not much room in there. But, with some fiddling it does go in. I used the existing PSU to supply all of my new bits and pieces. The only new PSU is a 5v DC to feed the USB for the wireless camera. |