3D 프린터와 화재 그리고 보완책
이전 원격 모니터링 환경 구축에서 한 구독자 분께서 화재의 위험성에 대해서 언급을 해주셨던 계기가 되어서 사실 늦은 밤 프린팅을 하고 있는 상황에 켜놓고 잠을 잘까 말까 하다가 이런저런 작업을 하면서 글을 쓴다.
3D 프린터의 경우 오븐이나 전자레인지처럼 안전 규약이 전혀 존재하지 않는다. 하지만 열을 가해 수지를 녹여
프린트를 하는 FDM 방식의 프린터의 경우 언제나 화재의 위험성이 상존해 있는 게 사실이다. 구글에서 "3D printer fire" 검색어를 던져 보면 실제 집을 거의 태워버릴 정도의 화재가 났던 경우도 심심치 않게 보이기 때문이다.
실제 충분히 일어날 수 있는 일인데 예를 들어 온도를 측정하는 서미스터에 문제가 생겼을 경우 잘못된 온도 값을 펌웨어에 피딩하게 되는데, 실제보다 낮은 온도 정보를 보낼 경우 펌웨어는 계속 노즐에 온도를 공급해 온도 유지를 하려 할 것이고 엄청나게 높은 온도의 노즐과 수지 때문에 때문에 불이 날 수 있기 때문이다.
무엇보다 저렴한 중국산 D.I.Y 프린터의 취약한 안전장치들과 조악한 부품들로 인해 그 가능성은 충분히 더 커질 수 있다.
따라서 작업 상황을 관찰할 사람이 없는 상황에서 3D 프린터를 켜두고 외출을 한다든지 잠을 자는 행위는 절대 하지 말아야 된다.
필자의 경우 원격 모니터링 환경을 구축해 놓고 있는 상황에서 원격 모니터링의 순기능을 충분히 느끼고 있는바 위험성을 보완할 방안을 마련해 보았으며 이에 대해서 이야기해보고자 한다. 하지만 원칙은 절대 그 자리를 뜨지 않은 것이다.
필자의 경우 20시간이 넘는 출력 시간을 가지는 출력물들이 가끔 있다. 그럴 때 옆을 계속 지키기란 매우 어렵다. 이를 위해 안전장치를 해두었다.
먼저 준비물이 필요한데 아래와 같이 약 1년 전쯤에 구매해둔 무선 콘센트 제어 킷을 활용하기로 한다. 신기하게도 이번 기회가 아니었으면 한 번도 사용하지 못할뻔한 부품 중에 하나였는데, 매우 유용하게 활용되었다. 만일 이게 없다면 시중에 파는 wifi 기반의 무선 콘센트를 써도 될 것이다.
http://www.rasplay.org/?p=9636
프린터 스위치는 항상 On으로 두고 전원제어를 무선 콘센트로 하게 된다. 킷과 딸려오는 소프트웨어는 명령행으로 온오프를 할 수 있는 인터페이스를 제공하지 않는데, 필자가 기존 코드를 고쳐서 모듈 형태로 고쳐 어떠한 스크립트에서도 온오프를 호출할 수 있게끔 만들었다.
라즈베리파이에 간단한 웹서버를 띄워서 온오프에 대한 REST API를 생성하고 아무나 온오프를 하지 못하게 하기 위해 보안설정까지 살짝 해두었다.
해당 라즈베리파이의 IP와 포트를 포트 포워딩해서 외부에서도 접근할 수 있게끔 해두었고, 이렇게 함으로써 외부에서 브라우저만으로 프린터 온오프가 가능해지게 되었다.
사실 여기까지의 작업은 전혀 화재 예방을 위해 한 작업이 아니었고, 단지 외부에서 전원을 온오프 할 수 있게 해 원격 모니터링을 용이하게 하기 위함일 뿐이었다.
화재를 예방하기 위해서는 타는듯한 연기가 발생하거나 유독가스가 발생시 이를 인식할 수 있는 센서가 필요하다. 며칠 전 테스트 용으로 구입해둔 MQ2센서를 활용한다. Grove Pi 보드용 센서가 아닌지라 핀넘버를 확인해 Grove 센서인 양 연결했더니 잘 인식한다. ^^;;; (Grove PI센서 정가가 8,9천 원 하는데 반 정도 가격에 해결...)
MQ2센서를 테스트해보기 위해 아두이노 보드에서 확인했는데, 역시나 OS로 한 꺼풀 씌워져 있는 라즈베리파이보다 센서 동작이 아주 쌩쌩하게 잘 된다. 하지만 인식 후 이런저런 작업을 위해서는 라즈베리파이가 더 적합한 환경이라 바로 라즈베리파이에 이식했다.
센서가 환경에 따라서 다른 아날로그 값을 표출하니 일단은 일반 프린팅 환경에서 적당한 값이 어느 정도인지 확인할 필요가 있어서 한동안 켜두고 센서 값을 모니터링해보니 100 정도 값이 정상적인 값으로 보인다(나중에 알았지만 온도에 따라서 정상 기준값이 다소 달라지는 현상도 보이더라...).
불을 일부러 낼 수는 없으니 살짝 가스라이터의 가스를 기반으로 센서를 테스트해본다.
약 400~500 정도의 값이 가스가 센싱 되었을 때의 값으로 판단된다. 연기의 경우 그보다 살짝 낮은 값을 가지는 것으로 알려져 있으나 400 정도를 기준값으로 정했다.
결과적으로 센서가 프린터 주변을 주기적으로 모니터링하다가 400 이상의 값이 인식되면 아래와 같은 작업을 수행하게 하면 될 것이다.
1. pushover 앱으로 모니터링된 값과 계산된 공기 밀도에 대한 정보 메시지를 긴급으로 스마트폰으로 보낸다.
2. 무선 콘센트에 신호를 넣어 전원을 신속히 차단한다.
필자의 경우 위 환경을 직접 구축했지만 외국의 경우 제품까지 나온 것을 확인해 볼 수 있었다. 온도계가 부착된 왼쪽의 소형 소화기가 달린 제품과 필자의 방식과 동작 방식이 유사하나 좀 더 심플한 구성을 하고 있는 오른쪽과 같은 제품이 파악되었다.
아까운 프린터에 소화기를 뿌리는 만행보다는 전원 차단이 좀더 개인적으로 끌리는데, D.I.Y로 화재 예방 시스템을 구축하기 번거로운 분들은 위와 같은 제품을 구매해서 안전책을 마련해 두는게 어떨까 하는 생각을 해본다.
무엇보다 안전은 아무리 강조해도 지나치지 않다. 저런 보완책을 갖추고 있다 하더라도 취침시간에 프린터를 돌리거나 아무도 없는 집에서 프린터 출력을 방치하고 외출하는 행위는 절대 하지 말아야 될 것이다.