본문 바로가기

아두이노

아두이노 MP3 스피커 제어 연습

 

아두이노를 쓰진 않았고, 위의 그림처럼 nodeMCU를 쓰지도 않았고 더 저렴하고 작은거 대충 썼지만

뭐 사실 차이는 없다. 회로는 그냥 DFPlayer 연결하고 스피커만 연결하고 TX RX만 연결한게 전부이다.

전부 인터넷으로 제어하기 때문에 버튼은 쓸일이 없다.

마이크로SD카드에는 0001.mp3 ~ 0099.mp3 같은 식으로 미리 mp3파일을 넣어두어야 한다.

 

 

IoT는 크게 두가지 방식이 있을 것 같다.

1. 디바이스의 상태를 모니터링하는 것

2. 디바이스를 외부에서 제어하는 것

 

(여기서 블루투스로 연결은 제외한다. 블루투스도 쓸 수 있지만 IoT라는 의미에서 블루투스는 인터넷이 아니기 때문이다.)

모니터링의 경우 히스토리까지 다 알려면 

디바이스에서 HTTP Client기능으로 외부 서버 등으로 지속적으로 디바이스의 상태를 전송해야 한다.

 

디바이스를 외부에서 제어하려면

디바이스가 Server의 기능도 해야한다. 즉, 위 두가지 하려면 동시에 Server와 Client로 작동해야 한다.

 

물론 다른 방식을 쓸 수도 있다. 

Blynk등의 외부 앱? 라이브러리? 등을 활용하고 web socket을 쓸 수도 있지만

그냥 server와 client 양쪽 동시 활용하는게 제일 쉽고 편리한 것 같다.

 

이런식으로 동시에 구동 가능하다.

 

허접하지만 작동시키기 위한 리모콘앱(?)도 대충 웹앱으로 만들어보았다.

 

일단 여기까진 로컬호스트에서 연결하는 방식으로 했는데,

완전히 외부망에서 접속시키려면 조금 더 고민이 필요하다.

내부망에 IoT 허브 같은 외부에서 연결 가능한 서버를 별도로 두고 그 허브가 집의 모든 IoT기기를 작동시키는 방식으로 할 수도 있고,

각각의기기가 다 서버로서 역할을 하고 허브를 따로 두지 않는 방식도 가능한데...

보안적인 측면에서는 허브를 따로 두는게 나을것 같기도 하다.

일단은 다른 기기가 없어서 포트포워딩 포트 하나 열어주고 바로 외부에서 되게 해봤다.

아무래도 초소형 MCU를 가지고 그 안에서 방화벽이나 로그인 등을 다 구현해서 보안적인 뭔가를 구축하는 것은 오바인것 같아서 제대로 하려면 허브를 하나 두는 방식이 나을것 같다.