Wi-Fi로 제어 가능한 LED 전광판을 만들었습니다. 

I created a controllable LED display with Wifi.


HTTP기반 API로 제어됩니다. 내부 EEPROM에 화면을 저장하여 보여줄 수 있습니다.

It is controlled by the HTTP-based API. You can show your screen to save an internal EEPROM.


동작 영상은 위를 참조 하시고 따라서 만드시려면 아래를 참고해 주세요~!

Please refer below to get motion video, see above, and therefore To create!




1. 준비물 (Materials)


- 전광판 모듈 (LED Matrix Module / 국내쇼핑몰 기준 1개 30,000원 * 3개 / 외국은 더 싸요)



Adafruit - 16x24 Red LED Matrix Panel - Chainable HT1632C Driver

https://www.adafruit.com/products/555


국내 전자부품 쇼핑몰에서 둘러보던 중 적당한 제품을 대충 골라서 구입하였습니다.

(I bought the product in the domestic electronic components mall.)


- 박스케이블 (2x5pin) - 짧은 것으로 4개 구매 추천 (국내 쇼핑몰 기준 2개에 2,500원)

10-Pin IDC Connector - I recommend that you purchase four short.



국내 전자부품 쇼핑몰에서 2개 세트에 2천원대에 판매하는 것 같습니다. 전광판 모듈당 하나씩을 주던데 만들다 보면 부족합니다. (그리고 너무 길어요)

모듈과 모듈을 체인식으로 연결하는데 저는 있던것으로 대충 했는데 모듈간 연결에 짧은거 4개 구입 추천합니다.

그리고 저는 두개를 와이파이 모듈과의 연결에 사용하려고 저렇게 개조를... 했습니다.

적당히 응용해서 개조해 주세요. (박스헤더라고 저 케이블을 꽂을수 있는 소켓이 있는데 그것을 두개 사서 쓰는것도 좋을 거 같아요)


- NodeMCU Development Kit (국내 전자부품 쇼핑몰 기준 가격: 9,000원 정도)


http://nodemcu.com/index_en.html



Lua라는 스크립트 언어로 펌웨어를 만들어 돌릴 수 있는 모듈이예요. 하지만 이번에는 아니예요.

Create a firmware module that can run'm in a scripting language called Lua. But this time I'm not using the Lua.


준비물은 여기까지예요. 너무 심플하죠??

Materials are up here. too simple ??


2. 선 연결 (Connecting Wires)


LED모듈과 모듈은 아래 사진처럼 각각 케이블로 연결되어야 해요.

LED modules and each module can be connected to cable like the picture below.



저는 있는 선을 써서 저렇게 모양이 좋지 않지만, 여러분은 짧은 케이블을 사서 쓰셨으면 해요.
Not good view. I hope you are using a short cable.


그리고, 첫번째 모듈의 J5라고 쓰여진 부분을 납땜으로 연결해 줘야 해요.

And, you have to connect the written part of the first module, called J5 soldered.



NodeMCU와 연결을 위해서 이걸 참고했어요. 프로그래밍으로 제어 가능한 GPIO포트들을 이용해 전광판을 제어 할 거예요.

I see it as connected to the NodeMCU. Using the available programmable GPIO ports will be controlled by controlling the led matrix.


일단 제 소스코드에는 이렇게 정의했어요.

I was defined like this.



이 정의를 참고해서 납땜질 했던 첫번째 모듈과 NodeMCU를 연결해요. 

Refer to this definition, I connect the module and NodeMCU.


 전광판 모듈 (LED Module)

 NodeMCU

 VCC

 3.3V

 GND

 GND

 DATA

 GPIO4 (~D2)

 WR

 GPIO5 (~D1)

 CS0

 GPIO0 (~D3)

 CS1

 GPIO2 (~D4)

 CS2

 GPIO14 (~D5)


모두 연결됐어요!

Connected all!




3. 펌웨어 개발 (Firmware programming)


자.. 우리는 펌웨어 개발을 해야 해요.

Now ... we have to do firmware development.


개발 도구는 Arduino를 쓸거예요. 원래 이 개발툴은 Arduino라는 보드를 위해서 만들어진건데 최근에 보니 이것저것 많이 지원하더라구요.

Development tools are going to use the Arduino. Originally developed tools are gonna made for the Arduino board, the board looked at a lot of support recently.


NodeMCU 모듈 포함해서.

Including NodeMCU module.


아두이노 개발툴이 없으시면 여기에서 무료로 다운받으실 수 있어요.

