1. 빌드하는 모드가 Debug모드인지 확인할 것.


2. 도구 / 옵션 / 디버깅 / 일반에 출력 창의 모든 텍스트를 [직접실행]창으로 리다이렉션 체크해제 확인

(Menu > tools > options > debugging > General > Redirect all output window text to the immediate window (NOT Checked)






2. 프로젝트 설정 페이지에서 빌드, 설정은 빌드, DEBUG 상수 정의, TRACE 상수 정의 확인 

(Project Properties > Build > Define DEBUG constant / Defile TRACE constatnt are all checked.




3. 출력 창에서 마우스 오른쪽 버튼 눌러 프로그램 출력 체크 확인 (이걸 몰라서 헤멨다 아오..)




4. 기타 App.config 에 이런거 있어도 안되고.

  <system.diagnostics>

    <trace>

      <listeners>

        <!-- This next line is the troublemaker. If it is there delete it-->

        <clear/>

      </listeners>

    </trace>

  </system.diagnostics>





집에서 사용하고 있던 스마트 플러그가 갑자기 고장이 났습니다.

스마트폰용 앱이 UI가 참 맘에 들어 몇개월간 잘 사용하고 있었는데. 고장이 나더군요.


 


 

 

 


증상은 앱으로 표시 및 제어어도 잘 되는 듯 한데...  실제 릴레이가 작동하지 않고 계속 전원이 연결되는 문제였습니다.

H모사의 제품이었는데, 인터넷을 검색해보니 저 말고도 그러한 사례가 종종 있는 듯 했습니다.


고객센터에 글을 남길까.. 하다가, 아래 글을 보고 제품에 여러차례 충격을 가해보았습니다.

그러니 어찌 첨에 안된다가 다시 몇번 치니까 고쳐지더군요.

붙었던 릴레이를 물리적으로 떼내는 일을 하는 듯 했습니다.


릴레이 접점이 붙었다가 떨어지지 않는 고장사례는 종종 있는 듯 했습니다...



그런데, 한편 생각해보니. 이건 진짜 위험하다 싶더군요.

특히 온열제품일 경우, 제대로 제어되지 않는 다면, 화재까지 이어질 수 있는 상황이구요...

전원에 제어가 제대로 되지 않았다는 피드백이 전달되지 않은 것도 문제를 키울 듯 했습니다.


제가 우선 내린 결론은 사용 전력치가 큰 제품에는 물려서 쓰지 말자(헤어드라이기등) 입니다.

아무래도 릴레이 고장 원인은 거기서 비롯되는게 큰 것 같았습니다.

 

 

 

스마트 플러그인 고장 관련 글들...

 

 

 


 

 

 

 

 

MAX7219 는 8*8 LED로 구성된 매트릭스 표시 드라이버입니다. 

라즈베리파이와 SPI통신을 통해 제어가 가능합니다.


가격은 8천원 정도 하는데, 알리 같은데서 사면 더 저렴하게 구할 수 있습니다. 대신 오래 기다려야합니다..

 

 

 



디지털 표시기를 라즈베리파이와 연동하기 위해 기본적인 셋업을 해보았습니다.

 

우선 라즈베리파이와 MAX7219 핀은 아래 처럼 연결합니다.

 

 

 


그리고 라이브러리 설정을 합니다.

 

Python코드로 Luma.LED_Matrix를 이용하면 쉽게 설정이 가능합니다.


기본적인 설정에 관한 설명은 아래 링크에 잘 되어있었으나 실제 설정 중에 몇가지 문제가 발생하여 정리해두고자 합니다.


https://luma-led-matrix.readthedocs.io/en/latest/install.html


 

 

처음 라즈베리파이를 설정하고 난뒤 상태의 기준으로 했으며, Python3명령어로 셋팅을 했습니다.



우선 SPI 설정을 해두어야합니다.

아래 명령어로 spi 설정이 enable되었는지 확인합니다.

아무런 결과가 없다면 설정이 안된 것입니다.

 

 


 

아래 명령어로 라즈베리파이 설정화면으로 가서 5 Interfacing Options를 선택하고 P4 SPI를 Enable합니다.

sudo rasp-config

 

 

 

 

 


그리고 파이를 껐다가 켭니다!

 

 

 

이제 다시 lsmod | grep -i spi 해보면 뭔가 나오는 것을 확인 할 수 있습니다..

 




 


 

그리고... 필요한 라이브러리들을 설치합니다.



$sudo apt-get install build-essential python3-dev python3-pip libfreetype6-dev libjpeg-dev libopenjp2-7 libtiff5 git

공식페이지에서 빠져있는 libopenjp2-7 libtiff5 git 도 추가로 설치합니다. 안그러면 오류납니다...




그런 다음 파이썬 이미지라이브러리를 설치합니다. 역시 안그러면 오류납니다...


$pip3 install pillow





이후, luma.led_matrix 라이브러리를 설치합니다.


  $sudo -H pip3 install --upgrade luma.led_matrix

 

 

 

이제 라이브러리 설치는 모두 끝났습니다.

 

샘플 코드를 받아서 한번 실행 보도록 하겠습니다.

 

하면 luma.lend_matrix가 생기며, 그곳에 소스가 복사됩니다.

그리고 복사한 디렉토리내 examples에 샘플 소스가 있습니다.

 

python3 matrix_demo.py -n 4 --block-orientation=90

-n은 꽂혀진 매트릭스 판때기의 갯수고, --block-orientation은 글자 방향입니다.

 

정리해보니 간단한데.. 이번에도 삽질을 많이 했었네요.

 

 

 

유료툴이긴 하지만 꽤 유용해서 포스팅을 남깁니다.


윈도우에서 리눅스 파일 시스템을 읽고 쓰기를 할 수 있는 툴이 있었네요.


https://www.paragon-software.com/business/extfs-for-windows/


라즈베리파이에 이미지를 굽고, sshd가 바로 구동 될 수 있도록 하기 위해서는


/etc/rc.local 파일을 수정해야합니다.


systemctl start ssh (추가)


그런데 이 작업은 라즈베리파이에 키보드를 연결하고, 모니터 연결해서 직접 수정하는 수밖에 없는데요, 이미지를 바로 수정하는 방법을 없을까 찾아보다가 알게된 툴입니다.



가격은 2만1천원입니다만,


설치시 트라이얼로 10일간 임시 사용을 할 수 있습니다.








이렇게 탐색기로 바로 접근이 가능합니다. (수정도 가능하구요. ext2/ext3/ext4 가 가능하다고 하네요.)



좀 더 찾아보니, HFS+ 파일시스템을 윈도우에서, macOS에서 NTFS를 사용할 수 있는 제품도 있고, 이 기능들을 통합한 제품도 판매를 하는 군요.


이름하여, 교차 플랫폼 팩,

https://www.paragon-software.com/ko/home/file-system-link-suite/



참 재미있고도 유용한 툴입니다.




icbanq에서 3주전에 주문했으나, 비슷한 다른 제품을 받고 교환 받는데 3주나 걸려서 주말에 만져보게되었습니다.

(재고가 없어 해외로 재신청해서 받는데 꽤나 올래걸렸군요.)

 

 

esp8266 은 마이크로 컨트롤러와 wifi가 같이 결합된 칩으로, 라즈베리파이보다 전력소모가 작아, 배터리로 동작하기가 유용하다는 장점이 있죠.

 

개발 방식은  C를 이용하거나, (펌웨어를 다시 올리는 방식..), 파이썬, 루아, 자바스크립트등으로 인터프리터 방식으로 동작하는 것도 가능했습니다.

그래서 제일 괜찮아 보이는 방식인 파이썬을 이용하게 되었습니다.

 

인터넷을 검색하니, 나온지 꽤 시간이 지난 칩이고 해서 자료가 많았습니다.

기본적으로는 드라이버 설치하고 연결해서, 플래시 롬 내용을 지우고, micro python으로 펌웨어로 다시 설치하고,.. 여기까지가 기본이었고.

그 다음부터는 개발할 python스크립트를 개발해서 올리면 되더군요.

 

 

우선 테스트 샘플 파일로 웹서버를 구동해보았습니다.

 

 

잘 되는군요!

 

 

* 개발 환경 구축 : https://developer.ibm.com/kr/cloud/2018/01/06/esp8266-iot-micropython-start/

* CP210x USB Driver : https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

* mycro python docs : https://docs.micropython.org/en/latest/esp8266/tutorial/intro.html

* mycropython esp8266 firmware : http://micropython.org/download#esp8266

* esplorer download : https://esp8266.ru/esplorer/#download

* 테스트 샘플 파일 : https://www.pi4iot.com/doku.php?id=sbc:esp8266

* Azure IOT 와 esp8266 https://docs.microsoft.com/ko-kr/azure/iot-hub/iot-hub-arduino-huzzah-esp8266-get-started

패턴 만드는 프로그램하나 만들어볼까 하다가..

누군가 잘 만들어놨겠지..하면서 찾아보니.. 역시나 너무나 잘 만들어놨네요


일단, 여기 잘 정리가 되어있고...

https://www.whoishostingthis.com/resources/pattern-generators/





위 사이트 중 제일 맘에 들었던 곳 3군데만 올리겠습니다. (다른데도 괜찮은데 많네요.)


1. http://qrohlf.com/trianglify/

아.제가 만들려고 했던 딱 그 기능 ㅠㅠ 이런 패턴을 만들어줍니다.




2. http://btmills.github.io/geopattern/

타이핑을 하면, 그 글자에 맞는 패턴을 랜덤으로 생성해줍니다. (일종의 hash값으로 만드는...듯?)

같은 글자는 같은 패턴으로 만들어주므로, 기억하기도 좋습니다.




3. http://alssndro.github.io/trianglify-background-generator/

1번하고 유사한데, 역시나 제가 찾던 모델이어서.. 또 올립니다.




무시무시한게 소스까지 다 올려놨습니다.ㅠㅠb

osx, linux에서 테스트했는데 잘 됩니다...

osx에서 ftp서버 설치하려니 하이시에라부터 뭐가 바뀌어서 깔기 귀찮게 되어있더군요.

그래서 docker로 설치해봤습니다.


kitematic은 아직 osx에서는 불안한 감이 있네요. 죽기도하고....



좀 더 돌려봐야겠지만 .. ftp 서버를 간단히 만들기 좋습니다.


kitematic 조금 쓰다가.... 편한데? 불편합니다...

역시... 커맨드라인쪽이 기능이 풍부합니다.


docker run -d -v /home/erith:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=[아이디] -e FTP_PASS=[비번] \
-e PASV_ADDRESS=[아이피] -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd



https://gitnub.com/fauria/docker-vsftpd




11기가 정도파일은 쭉-- 잘 올라가는데, 50기가 짜리파일은 올라가면서 자꾸 멈추는 문제가있네요.

첨에 osx에서만 테스트하다가 맥 문제인가 싶었는데... 파일이 너무 커서 그런듯한데...

일단 여기까지만 테스트.


https://docs.docker.com/docker-for-mac/#explore-the-application



50기가 파일 테스트.. 자주 끊킴현상이 발생합니다. 도커설정에서 swap늘려주고하면 좀 증상이 줄어들긴한데 끊키는건 마찬가지입니다.


11기가 파일 테스트. 그냥 쭉 잘 올라갑니다.


도커로 mysql을 설치하고 보니 시간대가 이상합니다.

KST로 변경이 필요해 보였습니다.


우선 운영컨테이너에 다음 명령으로 시간대를 수정합니다.


ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime


mysql에서도 아래와 같이 수정하였습니다.




select now()해서 현재 시간을 확인합니다.


이후, 


set time_zone = 'Asia/Seoul';

하여 시간대를 변경합니다.

그리고 바뀐 것을 확인합니다.


* 추가 배포판 확인

#grep . /etc/*-release


#cd /usr/share/zoneinfo/


파일있는지 확인하여

cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime

ovewrite 확인

date 해서 시간확인

mysql 최신버전에서 암호방식이 바뀌어서 그렇습니다. 

mysql.dll을 포함한 mysql을 설치하여 dll을 heidisql로 복사하는 방법도 있는데, mysql을 따로 설치하기 싫어서 아래 방법으로 해결했습니다.


docker ps 해서, CONTAINER ID를 확인입니다, 화면에서는 f0c69ac1c8dc 입니다.



docker exec -it [CONTAINER_ID] bash 하여 배쉬쉘로 접근합니다. 컨테이너 아이디는 구분되는 첫글자들만 입력해도 됩니다.

그리고 mysql -uroot -p[암호] mysql 하여 mysql로 접속합니다.




ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '암호';

flush privileges;

합니다..




Docker를 이용하면 번거롭게 서버 이것저것 깔지 않고 컨테이너 설치만으로 깔끔하게 서비스 운용이 가능합니다.


더군다나 Kitematic을 이용하면 GUI를 이용해 굳이 커맨드라인 안쓰더라도 설치가 가능합니다. 설치도 굉장히 간단해서 좋습니다.! 

수분만에 설정이 완료입니다. ㅎㅎ,



윈도우즈10기준으로 설명하며, 워드프레스 설치를 해보겠습니다.




먼저 윈도우즈용 도커를 다운로드 받아 설치합니다. CE(Community Edition)을 설치하면 됩니다.


https://docs.docker.com/docker-for-windows/install/



Docker Hub 로그인이 필요한데, 가입하고 로그인을 합니다.





워드프레스의 경우 MySQL DB Container와 Wordpress Container를 설치하면 됩니다.




우선 Share설정을 해줍니다. MySQL 저장소를 특정 디렉토리에 지정하기 위함입니다.


Setting를 들어갑니다.


저는 MYSQL 저장소를 D:\Docker\mysql 에 저장할 것이기때문에 D: 를 Share 하고 Apply했습니다.












이제 도커 트레이 아이콘에서 Kitematic을 클릭합니다.

그럼 Kitematic을 다운로드 받을텐데요. 적당한 곳에 압축을 풀고 실행해줍니다.



이후, C:\Program Files\Docker\Kitematic 폴더로 위치시킵니다. 








Kitematic을 실행합니다.







먼저 mysql Container설치가 필요합니다. mysql을 검색하시고 공식 컨테너이너에 Create버튼을 눌러주세요.







설치 후, MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD, MYSQL_RANDOM_ROOT_PASSSWORD 중 하나 설정이 필요하다고 하는데요. 설정해주러 갑니다. 오른쪽 위에 Setting 를 클릭합니다.








환경변수에 MYSQL_ROOT_PASSWORD  항목을 입력하고, 암호를 입력합니다. 저는 wordpress로 했습니다.


그리고 반드시 SAVE버튼을 눌러주어 저장해야합니다.











Hostname / Ports 탭에서 포트 설정도 해줍니다. 기본적으로 임의로 포트로 구성되는데 mysql의 기본포트인 3306 포트로 지정하고 SAVE버튼을 꼭 눌러줍니다.












Volume도 지정합니다. 저의 경우 D:\Docker\mysql 폴더를 지정했기 때문에 \host_mnt\d\Docker\mysql로 연결되었습니다. 이렇게하면 MySQL의 DB데이터들이 이 디렉토리에 저장 됩니다.












이제 다시 좌 상단에 + NEW 버튼을 눌러 새로운 컨테너를 검색해서 설치합니다.  wordpress를 검색해서 공식 wordpress 컨테이너에 CREATE버튼을 클릭합니다.









설치 후, 역시 Settings 탭에 들어가 외부포트를 80으로 맞추어줍니다. 혹시 이미 80포트를 사용하고 있다면, 기존 서비스를 꺼준다던가, 다른포트를 사용해야 합니다.






앞서 설치한 mysql container와 연결시켜주기 위해 Network탭에서 Link 항목에 mysql을 위 그림과 같이 설정해줍니다. 주의할 점은 위처럼 입력 후, 반드시 + 버튼을 클릭해주셔야 합니다.









이제 끝났습니다. 


localhost로 접속해보시면 아래와 같이 워드프레스 화면이 뜨는 것을 볼 수 있습니다!









ps) 워드프레스 컨테이너의  Volumes 디렉토리를 지정하여, PC 내부 디렉토리로 연결할 수 있습니다...

+ Recent posts