If you do not have an Arduino development tool I can download for free here.


https://www.arduino.cc/


NodeMCU를 Arduino에서 개발하려면 아두이노 설정에서 추가 보드매니저 URL을 입력해야 해요.

To develop NodeMCU in Arduino you need to enter the URL in the Additional Board Manager in Arduino setup.



URL:

http://arduino.esp8266.com/stable/package_esp8266com_index.json


위 설정을 한 후 보드 매니저를 열면 nodemcu 보드 개발키트를 설치할 수 있어요.

After the above settings when you open the manager's board to install nodemcu Board Development Kit.



툴 > 보드 메뉴에서 NodeMCU를 고르고, 시리얼포트가 잘못되었으면 정상적으로 세팅합니다.

Pick NodeMCU in the Tools > Board menu, if the serial port is normally set incorrectly.


소스코드를 열고 왼쪽의 업로드 버튼만 누르면 끝나요!

Open source code just press the upload button, all steps are ended.


아래는 소스코드 설명이예요.

This is a description of the source code.



- NodeMCU모듈을 공유기(AP)모드로 동작시킬거예요. 패스워드도 걸었구요.

  NodeMCU going to operate the module in the router (AP) mode. He also set a password.


- 그리고 아이피 대신 장치 이름을 쓸수 있도록 MDNS를 등록하였습니다. (http://192.168.1.1/clear -> http://led-display.local/clear)

  And, we have registered the MDNS help write the device name instead of the IP.


- 메모리에 화면을 저장할 수 있도록 EEPROM도 초기화 했어요.

  It also initializes EEPROM memory to store the screen.


- 그리고 전광판 모듈을 초기화 해요.

  and initializing the led matrix module.



URL에 따라서 이러저러한 동작을 해요.

It's different actions depending on the URL.


http://led-display.local/clear


예를들어 이런식으로 호출하면 동작하는데요.

For example, I'd like this call operation.


 /clear 

 화면을 지우는 역할 (모든 도트를 OFF시켜요)

 To erase the screen (OFF all the dots)

 

 /fill

 화면을 모두 채워요 (모든 도트를 ON)

 Fill the whole screen (all dots ON)

 

 /draw

 파라메터로 보낸 데이터를 화면에 바로 그려요.

 Draw the data that is sent as a parameter to the screen.

 ?v=03edfx ...  (144 byte binary in 288 byte hexdigest)

 /set

 파라메터로 보낸 데이터를 메모리(EEPROM)에 저장해요.

 Stores the data that is sent as a parameter to memory (EEPROM).

 ?m=0&v=03edfx ...  

 /show

 메모리에 저장되어 있는 화면을 불러와서 보여줘요.

 Show me bring up a screen that is stored in memory.

 ?m=0

 /brightness

 화면 밝기를 조정하는 데 써요.

Adjust the brightness of the screen.

 ?v=10


그리고 다른 URL은...

And another URL is ...


        http://led-display.local/


페이지로 들어갔을 때 전광판에 도트를 찍어볼 수 있는 페이지를 보여주는 데 쓰여요.

When you see an index page, and is used to show a page that allows you to control the led matrix.


이렇게.

like this.




소스코드는 부끄럽지만 github에 공유해 놓을께요.

I put upload the source code to github.


누구든 자유롭게 쓰시고 개발하실 수 있는 분은 더 좋게 만드는데 기여해 주셨으면 해요.

Please if anyone can freely use, I want you to contribute to your development code.


https://github.com/heisice/wifi_led_display



감사합니다!

Thank you!

  1. 내멋으로 2016.10.29 12:35

    너무 훌륭한 소스 공개 감사합니다
    시도 공부 해 보겠습니다

  2. 익명 2016.11.27 17:14

    비밀댓글입니다

    • 익명 2016.11.27 17:22

      비밀댓글입니다

오랜만에, 도트메트릭스를 하나 만들려 했는데.. 좀더 발전된 구조로 설계를 해보고

부품을 구입해 테스트 하는데... IC를 하나 잘못 샀군요;;

제가 원하는건 이런 동작이 아녜요 ㅠㅠ

'Electronic' 카테고리의 다른 글

mac(or pc) <- usb -> dotmatrix  (1) 2010.09.14
Lantronix Xport / GPIO 이용하기  (3) 2008.05.09
이런;;  (0) 2007.09.28
엑박용 USB허브  (4) 2007.05.27
PC 연동 8x8 도트메트릭스  (2) 2007.03.03
8x8 전광판 제작 성공..  (2) 2006.03.21
이 글은 2006년 4월 초에 만들고, 모 카페에 올려놨던 게시글을 옮긴것입니다.

PC에서 영상을 캡쳐하여, 시리얼로 AVR에 전송하고,

전송된 영상을 도트메트릭스로 표시하도록 만들어봤습니다.

사용자 삽입 이미지
 
시리얼 테스트만 하던 AVR 보드에, LED(8x8)를 박아 만든 도트 메트릭스에 연결했습니다.

프로그램을 수정해서, 시리얼로 오는 데이터를 도트 라인의 데이터로 사용하고,

데이터가 올때마다 스캔라인을 하나씩 내려봤습니다.


너무 깜빡입니다 -_-;;;


시리얼 방식 자체가 그리 빠르지 않은거겠죠?;;


그래서 char[8] 변수를 하나 정의한 다음에, 시리얼로 데이터를 받았을때 그 변수값을 바꾸게 해놓고,

루프를 돌며 그 변수에 있는 데이터를 뿌려봤습니다.


깜빡임을 느낄 수 없을정도로 부드러워졌습니다.


사용자 삽입 이미지

시리얼로 데이터를 전송하는 프로그램은, 까만 글씨만 인식하도록 만들었습니다. (단색 도트메트릭스니...)

메모장에 글씨를 써놓고, 직접 만든 프로그램으로 캡쳐해서 hex로 변환 한 다음에 전송했습니다.

사용자 삽입 이미지


잘 보여집니다. 근데, 8x8이라... 뭔가를 보여주기엔 부족합니다. -_-ㅋ

'Electronic' 카테고리의 다른 글

이런;;  (0) 2007.09.28
엑박용 USB허브  (4) 2007.05.27
PC 연동 8x8 도트메트릭스  (2) 2007.03.03
8x8 전광판 제작 성공..  (2) 2006.03.21
74HC595 사용법.  (1) 2006.03.18
DIY관련 북마크...  (0) 2006.03.10
  1. 너구리라면 2007.03.11 00:04

    재밌는 제품이네요. 저도 예전에 비슷한걸 만들어본적은 있는데,
    데이터전송이 되도록 하지는 않았었습니다.
    애니메이션이 되도록 만들어보시는건 어떨까요? ^^

    • 아이스 2007.03.11 15:03

      저것도 에니메이션 됩니다. 지금 PC화면이 연속으로 전송되고 있는 상황이구요.. 화면이 바뀌면 도트메트릭스 화면도 바뀝니다. PC화면에 에니메이션만 뿌려주면 표시해 줄 수 있습니다.
      PC연동이 안되고 에니메이션 되는놈이야.. 제 글중에 다른놈을 보시면 있을겁니다.

처음 만들어본 전광판...


우여곡절 끝에 4일만에 제작이 끝났다.(3월 17일)


프로세서는 AVR(AT90S2313)로 하였고, 출력 포트가 부족해 74HC595를 썼다.


프로세서 안에 패턴을 저장해두고 loop를 돌아 디스플레이 하였다.



일일히 계산하기(2진수->16진수) 싫어 패턴을 제작하는 프로그램을 간단히 만들어 보았다.



완성된 모습이다. 손재주가 없어 좀 지저분 하긴 하지만...


아무튼, 박스를 만들어 회로를 감췄다.



전광판의 원리를 이해하는 좋은 계기가 되었다.

'Electronic' 카테고리의 다른 글

엑박용 USB허브  (4) 2007.05.27
PC 연동 8x8 도트메트릭스  (2) 2007.03.03
8x8 전광판 제작 성공..  (2) 2006.03.21
74HC595 사용법.  (1) 2006.03.18
DIY관련 북마크...  (0) 2006.03.10
서보모터 컨트롤..  (0) 2006.03.09
  1. 돗트 2006.11.03 10:04

    이거 소스좀 알수있을까요..다만들어도..프로그램하는게 너무어렵네요..ㅠ.ㅠ
    rladbfals@naver.com입니다..

  2. 용갈 2006.12.29 15:38

    안녕하세요 제가 이번에 전광판 모듈은 구입하고 뒷쪽 콘트롤러 부분만 제작을 하려고 하는데요. 어떻게 해야할지 전혀 모르겠어서 실례를 무릅쓰고 여쭤봅니다. 소스나 제작하는 설계도를 어떻게 구할수 없을가요? 귀찮으시겠지만, 메일로 조금만 알려주시면 감사하겠습니다. creep208@empal.com

+ Recent posts