simjk98의 등록된 링크

 simjk98로 등록된 네이버 블로그 포스트 수는 162건입니다.

세마포어(Semaphore) 알아보기 [내부링크]

이번 포스팅에서는 세마포어에 대해 알아보겠습니다.1. IPC란 . 세마포어는 메세지큐, 공유메모리 등과 함께 가장 많이 쓰이는 IPC자원중 하나입니다. IPC란 Inter Process Communication의 약자로 프로세스간 통신을 위한 자원들을 말합니다. 프로세스간 통신이란 어떨때 쓰일까요? 가령 유닉스 시스템에서 독립적으로 수행되는 2개의 프로세스가 있는데 이들간에 특정 데이터영역을 공유해야 한다면 어떻게 해야 할까요? 먼저 공유할 수 있는 메모리영역이 필요합니다. 이럴때 사용되는 자원이 공유 메모리(shared memory)입니다. 공유메모리를 확보했다면 그 다음에 확보된 공유자원을 접근하는 방법을 지정해야 하겠죠. 근데 공유메모리 영역.......

[아두이노 강좌] 아두이노 보드 전력사용 제어하기(feat. sleep mode & LowPower library) [내부링크]

이번 포스팅에서는 아두이노 보드에서 sleep 모드 사용방법에 대해 알아보겠습니다. 전력사용량 제어를 위...

웹브라우저를 이용한 OTA 펌웨어 업데이트(feat. ESP32) [내부링크]

지난 포스팅에서는 Arduino IDE를 이용하여 OTA를 통해 ESP8266보드에 업로드된 펌웨어를 무선 ...

ESP32-CAM AI Thinker 보드 사용하기(feat. 동영상 스트리밍 웹서버) [내부링크]

이번 포스팅에서는 ESP32보드들중에 카메라를 연결하여 간편하게 사용할 수 있는 ESP32-CAM AI ...

HTTP Server를 이용한 여러대의 IoT보드 펌웨어 동시 Update(feat. OTA & ESP32) [내부링크]

지난 2번의 포스팅에서 Arduino IDE와 웹브라우저를 사용하여 펌웨어 무선 업데이트 방법에 대해 알아...

WeMos D1 mini보드 사용하기 [내부링크]

이번 포스팅에서는 ESP8266 계열의 소형보드인 WeMos D1 mini보드에 대해 알아보겠습니다. 어떻게 생...

Arduino IDE를 이용한 펌웨어 무선업데이트(feat. OTA) [내부링크]

이번 포스팅에서는 OTA와 Arduino IDE를 이용하여 보드에 업로드 되어 있는 펌웨어를 업데이트 시키...

웹소켓(WebSocket) 이란 [내부링크]

이번 포스팅에서는 웹소켓에 대해 알아보겠습니다. 일단 이름만 봐도 대충 어떠한 역할을 하는 놈인가는 알...

OTA(Over The Air)란 [내부링크]

OTA란 무선으로 다양한 전자기기에 내장되어 있는 펌웨어, 암호화 키, 구성설정정보등을 업데이트 해주...

얼굴인식을 이용한 출퇴근 관리 시스템 만들기-The begining(프로젝트 정의 및 OpenCV 설치) [내부링크]

그간 블로그에 게시한 포스팅들은 사전에 구현을 완료 한것들을 대상으로 하였습니다. 이 프로젝트 카테고리에서는 머리속에 구현해보려고 생각하고 있는 것들을 하나하나씩 구현하는 과정들을 포스팅 해볼까 합니다. 구현을 완료하고 포스팅 하는게 아니기 때문에 포스팅이 완료되는데 시간이 조금 소요될 수도 있을것 같네요. 첫번째 프로젝트의 시작으로 얼굴인식을 이용한 출퇴근 관리 시스템을 구현해 보려고 합니다. 프로젝트 카테고리의 첫 포스팅이니 만큼 프로젝트에 대해 간단히 정의하고 넘어갈까 합니다. 요즘엔 프로젝트라는 말이 흔하게 많이 쓰이는것 같습니다. 초/중/고등학교 피지컬 컴퓨팅 수업에서도 뭔가를 만들어 내는 활동.......

RTOS를 이용하여 라인트레이서 자동차 구현하기(feat. 아두이노 나노) [내부링크]

이번 포스팅에서는 지난번 아두이노강좌 카테고리에 올렸던 RTOS의 간단한 활용 예시로 아두이노와 R...

스케줄링(scheduling) 알아보기 [내부링크]

지난번 포스팅하였던 RTOS에 관련된 설명중에 가장 많이 나온 단어가 아마 스케줄링이라는 단어일 껍니다. RTOS를 이해할때 필요할 것 같아 이번 포스팅에서는 시스템상에서 동작되고 있는 프로세스의 수행 순서를 관리하는 스케줄링에 대해 알아보겠습니다.1. 스케줄링이란 - 다중 프로세싱을 지원하는 운영체제에서 프로세서자원(CPU)을 프로세스(실행중인 프로그램)에게 할당하는 작업을 의미합니다. - 왜 이런 스케줄링 작업이 필요할까요? 먼저 방금전에 언급한 다중 프로세싱 환경 이라는 의미를 되새겨 보면 다중 프로세싱 환경이라는 의미는 여러개의 프로세스가 한꺼번에 동작한다는 의미입니다. 그런데 컴퓨터의 CPU는 제한된 자원입.......

라즈베리파이에 웹서버 구축하기(feat. Nginx) [내부링크]

이번 포스팅에서는 라즈베리파이에 웹서버인 Nginx를 설치하는 방법에 대해 알아보려고 합니다.웹서버 설치에 앞서 웹서버란 뭘까요? WAS서버라는 말도 함께 많이 쓰이는데.. 아주 간략하게 서술한다면 웹서비스를 제공하기 위하여 클라이언트(사용자)로부터 요청을 받아주는 서비스를 제공하는 서버라고 보시면 됩니다. 우리가 인터넷 창에서 웹사이트 주소를 치고 엔터를 누르면 그 웹사이트 서비스를 제공하는 웹서버가 사용자가 접속한 요청을 받아주게 됩니다. 요청의 종류에 따라 웹서버 자체에서 응답을 처리해서 보내 줄수도 있고 요청처리에 비지니스 로직이 들어간다면 WAS에 처리요청을 전달하기도 합니다. WAS란 (Web Applicaiont Se.......

파이썬 제너레이터(Generator) 알아보기(feat yield) [내부링크]

이번 포스팅에서는 파이썬의 제너레이터 기능에 대해 알아보겠습니다. 1. 제너레이터(Genterator)란? 파이썬의 제너레이터는 yield라는 키워드를 이용하여 함수 안에서 반복자(iterator)를 생성해 주는 함수입니다. 반복자(iterator)란 말 또한 생소하죠? iterator란 컬렉션(컨테이너라는 말도 사용됩니다.)에 저장된 원소들을 반복적으로 접근하여 읽어오는 일반화된 방법을 제공하는 객체입니다.. 음.. 이말이 더 어려워보이는듯 합니다. STL, Java등에서도 사용되는 개념이며 시퀀스하게 저장되어 있는 데이터를 순차적으로 접근하여 읽어오기 위한 방법(메소드)을 제공하는 객체라고 하면 좀 더 이해가 되실려나요?.. 제너레이터 함수는 retu.......

라즈베리파이에서 한글사용하기 [내부링크]

라즈베리파이에서 한글 설정하는 방법입니다. 라즈베리파이에 라즈비안을 설치하고 난 후 vnc로 접속해보면 아래와 같이 영문으로 메뉴가 표시됨을 확인할 수이 있습니다.윈도우창에서 터미널을 열어서 한글을 입력하려고 해도 한글이 정상적으로 입력이 안되고 깨져서 보이는 것을 확인 할 수 있습니다. 아래 화면 처럼요. . 그럼 한글폰트와 입력기를 추가로 설치해 보겠습니다. . 한글 폰트는 다음과 같이 설치합니다. 패키지정보를 업데이트한 후에 다음의 명령으로 폰트를 설치합니다. 한글 입력기를 설치합니다. . 설치가 완료된 후 vnc로 접속하여 Raspberry Pi Configration 메뉴에서 Localision 탭의 Local정보를 다음과 같이 바꾸어 줍.......

파이썬을 이용한 아두이노 제어(feat. Firmata) [내부링크]

이번 포스팅에서는 파이썬과 Firmata라는 통신프로토콜을 이용해서 아두이노의 디지털핀과 아날로그 핀을 제어하는 방법에 대해 알아보겠습니다. Firmata는 마이크로컨트롤러와 호스트컴퓨터의 소프트웨어간의 통신을 위한 프로토콜로 아두이노 IDE에서는 기본적으로 Firmata 라이브러리를 제공하고 있습니다. 초등하교, 중학교 학생이 아두이노(오렌지보드)를 제어하기 위해 많이 사용하는 S4A(아두이노를 위한 스크래치), 엔트리와 같은 블록기반 소프트웨어와 시각화 소프트웨어인 프로세싱도 이 프로토콜을 이용하여 아두이노를 제어합니다. 이외에도 php, perl, .NET등의 프로그램에서도 이 프로토콜을 이용하여 아두이노를 제어할 수 있습.......

MicroPython(마이크로파이썬) 펌웨어 설치(feat. ESP8266) [내부링크]

카테고리에 MicroPython 카테고리를 하나 추가하였습니다. 첫번째 포스팅으로 Micropython이 뭐에 쓰이는 녀석인지 알아보고 ESP8266 기반의 MCU보드인 NodeMCU에 펌웨어 업로드까지 해보겠습니다.Micropython은 python3를 베이스로 하여서 마이크로컨트롤러(MCU)에서 프로그램이 수행할 수 있도록 최적화된 경량 파이썬 언어라고 이해하시면 될 듯 합니다. 요즘 학습교구로도 많이 쓰이는 BBC의 마이크로비트로 이 Miropython으로 제어합니다.1. MicroPython 사용을 위한 최소 사양 . 다들 아시겠지만 파이썬은 interpret 언어입니다. 물론 중간에 byte 코드로 변환하는 과정이 있기는 합니다. 어찌 되었던 파이썬을 실행시키기 위해서는 번역기.......

MicroPython(마이크로파이썬)을 이용한 웹페이지 만들어보기(feat ESP8266&AP모드) [내부링크]

지난 포스팅에서는 station 모드와 AP 모드에 대해서 간단히 설명하고 마이크로파이썬을 이용하여 station 모드로 설정하여 네트워크 통신하는 코드에 대해 알아보았습니다. 자세한건 요기 참고이번 포스팅에서는 AP모드로 통신하여 간단한 웹페이지를 만들어 보겠습니다. 지난 포스팅에서도 설명을 했었지만 ESP8266을 AP모드로 설정하면 클라이언트로부터 네트워크 요청을 받아 처리해줄 수 있게 되므로 별도의 네트워크 장비 없이 로컬네트워크를 구성할 수 있게 됩니다.그럼 마이크로파이썬을 이용하여 ESP8266을 AP모드로 제어하는 코드와 예시를 알아보도록 하겠습니다.1) AP 모드 사용하기 - 사실 기본 마이크로파이썬을 ESP8266에 업로드.......

MicroPython(마이크로파이썬) 라이브러리 설치하기(feat cron) [내부링크]

이번 포스팅에서는 MicroPython의 기본 라이브러리외에 추가적인 라이브러리 사용을 위해 ESP8266, ESP32와 같은 보드들에 라이브러리를 추가하는 방법에 대해 알아보겠습니다.파이썬에서 라이브러리를 추가할때는 pip 툴을 이용해서 추가해줍니다. 이미 언급하였듯이 마이크로파이썬은 MCU보드에서 사용하기 위해 만들어진 파이썬이므로 파이썬과는 툴이 좀 다른데요. 마이크로파이썬에서는 upip를 이용해서 라이브러리를 추가할 수 있습니다.upip를 이용하여 라이브러리를 설치하기 전에 먼저 해야 할 일은.. 라이브러리를 추가하고자 하는 보드를 네트워크에 연결해줘야 합니다.. 당연하죠.. 네트워크에 연결되야 누군가와 통신을 할수 있을테.......

아두이노 IDE에서 ESP8266(NodeMCU) 사용하기 [내부링크]

이번 포스팅에서는 아두이노 IDE를 이용하여 ESP8266 보드에 프로그램을 업로드하기 위한 설정방법에 대해 알아보겠습니다. ESP8266 보드에 대해서는 제 블로그에서도 여기저기 설명한 것들이 좀 있는데요. 간단히 언급하자면 wifi 통신칩이 내장된 보드라고 보시면 됩니다. NodeMCU같은 경우에는 flash 메모리가 4M 이기 때문에 아두이노 스케치를 업로드하여 사용하는 것 외에도 마이크로파이썬(micropython)을 이용하여 프로그램 업로드하여 개발도 가능합니다. 마이크로파이썬에 대해 궁금하신 분들은 요기를 참고해주세요.그럼 NodeMCU 보드에 아두이노 IDE를 이용하여 스케치를 업로드해 사용하기 위한 방법을 알아보겠습니다. 뭐.. 설정은.......

라즈베리파이에서 WiringPi, C언어를 이용한 디지털입력센서 값 가져오기(feat. sw-420 디지털진동센서) [내부링크]

지난 포스팅에서 라즈베리파이에 WiringPi를 설치하여 C언어로 LED를 켜보는 내용을 포스팅했었으니 이번에는 WiringPi를 이용하여 디지털입력센서로부터 값을 가져오는 프로그램을 구현해 보겠습니다.구현 내역은 예전에 파이썬으로 구현하였던 5초 이내에 진동이 20회 이상 발생하면 LED가 켜지도록 하는 프로그램을 C언어로 구현해 보겠습니다. 회로도도 이전 포스팅과 동일합니다.WiringPi의 디지털 출력신호는 digitalWrite() 함수를 사용한다고 지난 포스팅에 소개 드렸었는데 디지털입력신호를 가져오는 함수는 digitalRead()입니다. 이번 포스팅에서 사용될 wiringPi 라이브러리 함수 내역을 간단히 정리해 보면 다음과 같습니다.아두이.......

ESP32보드 알아보기 [내부링크]

이번 포스팅에서는 ESP32보드에 대해 알아보겠습니다. ESP8266 보드는 마이크로파이썬 강좌 카테고리에서 사용하였던 MCU보드 입니다. ESP8266 보드에 대해서 따로 포스팅하지는 않았지만 MicroPython(마이크로파이썬) 펌웨어 설치(feat. ESP8266) 와 MicroPython IDE(PyCharm)설치 및 LED 제어해보기 포스팅에서 간단한 소개와 핀맵등에 대해 언급했었죠.ESP32는 ESP8266 보드의 업그레이드 버전이라고 보셔도 될 듯 합니다. ESP8266은 위의 포스팅에서도 언급했었지만 사용할 수 있는 디지털 핀의 갯수가 제한이 있었고 아날로그 핀도 1개 밖에 없어서 다양한 센서와 함께 활용하기에는 무리가 있었습니다. ESP32 보드는 V2보드 기준으로 GPIO .......

Arduino IDE를 이용하여 ESP32에 펌웨어 올리기 [내부링크]

이번 포스팅에서는 Arduino IDE를 이용하여 프로그램을 작성 후 ESP32보드에 펌웨어를 올리는 방법에 대해 알아보겠습니다.업로드할 프로그램은 지난번 ESP32보드 소개 포스팅에서 잠깐 언급했던 ESP32보드에 내장된 touch센서가 어떻게 동작하는지 알아보는 프로그램을 업로드 해보겠습니다. 회로구성을 하시려면 해당핀에 암수점퍼케이블을 연결하여 핀이 나와있는 부분을 터치하시면 출력되는 값이 바뀌는 것을 확인할 수 있습니다.그럼 먼저 Arduino IDE에 ESP32보드를 추가하는 방법에 대해 알아보겠습니다. 이전에 포스팅하였던 아두이노 IDE에서 ESP8266(NodeMCU) 사용하기 와 과정은 동일하며 단지 URL만 ESP32보드용으로 바꾸어 주면 됩.......

ESP32제어를 위한 기초 사용법(feat. Arduino IDE & digitalRead, digitalWrite, analogRead) [내부링크]

포스팅을 하는 주기가 점점 길어지네요.. 이번달에는 포스팅의 양을 조금 늘려볼까 합니다. 처음에 ESP32보드관련된 포스팅을 할때는 C언어로 제어하는 방법과 마이크로파이썬으로 제어하는 방법을 번갈어 게시하려고 했는데.. 펌웨어를 다시 깔고 하는게 꽤나 번거로울듯하여.. 먼저 Arduino IDE를 이용하여 ESP32를 제어하는 방법들을 알아보고 얼추 마무리가 된듯하면 마이크로파이썬을 이용하여 제어하는 방법에 대해 알아보겠습니다. 사실 마이크로파이썬으로 제어하는 방법은 이전에 마이크로파이썬 카테고리에서 포스팅하였던 마이크로파이썬을 이용한 ESP8266 제어방법을 읽어 보신분들이라면 유사한 부분들이 많아서 크게 어렵지는 않을.......

C언어를 이용한 라즈베리파이 인터럽트 처리(feat. wiringPiISR) [내부링크]

이번 포스팅에서는 라즈베리파이에서 WiringPi 라이브러리와 C언어를 이용하여 인터럽트를 처리하는 방법에 대해 알아보겠습니다. 인터럽트에 대해서는 라즈베리파이에서 파이썬으로 인터럽트를 다루는 방법, 아두이노에서 인터럽트를 다르는 방법에 대해 포스팅했을때 간단하게 설명했던게 있는데요. 인터럽트에 대한 개략적인 정의는 [아두이노강좌]아두이노 수행 흐름제어하기-step2-인터럽트의 정의 나 라즈베리파이 GPIO 인터럽트 사용해보기 with 푸쉬버튼 & passive buzzer를 참고하시면 도움이 되실듯 합니다. 인터럽트에 대한 설명은 위의 포스팅으로 대체하고 라즈베리파이에서 C언어로 인터럽트를 처리하는 방법에 대해 알아보겠.......

ESP32보드에서 패시브부저 사용하기(feat. ledcWriteTone, ledcWriteNote) [내부링크]

이번 포스팅에서는 ledcWriteTone, ledcWriteNote 함수를 이용하여 수동부저를 이용해 음악을 연주하는 방법에 대해 알아보겠습니다. ESP32보드에서는 특정핀의 출력주파수 값을 변경시켜주는 함수로 ledcWriteTone 함수와 ledcWriteNote함수를 사용합니다. 아두이노 보드에서 사용하였던 Tone함수는 사용되지 않습니다.두 함수의 사용형태는 다음과 같습니다.ledcWriteTone함수는 아두이노의 Tone 함수와 사용법이 동일합니다. 가령 16번핀에 연결된 수동부저 모듈을 이용하여 "도"음을 내고 싶다면 ledcWriteTone(16,262) 이렇게 "도"음에 해당하는 주파수 값인 262를 매개변수로 전달하면 됩니다.ledcWriteNote함수는 led.......

ESP32를 이용한 블루투스 통신(feat. BluetoothSerial) [내부링크]

이번 포스팅에서는 ESP32보드에 내장되어 있는 블루투스 모듈을 이용하여 블루투스 통신을 하는 프로그램을 구현해보도록 하겠습니다. 지난 포스팅에서도 언급하였지만 ESP32 보드에는 블루투스 모듈이 내장되어 있습니다.( EPS32-S2 보드는 내장 블루투스 모듈은 지원X). 아두이노에서 블루투스 통신을 하려면 HC-06 모듈을 연결하고 프로그램에서 핀 지정해서 SoftwareSerial 객체 선언해서 사용했었는데요.. ESP32보드의 경우에는 그냥 BluetoothSerial 객체 선언해서 사용하면 됩니다. 굉장히 간단하죠. BluetoothSerial 클래스는 BluetoothSerial.h 헤더파일에 다음과 같이 Stream 클래스를 상속받아 선언되어 이있습니다.흔히 사용되는 beg.......

크리스마스, 연말연시 집콕파티를 위한 네오픽셀 조명 만들기 (feat. 아두이노 나노) [내부링크]

코로나 때문에 힘든 날들이 계속되네요. 얼마 남지 않은 크리스마스, 연말도 우리가족뿐만 아니라 주변사람들을 위해서라도 조금은 힘들겠지만 여러사람과 함께하기 보다는 가족끼리 오붓&단란&소소하게 보내야 하지 않을까 합니다. 그래서 이번 포스팅에서는 집콕파티의 분위기를 UP~ UP~ 해줄수 있는 네오픽셀 미러등을 구현해보았습니다. 구현을 위한 부품 목록은 다음과 같습니다. 64채널 네오픽셀도 DIN핀만으로 제어가 되므로 회로구성은 간단합니다. 네오픽셀에 대해 좀더 궁금하신 분은 아두이노 네오픽셀 사용하기 포스팅을 참고하시기 바랍니다.내년도 수업교구 라인업에 추가할 목적으로 제작한 것으로 투명아크릴과 검은색 아.......

ESP32보드에서 서보모터 사용하기(feat. ESP32Servo) [내부링크]

이번 포스팅에는 ESP32보드에서 C언어를 이용하여 서보모터를 제어하는 방법에 대해 알아보겠습니다. 아두이노 보드의 경우에는 서보모터 제어를 위한 라이브러리가 내장 라이브러리어서 servo.h 헤더파일을 추가하기만 하면 서보모터를 제어할 수 있습니다만 ESP32보드의 경우에는 서보모터 제어를 위한 내장라이브러리가 없습니다. github를 검색하면 ESP32 보드용 서보모터 라이브러리들이 몇개 있는데 여기서는 ESP32Servo 라이브러리를 이용하여 제어해 보도록 하겠습니다. - 라이브러리 다운로드 받기 https://www.arduinolibraries.info/libraries/esp32-servo 에 접속하시면 아래 화면과 같이 ESP32보드용 서보모터 라이브러리인 ESP32Se.......

ESP32보드를 이용한 비접촉 체온계 구현 [내부링크]

이번 포스팅에서는 ESP32보드를 이용한 비접촉 체온계를 구현해 보겠습니다. 요즘 코로나 때문에 많이 ...

아두이노를 이용하여 RFID 선불카드 만들어보기 [내부링크]

지난 포스팅에서는 RFID태그의 UID값을 읽어와서 등록된 UID이면 LED를 켜보는 프로그램을 구...

Arduido IDE에서 파일시스템(SPIFFS) 사용하기 [내부링크]

MCU보드들을 이용하여 프로그램을 구현하다보면 취합된 데이터를 저장하거나 프로그램의 설정정보를 저...

ESP32보드에서 Deep Sleep모드 및 Wake Up 구현하기 (feat. micropython) [내부링크]

이번 포스티에서는 ESP32보드에서 마이크로파이썬을 이용하여 Deep Sleep 모드 및 Wake Up을 구현하...

ESP32보드에서 비접촉온도센서 사용해보기(feat micropython & MLX90614(GY906)) [내부링크]

오래간만의 포스팅이네요. 이번 포스팅에서는 ESP32보드와 마이크로파이썬을 이용한 비접촉온도측정센서...

라즈베리파이에서 가상파일시스템(sysfs)을 이용한 GPIO제어 [내부링크]

블로그에 wiringPi와 같은 라이브러리를 이용하지 않고 C언어로 라즈베리파이를 제어하는 방법을 문의주...

아두이노에서 비접촉 온도센서(MLX90614) 사용하기 [내부링크]

지난 포스팅에서 마이크로파이썬과 ESP32보드를 이용하여 비접촉 온도센서를 사용하는 법을 포스팅 했었...

ESP32보드&C언어를 이용한 오픈API 활용방법(feat. 코로나 발생현황&미세먼지현황) [내부링크]

이번 포스팅에서는 ESP32보드와 오픈 API를 활용하여 필요한 데이터를 웹상에서 가져와서 보여주는 방법에 대해 알아보겠습니다. 오픈API는 말 그래도 공개되어 있는 API, 즉 누구나 사용할 수 있는 API를 말합니다. 공공데이터 포털에서 제공하고 있는 공공데이터 , 구글지도, 네이버지도등과 같이 공개되어 있는 자료들을 오픈API를 이용하여 가지고 올 수 있습니다. 조금 이슈인 데이터가 뭐가 있을까 고민하다가.. 미세먼지 정보와 코로나19 감염자 현황자료를 조회하여 LCD에 출력해보도록 하겠습니다.ESP32보드의 장점은 지난번에도 언급하였지만 네트워크 통신을 위해 별도의 작업을 하지 않아도 된다는 점입니다. 아두이노 나노, 우노 보.......

[아두이노강좌]EEPROM이란 [내부링크]

이번 포스팅에서는 EEPROM이 뭐고 아두이노에서는 EEPROM이 어떤 용도로 사용되고 어떻게 쓸 수 있는지 알아보겠습니다.1. EEPROM(Electrically Erasable Programmable Read-Only Memory) 이란? - EEPROM은 비휘발성 메모리의 한 종류입니다. 지워지지 않는 메모리라는 의미입니다. 흔히 알고 계시는 ROM의 한 종류입니다. 그런데 ROM앞에 "P"자가 하나더 붙었습니다. Programmable이라는 말에서 알수 있듯이 프로그램이 가능한 ROM을 의미합니다. 여기에 Electrically Erasable 라는 말이 더 붙어있네요. 전기적으로 지울수 있다는 의미죠. 결국 EEPROM은 전기적인 신호와 프로그램을 이용하여 쓰고 지울 수 있는 비휘발성 메모리 입.......

RFID(Radio-Frequency Identification) [내부링크]

1. 정의 RFID란 무선주파수와 전자칩을 이용하여 전자칩안에 있는 정보를 주고 받는 비접촉 무선인식 ...

아두이노에서 RFID(MFRC522) 사용-STEP1 태그 UID 읽어오기 [내부링크]

이번 포스팅에서는 아두이노를 이용하여 RFID 모듈인 MFRC522리더를 이용하여 RFID태그의 UI...

ESP32보드에서 PWM 사용하기(feat. ledcWrite) [내부링크]

이번 포스팅에서는 ESP32보드에서 PWM 기능을 사용해보도록 하겠습니다. ESP32보드는 아두이노 보드에서 사용되는 PWM함수인 analogWrite 함수를 지원하지 않습니다. 이번 포스팅에서 PWM이 무엇인지에 대해서는 언급하지 않도록 하겠습니다. PWM의 정의와 표현방법들에 대해 궁금하신 분들은 [아두이노강좌]아두이노를 이용한 센서 제어-step8-아날로그출력센서(analogWrite) 포스팅을 참고하시기 바랍니다. ESP32보드에서 PWM핀은 아두이노 보드와는 달리 PWM핀이 지정되어 있지 않고 모든 GPIO핀들이 PWM 사용이 가능하며 총 16개의 PWM 채널을 지원합니다. 또한 PWM의 resolution(분해능) 값을 1~16비트 사이로 지정할 수 있습니다. 가령 8비.......

MicroPython(마이크로파이썬) MQTT통신을 이용한 IoT 기기 원격제어(feat ESP8266, 라즈베리파이)-부제:라즈베리파이 리모콘 [내부링크]

이번 포스팅에서는 마이크로파이썬에서 MQTT통신을 이용하여 IoT기기를 원격제어 하는 프로그램을 구현해보겠습니다.MQTT통신은 라즈베리파이에서도 구현해봤고 아두이노에서도 구현해봤던 통신방법입니다. 라즈베리파이는 요기, 아두이노는 요기를 참고하시면 각 보드들에서 MQTT통신을 수행하는 법을 확인하실 수 있습니다.MQTT(Message Queue Telemetry Tansport)통신은 MQTT프로토콜은 낮은대역폭을 사용하는 경량화된 통신 프로토콜로 IoT 구현시 많이 사용되는 저사양의 하드웨어 플랫폼들의 통신용으로 적합한 통신 프로토콜입니다. MQTT통신을 처음 접해보신 분들은 MQTT 통신개념 및 통신방식에 관련하여 설명한 이전 포스팅을 한번 읽.......

라즈베리파이와 아두이노간 시리얼 통신하기 [내부링크]

이번 포스팅에서는 라즈베리파이와 아두이노간 시리얼 통신을 수행하여 서로 연동하는 방법에 대해 알아보겠습니다. 음.. 라즈베리파이와 아두이노간 네트워크 연결은 wifi 모듈을 이용하여 TCP/IP 통신을 하는것이 일반적이 겠지만 주의 환경에 따라서 시리얼 통신을 이용해서 통신을 수행하여야 할 경우도 발생할 수 있을것 같네요라즈베리파이와 아두이노간 시리얼 통신을 하려면.. 먼저 당연하게 아두이노와 라즈베리파이가 있어야 겠죠.구현내역은 라즈베리파이에서 버튼을 누르면 시리얼통신을 이용해서 아두이노에 데이터를 전달하여 버튼이 눌려지면 LED를 켜도록 프로그램 해보겠습니다.라즈베리파이에서 버튼 GPIO26번에 연결하였으며.......

라즈베리파이에 WiringPi 라이브러리 설치 & C언어로 GPIO 제어해보기 [내부링크]

이번 포스팅에서는 라즈베리파이에 GPIO 핀 제어를 위한 C언어 라이브러리인 WiringPi 라이브러리를 설치하고 간단한 사용방법을 알아보겠습니다. 음.. 제 개인적인 취향으로는 라즈베리파이에서 파이썬을 사용하여 제어하는게 예제도 많고 편하기도 해서 파이썬을 선호합니다만.. 최근들어 블로그에 C언어로 라즈베리파이를 제어하는 것과 관련된 댓글문의가 늘어나서 포스팅 하게 되었습니다.그럼 라즈베리파이에서 WiringPi 라이브러리를 설치하는 방법에 대해 알아보겠습니다.음.. 설치하는 방법은 WiringPi 홈페이지에도 여러가지 방법이 나와있기는한데.. 저는 그중에서 가장 간단한 방법으로 설치하였습니다. 라즈베리파이에서 위와 같이.......

WiringPi와 C언어를 이용하여 라즈베리파이에서 아날로그 센서값 읽어오기(feat MCP3008, analogRead) [내부링크]

지난 포스팅에서 wiringPi를 이용하여 디지털센서의 입력값을 가져오는 부분에 대해 설명했었는데요. 이번 포스팅에서는 아날로그센서값을 읽어오는 방법에 대해 알아보겠습니다. 아날로그 센서값을 가져오기 위해 사용하는 ADC는 MCP3008을 이용하겠습니다. MCP3008은 SPI통신으로 데이터를 주고 받는 ADC로서 라즈베리파이에서 SPI통신을 하기위한 설정방법, ADC정의, 여기서 사용할 MCP3008에 대한 간략한 설명은 이전의 포스팅인 라즈베리파이에서 아날로그 입력값 가져오기-SPI통신(조도센서 연결)을 참고하시기 바랍니다. MCP3008을 사용하기위해서는 SPI통신을 위한 설정작업이 반드시 필요하므로 위에서 링크한 포스팅을 참고하셔서 설정.......

마이크로파이썬(MicroPython) 으로 I2C 1602 LCD 사용하기 [내부링크]

이번 포스팅에서는 마이크로파이썬을 이용하여 I2C 통신모듈이 연결되어 있는 1602LCD를 제어하는 방법에 대해 알아보겠습니다. 1602LCD는 가격도 싼 편이고 I2C 통신모듈이 연결되어 있으면 회로 구성도 쉬워서 널리 사용되는 액츄에이터 중에 하나 입니다. 제 블로그에서도 아두이노와 라즈베리파이에서 사용하는 방법을 소개한적이 있었죠. 여기서는 마이크로파이썬과 ESP8266을 이용하여 I2C 1602LCD를 사용해보겠습니다.먼저 1602LCD는 다음과 같은 외형을 가지고 있습니다.다음으로는 nodeMCU에 1602LCD를 연결한 회로도 입니다. LCD로 연결되는 전원은 외부전원을 사용하였습니다. ESP8266의 전원핀은 3.3V 핀밖에 없어서 1602LCD를 켜서.......

WiringPi와 C언어를 이용한 서보모터 제어(feat. PWM) [내부링크]

이번 포스팅에서는 WiringPi와 C언어를 이용하여 서보모터를 제어하는 방법에 대해 알아보겠습니다. 서보모터를 제어하기 위해서는 서보모터 작동방법과 PWM에 대한 이해가 필요한데요. PWM의 정의와 동작원리는 PWM을 이용한 아날로그 출력 및 디지털 센서 값 가져오기 with 파이썬 포스팅을PWM을 이용한 서보모터 동작방법은 라즈베리파이를 이용한 서보모터 제어 포스팅을 참고하시기 바랍니다.wiringPi 라이브러리와 C언어를 사용하여 서보모터를 제어하기 위해서는 다음과 같은 함수가 필요합니다. PWM을 사용할 GPIO핀,초기값, 주기를 설정합니다. pwmRange는 pwm 주기로 단위는 100입니다. 여기서 사용될 서보모터인 sg90 서보모터는 PW.......

MicroPython IDE(PyCharm)설치 및 LED 제어해보기 [내부링크]

지난 포스팅에서 NodeMCU에 MicroPython 사용을 위한 펌웨어까지 업로드하고 정상 설치 확인까지 했었습니다. 이번 포스팅에서는 MicroPython을 이용하여 NodeMCU의 내장 LED를 제어해보겠습니다. 프로그램을 작성하기 전에 먼저 NodeMCU의 핀 배열을 살펴보도록 하겠습니다.NodeMCU는 GPIO핀이 17개가 있습니다. 이중에서 Flash 메모리 연결용(GPIO6~11), Serial 통신, wakeup 용도등의 특정한 목적을 위해 예약이 되는 핀을 제외하고 편하게 사용할 수 있는 핀은 GPIO4,5,12,13,14번 핀과 아날로그핀 1개로 사용할 수 있는 핀은 제한적인 편입니다. 1. MicroPython 프로그램을 위한 IDE 설치 - 지난 포스팅처럼 putty를 이용하여 터미널 콘솔창.......

MicroPython(마이크로파이썬) IDE(Thonny)설치 및 서보모터 제어하기 [내부링크]

지난 포스팅에서는 PyCharm IDE를 이용하여 NodeMCU 보드에 MicroPython프로그램을 업로드 했었습니다. 그런데 PyCharm은 초보자가 사용하기에는 부가적인 기능들이 너무 많고 조금 복잡한 느낌이 좀 있죠? 기존에 PyCharm을 사용하고 있는 경우가 아니라면, 단지 MicroPython을 이용할 목적이라면 왠지 PyCharm은 조금 무거워 보이네요. 이번 포스팅에서는 Thonny IDE를 이용해서 NodeMCU에 프로그램을 업로드 하고 서보모터를 제어하는 방법에 대해 알아보겠습니다. 1. Thonny IDE란? Thonny IDE는 초심자용 Python IDE 환경이라고 생각하시면 됩니다. PyCharm과 비교하면 단순하고 꼭 필요한 기능위주의 GUI환경을 가지고 있습니다.2. Thonny .......

MicroPython(마이크로파이썬)을 이용하여 아날로그 센서값 가져오기 [내부링크]

이번 포스팅에서는 MicroPython과 NodeMCU를 이용하여 아날로그 센서값을 가져오는 프로그램을 구현해 보도록 하겠습니다. 조도센서 모듈과 LED를 사용하여 조도센서의 값에 따라 LED의 밝기가 달라지도록 프로그램 해보겠습니다. MicroPython 업로드를 위한 IDE는 Thonny IDE를 사용하였습니다. MicroPython 관련 사전 정보는 다음의 포스팅들을 참고하여 주시기 바랍니다.- MicroPython 알아보기- MicroPython IDE(PyCharm)설치 및 LED 제어해보기- MicroPython IDE(Thonny)설치 및 서보모터 제어하기1. 회로구성 조도센서 모듈과 LED를 아래의 회로도와 같이 연결합니다. 앞에서의 포스팅에서도 언급하였지만 nodeMCU는 아날로그핀이 1개 있.......

MicroPython(마이크로파이썬)을 이용하여 64채널 네오픽셀 제어하기 [내부링크]

이번 포스팅에서는 MicroPython을 이용하여 64채널 네오픽셀을 제어하는 방법에 대해 알아보겠습니다.네오픽셀은 제 블로그에서도 서너번 다뤄봤었는데요. 개별제어가 가능한 RGB LED의 묶음 정도로 이해하시면 될듯 하네요. 이번에 사용할 64채널 네오픽셀 입니다.회로구성은 네오픽셀의 DI핀을 NodeMCU의 GPIO4번핀(D2핀) 연결하고 GND는 G에 5V핀은 NodeMCU에는 5V핀이 없어 일단 3.3V에 연결하여 테스트를 진행하였습니다.1. MicroPython에서 네오픽셀 제어하기- MicroPython에서 네오픽셀을 제어하는 클래스는 NeoPIxel 클래스입니다. 다음과 같이 import 하여 사용하면 됩니다. 2. 구현내역 앞에서 소개한 NeoPixel 클래스의 메소드들을.......

MicroPython(마이크로파이썬)과 초음파센서를 이용하여 거리 측정해보기(feat. HC-SR04+) [내부링크]

이번 포스팅에서는 MicroPython과 초음파센서를 이용하여 물체와의 거리를 측정해보도록 하겠습니다. 뭐 초음파센서를 이용해서 거리를 측정하는 파이썬 소스는 라즈베리파이를 이용해서 구현해본 적이 있습니다만 MicroPython을 이용한 방법은 소스코드에서 조금 차이가 있으므로 소개해 볼까 합니다. 초음파센서의 작동원리는 기존의 아두이노 강좌 포스팅 (요기)를 참고하시면 도움이 되실듯 합니다. 추가적으로 nodeMCU는 전원핀이 3.3V이므로 아두이노나 라즈베리파이에서 사용한 HC-SR04(5V동작) 초음파센서를 사용하면 정상작동이 안되므로 HC-SR04+ or HCSR04P 초음파센서를 사용하였습니다.1. 연결 회로도 초음파센서는 다음과 같이 핀.......

MicroPython(마이크로파이썬)을 이용한 미니안전선풍기 만들기(feat. esp8266) [내부링크]

이번 포스팅에서는 지난 포스팅들에 했었떤 내용을 가지고 책상용 미니 안전선풍기를 만들어 보겠습니다.구현내역은 다음과 같습니다. - 터치센서를 이용하여 선풍기를 켜고 끌 수 있도록 합니다. - 스틱형 네오픽셀을 이용하여 터치센서를 눌러 선풍기가 On/Off 동작 되었음을 표시해 줍니다. - 초음파센서를 이용하여 선풍기가 On 인상태에서 물체가 너무 가까운 거리에 왔을때는 선풍기가 동작을 멈추도록하고 물체가 멀어지면 다시 동작하도록 구현합니다.이전의 MicroPython 포스팅들을 읽어보신분들이라면.. 그리 어렵지 않게 구현하실 수 있을것 같네요.사용된 센서 목록은 다음과 같습니다. 사용된 센서중 초음파센서 및 네오픽셀은 Micr.......

MicroPython(마이크로파이썬)을 이용한 네트워크(wifi)통신(feat. esp8266) [내부링크]

이번 포스팅에서는 마이크로파이썬과 ESP8266을 이용하여 네트워크 무선통신(wifi)을 해보도록 하겠습니다.제 포스팅에서도 여러번 언급했지만 ESP8266은 wifi 통신용 마이크로 칩입니다. nodeMCU는 ESP8266계열 보드이므로 nodeMCU를 사용하면서 wifi통신을 안해보면.. 보드가 서운해 할수도 ㅋㅋ.1. MicroPython을 이용한 네트워크 접속 방법 - ESP8266과 마이크로파이썬을 이용하여 wifi 접속을 하는 방식에는 ESP8266을 어떤 용도로 사용할지에 따라 접속방식이 달라집니다. ESP8266이 클라이언트의 입장에서 공유기와 같은 무선 AP에 접속하여 네트워크 IP를 할당받아 사용하고자 한다면 station 모드를 사용하면 됩니다. 외부에서 인터넷망.......

MicroPython(마이크로파이썬) 시간설정 및 스케줄관리 프로그램 구현하기(feat. mcron, ntptime, RTC) [내부링크]

지난 포스팅에서 upip를 이용하여 마이크로파이썬에서 라이브러리를 추가하는 방법에 대해 알아보면서 mcron 라이브러리를 추가로 설치해보고 유닉스, 리눅스 스케줄 관리데몬인 cron에 대해 알아보았습니다. 지난 포스팅은 요기이번 포스팅에서는 지난포스팅에서 설치한 mcron 라이브러리와 ESP8266을 이용하여 마이크로파이썬에서 원하는 스케줄에 맞춰 여러가지 동작을 수행하는 프로그램을 구현해 보도록 하겠습니다. 1. 구현해볼 내역 - 오후 18시가 되면 LED를 켜고 오전 8시가 되면 LED를 끄도록 스케줄링 2. micropython 시간 설정 - 스케줄 등록에 앞서.. 뭔가 스케줄을 등록하고 관리하려면 시간동기화가 필요합니다. 시간이 맞지 않으.......

라즈베리파이(리눅스)에서 웹페이지 구축하기-두번째-Flask를 이용하여 가스유출,온/습도 감시 웹페이지 구현(feat uwsgi, render_template) [내부링크]

지난번 포스팅에 이어서 이번에는 Flask를 활용하여 라즈베리파이에서 수집된 센서데이터를 웹페이지에서 보여주도록 하겠습니다. 구현해볼 내역은 온/습도 센서와 가스센서를 이용하여 취합된 실내 정보를 웹상에서 확인 할 수 있도록 하는 페이지입니다. 라즈베리파이에 연결된 MQ2가스센서와 DHT11 센서로부터 데이터를 가지고 와서 이를 웹페이지에 보여주도록 구현해보겠습니다. 라즈베리파이에서 MQ2사용법 및 회로구성은 가스감지센서(MQ2) 사용하기를 DHT11 사용법 및 회로구성은 DHT11센서 사용하기를 참고하시기 바랍니다. 해당 포스팅들에 회로구성이 있으므로 번 포스팅에서는 별도로 회로 구성도는 그리지 않겠습니다. 그럼 센서데.......

라즈베리파이(리눅스)에서 웹페이지 구축하기-세번째-Flask,Nginx, uwsgi 연동하기 [내부링크]

지난번 포스팅까지하여 라즈베리파이에서 수집된 센서데이터를 wsgi를 이용하여 웹 페이지로 구현하는 것까지 하였습니다. 이번 포스팅에서는 Nginx와 uwsgi, Flask를 연동하여 웹서버, 게이트웨이서버, 웹 어플리케이션 프레임워크의 구조로 구현된 웹어플리케이션 시스템을 구현해보곘습니다.그냥 Flask만 이용해서도 웹페이지를 띄울수도 있고 아니면 Flask와 wsgi를 연결해서 웹페이지를 띄울수도 있는데 왜 구지 웹서버를 연결해서 띄울려고 하냐고 궁금해 하실수도 있을것 같아.. 음 간단히 웹서버를 구분하여 사용하는 이유 정리해보면 다음과 같습니다. - 클러스터 구조를 만들기가 편리하고 장애상황등에 유연하게 대처 할 수 있습니다.......

라즈베리파이(리눅스)에서 I2C 연결 디바이스 주소 확인(feat i2cdetect) [내부링크]

이번 포스팅에서는 라즈베리파이와 센서 연결시 많이 사용되는 i2c 통신 센서들의 연결 주소를 확인하는 방법을 알아보겠습니다.i2c 통신에 대한 개념과 설정방법은 라즈베리파이 I2C 통신을 이용한 LCD 쓰기를 참고하시기 바랍니다. 라즈베리파이와 i2c 통신 센서들과의 데이터 송수신을 위해서는 기본적으로 해당 센서 어떤 주소로 연결되었는지 확인을 해야 합니다. 이 주소를 확인해주는 명령이 i2cdetect 입니다.해당 명령을 사용하려면 i2c-tools 패키지가 설치되어 있어야 합니다. 라즈비안을 설치하면 기본적으로 설치가 되며 혹시 설치가 안되어 있다면 다음의 라즈베리파이의 CLI 창에서 다음의 명령을 수행하여 설치합니다.먼저 활성.......

라즈베리파이에서 Flask를 이용한 SSO 로그인 구현해보기(feat jwt_exteneded) [내부링크]

이번에는 Flask를 이용하여 SSO(Single Sign On)을 구현해 보겠습니다. SSO라는 말은 많이 들어보셨을텐데 우리말로 통합인증이라는 표현을 사용하기도 하지만 보통 원어 그대로 Single Sign On이라는 말로 많이 불리워지며 한번의 인증으로 여러 시스템에 대한 접근 권한을 취득하는 인증 방식을 말합니다. SSO에 대한 좀더 자세한 설명은 SSO(Single Sign On, 통합인증) 알아보기 포스팅을 참고하시기 바랍니다. 여기서는 SSO 구현 모델 중에 웹토큰을 방식으로 한번 구현해 보겠습니다.음.. 라즈베리파이에 웹페이지 하나 띄우면서 무슨 SSO까지 언급하느냐고 하시는 분들도 있을 수 있습니다만.. 일전에 라즈베리파이에서 방화벽을 활성화 시.......

SSO(Single Sign On, 통합인증) 알아보기 [내부링크]

이번 포스팅에서는 SSO(Single SIgn On, 통합인증)에 대해 알아보겠습니다. SSO의 의미는 말 그대로 한번의 인증으로 여러 컴퓨터 자원을 모두 쓸 수 있도록 하는 인증 방식입니다. 간단히 예를 든다면 만약 우리가 A라는 회사에 다닌다면 A회사의 다양한 사내시스템들-회계, 인사, 자산, 메일, 결재 등등등이 메뉴에 접근할때마다 로그인을 하지는 않죠. 사내포탈에서 처음 로그인을 하면 나머지 시스템(어플리케이션)들은 포탈에서 처음 로그인한 사용자의 권한에 따라 접근 할 수 있는 권한이 부여되어 이후에는 별도에 로그인 없이 사내시스템을 이용 가능합니다. 이렇듯 한번의 로그인으로 허용된 자원들을 모두 사용 가능하도록 하는 인증.......

라즈베리파이를 이용한 우리집 CCTV 구현하기-카메라영상 웹페이지로 스트리밍(feat Flask, PiCamera, OpenCV,Generator) [내부링크]

이번 포스팅에서는 라즈베리파이 카메라와 Flask를 연동하여 카메라로 촬영되고 있는 영상을 웹페이지로 스트리밍 하는 프로그램을 구현해 보겠습니다. 라즈베리파이에서 카메라 설정 방법은 여기를 참고하시기 바랍니다. 카메라 영상을 가져오고 제어하는 라이브러리는 OpenCV를 사용하였습니다. OpenCV 설치 방법은 여기를 참고하시기 바랍니다. 이번 포스팅은 기존에 포스팅하였던 라즈베리파이에서 웹페이지 구축하기1~4편을 모두 읽었다는 기준으로 작성하였으므로 이전 포스팅들을 한번 읽어 보시고 이번 포스팅을 보시는게 이해하시는게 도움이 되실 듯 합니다. 구현내역은 다음과 같습니다. 앞서 만들었던 가스와 온/습도를 보여주는 웹.......

DEV C++ 콘솔창(실행창) 유지하는 방법 [내부링크]

얼마전에 아두이노 수업을 하고 있는데... 한 학생이 갑자기 dev c++ 콘솔창이 바로 꺼져서 실행 결과를 확인할 수 없다면서 어떻게 하면 되냐고 물어보더군요.. 음.. 평소에 자주 사용하는 dev c++ 이지만 보통 한번 환경설정을 해놓으면 건드리지 않는 스타일이어서 갑자기 물어오니.. 어디서 설정했었는지 생각이 안나더군요.. 더군다나 아두이노 IDE를 이용해서 LED제어를 하는 수업에서 dev c++ 관련된 질문을 하다니... 이건 반칙 아닌가요. ㅋㅋ. 하지만.. 어쨋든 수업중에 한 질문이고, 아두이노 수업 시간에 라즈베리파이를 물어봐도 답해주고 파이썬 코드를 물어봐도 답해주고, 라즈베리파이 수업시간에 아두이노를 물어봐도 답을 해주.......

파이썬 Flask에서 DB 연결 및 사용 [내부링크]

이번 포스팅에서는 Flask에서 DB를 연결하여 사용하는 방법에 대해 알아보겠습니다. 연결할 DB는 MariaDB를 사용하였습니다.기존에 라즈베리파이에 maria DB 설치 방법 및 mariaDB 사용을 위한 파이썬 패키지 설치 방법은 여기를 참고해 주시기 바랍니다. 지난 라즈베리파이에서 Flask를 이용한 SSO 로그인 구현해보기 포스팅에서 로그인 체크를 할때 DB 연결을 하지 않고 텍스트로 ID와 패스워드를 확인했었습니다. 실제로 이렇게 웹페이지를 구현하는 경우는 없겠죠. 여기서는 해당 포스팅에서 소개한 소스를 수정하여 DB에서 사용자 정보를 가져와서 ID와 패스워드가 일치하면 다음 화면으로 넘어가고 그렇지 않으면 오류 페이지를 띄우도록 프.......

라즈베리파이 카메라 촬영 영상 메일 전송 & SMS 전송하기-part1(파어썬SMS전송, 첨부파일메일전송,카메라 영상저장) [내부링크]

지난 2번의 포스팅에서 진동센서에 특정횟수 이상 진동이 감지되면 경고메일을 전송하는 내용과 휴대폰에서 소켓통신으로 전송된 문자열에 따라 라즈베리파이가 동작하도록 하는 내용을 포스팅 했었습니다. 이번 포스팅에서는 앞의 2가지 주제를 혼합하여 다음과 같은 기능을 구현하는 내용을 포스팅하려고 합니다. 다음의 내용은 블로그에 해당 기능 구현에 관련된 질문을 주신분이 계셔서 구현해 보게 되었답니다. 1. 기능구현 내역 - 진동측정하여 주어진 기간동안 임계치를 넘어가는 진동이 감지되었을때는 현재 상황을 녹화하여 이메일로 영상파일 전송하고 SMS발송 - 스마프폰을 이용하여 save 명령을 전송하면 현재 상황을 녹화하여 메일.......

NAT(Network Address Translation) & 포트포워딩 알아보기.(라즈베리파이, 아두이노 외부에서 접속하기) [내부링크]

얼마전 TCP 소켓통신을 이용하여 라즈베리파이를 제어하는 포스팅을 했었습니다.(TCP 소켓통신으로 스마트폰에서 라즈베리파이 제어하기 ). 해당 포스팅에서는 내부IP(사설IP)를 이용하여 라즈베리파이에 접속하여 정상동작 되는 것을 확인하였습니다. 음 그렇다면 외부에서 사무실이나 집안에 있는 라즈베리파이에 접속 및 제어하려면 어떻게 해야 할까요? 라즈베리파이에서 ifconfig 명령으로 나오는 IP를 사용해서 외부에서 접속이 가능할까요?.. 만약 공인IP를 할당받아 사용하는 경우라면 해당 IP를 이용하여 외부애서도 접속가능합니다. 그러나 일반적인 경우 사무실에서나 가정에서 보통은 공인 IP하나에 여러개의 사설IP를 연결하여 사용.......

라즈베리파이 카메라 촬영 영상 메일 전송 & SMS 전송하기-part2 [내부링크]

지난 포스팅에서 다음과 같은 기능을 구현하기 위해 필요한 것들에 대해 알아보았습니다. 지난 포스팅에서 서술하였던 구현 기능은 다음과 같았습니다.1. 구현기능 - 진동측정하여 주어진 기간동안 임계치를 넘어가는 진동이 감지되었을때는 현재 상황을 녹화하여 이메일로 영상파일 전송하고 SMS발송 - 스마프폰을 이용하여 save 명령을 전송하면 현재 상황을 녹화하여 메일로 발송이제 위 기능을 구현하기 위하여 고려해야 할것들은 어떤 것들이 있는지 알아보겠습니다. ① 독립된 수행동작 필요 위의 기능을 하나의 프로그램에서 구현한다고 했을때 프로그램은 스마트폰에서 TCP 소켓을 통해 문자가 전송되었는지를 체크하는 영역과 지속.......

라즈베리파이에 방화벽 설정하기(feat. ufw) [내부링크]

지난 포스팅에서 라즈베리파이에 웹서버를 설치하는 방법을 포스팅 했었습니다.(라즈베리파이에 웹서버 구축하기(feat. Nginx)). 웹페이지를 구현하여 라즈베리파이에서 웹서비스를 띄우고 포트 포워딩 설정을 통해 외부에서 라즈베리파이에 접속할 수 있도록 하면, 라즈베리파이를 외부에서 접속할 수 있습니다. 내부망(폐쇄망)에서만 라즈베리파이를 사용하였다면 보안 부분은 아무래도 신경을 덜 썼겠지만 외부에서 접속 가능하도록 한다면 보안 부분도 신경을 써야 합니다. 그래서 이번 포스팅에서는 라즈베리파이에서 방화벽을 설정하는 방법에 대해 포스팅할까 합니다. 1. 방화벽이란? 방화벽(firewall)이라는 말은 많이 들어보셨을 껍니다.......

파이썬 데코레이터(decorator) 알아보기 [내부링크]

이번 포스팅에서는 파이썬 데코레이터 기능에 대해 알아보겠습니다. 1.decorator 기능 decorator의 사전적 의미는 꾸며주는 사람, 장식가 뭐 이런정도 될것 같은데요. 파이썬에서는 보통 함수이름 앞에 붙여서 사용되며, 기존의 함수의 기능을 수정하지 않고 추가적인 기능을 확장해 주는 역할을 해줍니다. 음.. 의미가 확 와닿지는 않는듯 하네요.. 예시들을 보시면 조금 이해가 되실듯 합니다. 데코레이터는 주로 프로그램의 로깅정보를 남기거나 디버깅을 할때, 공통적인 전처리기능이 필요한 함수들(웹페이지 호출같은)을 호출할때 많이 사용됩니다. 2. decorator 사용예 decorator 형식을 보기에 앞서 파이썬에서 함수(function)은 일급.......

라즈베리파이에서 웹페이지 구축하기-첫번째.Flask알아보기 [내부링크]

지난 포스팅에서 라즈베리파이에 웹서버를 설치 및 방화벽을 설치하는 방법에 대해 알아보았습니다. 이번 포스팅부터 라즈베리파이에서 수집된 센서값을 모니터링 할 수 있는 웹페이지와 웹페이지를 통해 전달된 데이터로 라즈베리파이에 연결된 액츄에이터들을 제어하는 웹페이지를 구현하는 방법에 대해 알아볼까 합니다. 웹페이지 구현을 위한 프레임워크는 Flask를 이용해서 구현해 보려고 합니다. 첫번째 포스팅에서는 Flask 설치, 가상환경 구성 및 간단한 페이지 기동까지 해보겠습니다.1. Flask란 Flask는 파이썬 기반의 마이크로 웹 어플리케이션 프레임워크입니다. 음.. 말이 참 깁니다. 웹 어플리케이션 프레임워크도 말이 긴데 거기.......

얼굴인식을 이용한 출퇴근 관리 시스템 -part1(OpenCV를 이용한 이미지 다루기-첫번째:이미지 특징 추출하기-ORB, FAST, SIFT, Harris Corner) [내부링크]

지난번 포스팅에서 얼굴인식을 이용한 출퇴근 관리 시스템 프로젝트의 요구사항을 정의하고 프로젝트에 핵심적으로 사용될 소프트웨어인 OpcnCV를 설치했었습니다. 이번포스팅에서는 OpenCV를 이용해서 이미지 데이터를 읽어오는 방법과 두개의 이미지를 비교하여 유사도를 계산하는 프로그램을 구현해 보겠습니다. 1. 이미지 read & write 지난번 포스팅에 OpenCV를 설치하고나서 정작 OpenCV가 제대로 설치되었는지 테스트는 안해봤었는데요.. 아래의 프로그램을 실행해 보면 프로그램이 제대로 설치되었는데 확인할 수 있습니다. 위의 프로그램을 실행하여 다음과 같이 gray계열의 이미지 파일이 뜨면 정상입니다. 이미지는 키보드가 눌.......

라즈베리파이에서 심박센서(Pulse Sensor)사용하기 & 파이썬으로 실시간 그래프 그리기(feat. matplotlib animation) [내부링크]

이번 포스팅에서는 라즈베리파이에 심박센서(pulse sensor)를 연결해서 사용하는 법을 포스팅하려고 합니다. 심박센서는 아래 사진과 같이 생긴 센서가 심장박동센서입니다.해당센서는 LED에서 손가락으로 빛을 쏘고 조도센서에서 반사되어 나오는 빛의 양을 측정하여 심박을 측정하는 센서입니다. 빛을 쏘고 조도센서에서 반사되는 값을 받아서 어떻게 심박을 측정할까요?. 원리는 이렇습니다. LED에서는 지속적으로 빛을 쏘아주고 조도센서에서는 모세혈관에 반사되어 돌아오는 빛의 양을 측정하게 되는데 이 값이 혈류량이 많아지면 빛의 반사량이 줄고 혈류량이 적으면 빛의 반사량이 늘어나게 됩니다. 혈류량은 심장박동에 따라 변하는 원리.......

얼굴인식을 이용한 출퇴근 관리 시스템 -part7(OpenCV를 이용하여 얼굴이미지 유사도 비교하기.LBPHFaceRecognizer) [내부링크]

지난번 포스팅에서는 라즈베리파이 카메라를 이용해 동영상에서 얼굴을 추출하여 해당 이미지를 DB에 저...

얼굴인식을 이용한 출퇴근 관리 시스템 -part3(이미지 비교하기-FLANN Matcher) [내부링크]

이번 포스팅에서는 이미지 비교를 하기위해 OpenCV에서 제공하는 Feature Mathing 기법중에 하나인 FLANN based Matcher에 대해 알아보겠습니다. FLANN은 Fast Library for Approximate Nearest Neighbors 의 약자입니다. 고차원의 대용량의 데이터셋 상에서 가장 유사한 특징점을 찾는데 적합한 알고리즘이라고 합니다. 음... 말이 참 어렵네요. OpenCV에서 FLANN 매칭을 사용하기 위해서는 2개의 dictionary자료형 파라미터를 지정해 주어야 합니다. 음.. dictionary 자료형에 대해 간략하게 말씀드리면.. 파이썬에서 제공하는 자료형입니다. C언어를 아시는 분이라면 구조체를 연상하시면 도움이 좀 되실듯 하네요. 물론 C언어의 구조체보다는.......

라즈베리파이에서 PWM 제어 드라이버(PCA9685) 사용하기 [내부링크]

이번포스팅에서는 PWM 제어 드라이버인 PCA9685를 사용하는 방법에 대해 알아보겠습니다.1. PCA9685(16채널 PWM 제어 드라이버 모듈) - 센서 소개 . PCA9685 모듈은 LED, 서보모터와 같은 출력센서들을 최대 16개 까지 연결하여 PWM을 제어할 수 있게 해주는 모듈입니다. 아두이노 우노,나노의 경우 PWM핀이 6개이고 라즈베리파이도 GPIO핀의 제한이 있기 때문에 PWM 제어가 필요한 센서들이 많을때 사용하기에 적합한 모듈입니다. 이외에도 해당 모듈은 라즈베리파이에서 더 유용하게 활용될수 있습니다. 라즈베리파이의 5V핀의 전류 출력값은 아두이노의 그것과 비교해서 전류량이 작아 서보모터를 3개 이상 가동하면 전류가 약해 서보모터의 헌.......

라즈베리파이에서 블루투스 스피커 사용하기 [내부링크]

이번 포스팅에서는 라즈베리파이에서 블루투스 스피커를 사용하는 방법을 알아보겠습니다. 블루투스 사용하는 방법은 이전 포스팅에서 설명한적이 있습니다. 참고하실 분들은 요기를 참고하시기 바랍니다. 이번 포스팅에서는 블루투스를 위한 준비는 완료됬다는 가정하에 스피커를 페어링하는 부분부터 설명하려고 합니다.1. 블루투스 데몬 확인 후 bluetoothctl 로 접속하기 . 먼저 명령어 창에서 ps -ef | grep blue | grep -v grep 하여 블루투스 데몬이 떠 있는지 확인합니다. . 데몬이 떠 있으면 sudo bluetoothctl 명령으로 블루투스 명령 인터페이스를 실행시킵니다. 인터페이스에서 show 명령을 통하여 현재 상태를 조회하여 정상 확인 후.......

아두이노에서 0.96인치 OLED 모듈 사용하기 [내부링크]

이번 포스팅에서는 출력용으로 많이 사용되는 0.96인치 OLED를 아두이노에서 사용해보도록 하겠습니다. 1. 센서 소개 - 많이들 아시다시피 OLED는 유기화합물질로 이루어진 픽셀들이 독자적으로 빛을 방출하므로 백라이트가 필요 없습니다. 그렇기 때문에 얇게 만들 수 있죠. 제 블로그에도 소개하였던 1602LCD와 이번에 소개할 0.96인치 OLED를 비교해보면 두께의 차이를 확실히 느끼실수 있으실 껍니다. 따라서 해당 센서는 구조물의 공간이 한정적인 상황에서 디스플레이 기능을 넣고자 할때 유용하게 사용하실 수 있으실꺼라 생각됩니다.- 형태 및 핀맵 이번 포스팅에서는 I2C통신을 사용하여 데이터를 주고 받는 OLED모듈을 가지고 설명을 진.......

노래 부르며 춤추는 인형 만들어 보기(feat 아두이노 나노, 서보모터) [내부링크]

이번 포스팅에서는 아두이노 나노와 서보모터, 수동부저 모듈을 이용하여 춤추는 인형을 구현해보려고 합니다. 소개되는 제품은 수업교재로 활용하기 위하여 제작한 제품입니다. 1. 구현내역 - 마리오네트 인형의 4개의 줄을 서보모터에 연결하여 수동부저 모듈에서 연주되는 음악에 맞춰 변경되는 서보모터 각도에 따라 움직이는 인형 구현2. 필요부품 - 아두이노 나노, 나노 IO 확장보드, 서보모터 *4, 수동부저 모듈, 마리오네트 인형, 인형지지대(3D 프린터 출력물, 아크릴 컷팅)3. 구현 모습 4, 구현로직 인형을 움직이는 줄(끈)을 서보모터와 어떻게 연결하고 인형을 고정시켜 지지하는 방법만 설계완료하면 서보모터를 이용하여 춤추는 인.......

얼굴인식을 이용한 출퇴근 관리 시스템 -part4(라즈베리파이 카메라 사용하기) [내부링크]

OpenCV를 이용하여 이미지를 다루는 방법들에 대해서 몇번의 포스팅을 했으므로 이번에는 라즈베리파이에서 카메라를 사용하는 방법에 대해 알아보겠습니다.뭐 사실 알아볼것도 없기는 합니다. 그냥 카메라 꼽고 설정만 한번 바꿔 주면 쉽게 사용할 수 있습니다. 제가 사용한 카메라는 라즈베리파이용 카메라 5MP 모듈 이었습니다. 8MP 모듈보다는 해상도는 떨어지는 모듈입니다.먼저 라즈베리파이 GUI에 접속하여 Preference메뉴의 Raspiberry pi configuration 메뉴에 접속합니다.새로 뜨는 configuration화면에서 interfaces탭에 맨 윗줄에 있는 Camera를 Enabled로 변경한 후 리부팅을 하면 끝입니다.라즈베리파이가 리부팅을 한 후 카메라가.......

얼굴인식을 이용한 출퇴근 관리 시스템 -part6(Tinker &OpenCV를 이용한 촬영영상 다루기) [내부링크]

이번 포스팅에서는 Tinker 모듈을 이용하여 라즈베리파이카메라로 촬영된 영상을 잘라내서 얼굴이미지를 추출하여 DB에 저장하는 GUI화면을 구현 보겠습니다.구현할 GUI내역은 다음과 같습니다.- 윈도우 화면을 둘로 나누어 라즈베리파이 카메라로 찍히는 영상을 왼쪽 화면에 표시- 영상중에 얼굴이미지가 감지되면 오른쪽의 화면에 표시하고 오른쪽화면 하단부에 저장버튼(Save)이 있어 이 버튼을 누르면 오른쪽 얼굴 이미지를 DB에 저장하고 만약 캡쳐된 얼굴이미지가 마음에 들지 않을때는 Don't save를 눌러서 다시 얼굴 이미지 캡쳐함. DB저장시에는 사원ID를 반드시 넣어야 이미지를 저장 할수 있도록 수현.이 GUI화면은 출퇴근 관리.......

TCP 소켓통신으로 스마트폰에서 라즈베리파이 제어하기 [내부링크]

이번 포스팅에서는 TCP 소켓통신을 이용하여 스마트폰에서 라즈베리파이를 제어해보도록 하겠습니다. 라...

센서 수집 데이터 메일로 보내기(feat. 라즈베리파이) [내부링크]

이번 포스팅에서는 라즈베리파이에서 수집된 센서데이터를 메일로 보내는 방법에 대해 포스팅해보겠습니다....

얼굴인식을 이용한 출퇴근 관리 시스템 -part8(출퇴근 시간 DB에 저장하기) [내부링크]

이번 포스팅으로 얼굴인식을 이용한 출퇴근 관리 시스템을 마무리 하려고 합니다.사실 지난포스팅까지 하여...

SWAP 영역 알아보기 [내부링크]

라즈베리파이에 openCV를 설치하다보니 라즈베리파이의 swap 영역을 변경시켜줘야 할 일이 생기더군요. 해당 포스팅이 너무 길어져서 swap 공간에 대한 자세한 설명을 같이 넣기 힘들것 같아 별도로 swap 영역에 대해 포스팅하려고 합니다.라즈베리파이에서 openCV 설치 방법이 궁금하신 분들은 요기를 참고하세요프로그램을 실행시키면 프로그램이 주기억장치라고 불리는 메인 메모리(RAM)에 로딩되어 실행되면서 실행중인 프로그램인 프로세스가 됩니다. 메모리는 한정된 자원이므로 메모리에 로딩되는 프로그램이 많거나 덩치가 큰 프로그램이 메모리에 로드되다 보면 메모리가 부족해 질 수 있습니다. 컴퓨터 운영체제에서 swap 영역이란 메.......

파이썬을 이용하여 오디오파일 분석 및 재생하기(feat. 라즈베리파이) [내부링크]

이번 포스팅에서는 파이썬을 이용하여 오디오 파일을 분석하고 재생하는 내용을 다뤄볼까 합니다. 프로그램 실행은 라즈베리파이와 블루투스 스피커를 활용하였습니다. 라즈베리파이에서 블루투스 스피커 사용방법은 이전 포스팅을 참고하여 주시기 바랍니다. 꼭 블루투스 스피커를 사용안하셔도 됩니다. 저는 라즈베리파이에 유선으로 연결할 스피커가 없어서 블루투스 스피커를 사용하였습니다. 오디오 파일을 분석하기 위해서는 라이브러리를 몇개 설치하였습니다. 제가 사용한 라이브러리는 librosa 라이브러리 입니다. 이 라이브러리는 오디오. 음악 분석을 위한 라이브러리 입니다.업데이트를 수행한 후에 sudo apt-get updatesudo apt-g.......

[아두이노강좌]아두이노에서 MultiTasking 수행하기-Using FreeRTOS [내부링크]

이번 포스팅에서는 freeRTOS를 이용하여 아두이노를 제어하는 법을 포스팅하도록 하겠습니다. RTOS란 Real Time Operation System의 약자입니다. RTOS에 대해 좀더 알고 싶으시면 요기를 참고해 주시기 바랍니다. 본래 아두이노는 Non-OS 임베디드 보드입니다. 그래서 multi-tasking을 지원하지 않습니다. 물론 interrupt를 이용하여 수행흐름을 바꾸어 줄 수는 있지만 어쨌든 이 Interrupt도 ISR에 등록된 수행내역이 종료되어야 다음 동작을 수행하게 되므로 MultiTasking이라 표현하기는 힘들 것 같습니다.아두이노 인터럽트가 궁금하시면 요기를 참고하여 주시기 바랍니다. FreeRTOS는 임베디드 디바이스를 위한 실시간 운영체제로 ARM, AVR,.......

얼굴인식을 이용한 출퇴근 관리 시스템 -part2(이미지 비교하기-Brute-Force Matcher) [내부링크]

지난 포스팅에서는 OpenCV를 이용하여 이미지의 특징을 추출하는 방법들에 대해서 알아봤는데요. 이번 포스팅에서는 그렇게 추출된 이미지 특징을 이용하여 두 이미지를 비교하는 방법에 대해 알아보겠습니다. OpenCV에서 제공하는 이미지특징 매칭 방법(Feature Matching)은 2가지가 있습니다. Brute-Force Matcher과 FLANN based Matcher 입니다. 이번 포스팅에서 기술한 내용은 Brute-Force Matcher로 이미지 비교하는 예시와 이미지 유사성 측정값을 저장하는 descriptor match 객체인 DMatch의 속성값인 distance를 이용하여 유사도를 정량적으로 측정할 수 있는지를 알아보겠습니다. 1. Brute-Force Matcher - Brute-Force Matcher의 알고.......

[아두이노강좌]아두이노 웹 에디터 사용하기 [내부링크]

이번 포스팅에서는 아두이노 통합개발환경(IDE)를 별도로 설치하지 않고 인터넷에 접속하여 웹 에디터로...

라즈베리파이에서 USB 마이크(mic) 사용하기(feat. 64채널 네오픽셀) [내부링크]

이번 포스팅에서는 라즈베리파이에서 USB 마이크를 사용하는 방법을 알아보겠습니다.먼저 USB 마이크...

라즈베리파이 I2C 통신을 이용한 LCD 쓰기 [내부링크]

이번 포스팅에서는 I2C 통신을 이용하여 출력을 해보려고 한다. 1. I2C 통신 - 이전 포스팅에서도 한번...

얼굴인식을 이용한 출퇴근 관리 시스템 -part5(얼굴추출-face detection & 이미지 데이터 DB저장) [내부링크]

이번 포스팅에서는 이미지내에서 얼굴형상을 추출하고 이를 데이터베이스에 저장하는 것까지 해보겠습니다. 1. 이미지내에서 얼굴을 인식하기 . openCV를 이용하여 얼굴인식을 하기 위해 사용할 알고리즘은 Haar Cascades 알고리즘입니다. 이 알고리즘은 이미지나 영상에서 사물을 찾아내는데 사용되는 머신러닝 기반 알고리즘 입니다. 알고리즘을 그냥 단순화 시켜서 말씀드리면 분석하고자 하는 이미지나 영상을 수많은 사각형으로 구분하여 아래와 같은 haar feature의 특성을 지니고 있는 사각형들을 찾아냅니다. 이렇게 찾아낸 특성들을 가지고 다른 학습데이터 들에게 계속 반복하여 적용하여 각 특성들의 임계치를 구해서 찾고자 하는 사.......

휴대용 공기청정기 구현(feat. 아두이노 나노) [내부링크]

이번 포스팅에서는 1인 메이커분들이 많이들 구현하곤 하시는 공기청정기를 만들어 볼까 합니다. 구글에서 ...

RTOS(Real Time Operation System) 알아보기 [내부링크]

1. 정의 RTOS는 Real Time Operation System의 약자로 말그대로 실시간 운영체제 입니다. Real Time이라는 이름에서 유추할 수 있듯이 시스템에서 발생한 이벤트에 대한 처리완료 시간이 미리 정해진 시간내에 완료되어야 하는 OS(운영체제)입니다. 주로 임베디드 시스템에 탑재되는 운영체제 입니다. 2. 일반적인 OS(GPOS)와 RTOS의 차이 그럼 RTOS가 우리가 늘 접하는 OS(window, 리눅스 등등)와는 어떤 차이가 있을까요. window, 리눅스등의 OS를 GPOS(Genenal-Purpose OS)라고도 정의될 수 있는데 이러한 OS특징은 다양한 어플리케이션이 올라가고 수행 될 수 있습니다. 영화시청, 게임, 인터넷등등등 PC에서 수행할 수 있는 어플리케이션.......

hamming distance 알아보기 [내부링크]

얼마전 이미지 비교를 위한 FLANN Matcher에 대해 포스팅 할때 이미지를 매칭 시키는 기법중에 hamming distance를 이용하여 두 이미지의 특정성보를 저장한 2진 데이터 매칭시키는 방법에 대해 언급한적이 있습니다. FLANN Matcher 가 궁금하시면 요기를 참고해 주시기 바랍니다. 이번 포스팅에서는 해당 포스팅에서 잠깐 언급되었던 hamming distance에 대해 알아보겠습니다.1. hamming distance란? 해밍 거리란 두개의 문자열에서 같은 위치에 있는 서로 다른 문자 쌍의 개수를 의미합니다. 흔히 많이 사용되는것이 같은 길이의 2진수 사이에서 비트 값이 같지 않은 자리의 갯수입니다. 간단히 예를 들어 볼까요. 아래의 그림에서 2개의 8비트.......

"C언어로 제어하는 아두이노" 책이 완성되었답니다.. [내부링크]

뭔가 그냥 제 일상을 끄적여 보고,, 일종의 홍보(?)도 좀 해보려고 카테고리를 하나 더 추가했습니다. 블로그에 점점 카테고리가 늘어나네요..."소소한 일상" 카테고리에 첫번째 포스팅할 내역은.. 바로 3개월에 걸쳐 쓴 아두이노 관련 책에 관한 이야기 입니다. 블로그에 포스팅했던 내역들, 수업을 위해 만들었던 교안들을 3개월에 걸쳐 하루에 세시간 이상 시간을 투자하여 책을 완성하였습니다. 블로그에 아두이노 강좌를 포스팅할때 책 만드는걸 염두하고 구성하긴 했었지만 막상 책으로 엮으려니까 이것 저것 수정하고 보강해야 할 부분이 많더군요. 1차본은 지난 2월 중순에 완료하여 초벌을 인쇄했는데.. 문맥이 어설픈 것들, .......

재생되는 음악의 주파수에 따라 반응하는 LED 매트릭스 구현 [내부링크]

지난번 포스팅에서 파이썬을 이용하여 오디오파일의 진폭을 그려주는 프로그램을 해보았습니다. 이번 포스팅에서는 재생되는 음악파일의 주파수에 따라 반응하는 LED 매트릭스를 구현해 보겠습니다. 구현 내용은 다음과 같습니다. - 음악파일을 재생하면서 연주되는 음악의 주파수 값을 가지고와서 이를 LED 메트릭스로 실시간 표현하는 프로그램 구현지난번 포스팅에서는 librosa 라이브러리를 이용하여 wav 파일을 분석하였습니다. 이번 프로그램에서도 해당 라이브러리를 사용할 수 있을까 테스트 해보니 librosa 라이브러리는 음악을 재생하면서 실시간으로 분석하기에는 조금 무거운것 같습니다. 스트림으로 잘라서 해도 연속적인 재생이 안.......

TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple' [내부링크]

보통 print 문을 이용하여 서식데이터를 출력할때 많이 접하는 오류입니다. print문의 괄호의 위치가 잘못됬거나 괄호로 묶어줘야 하는데 묶어주지 않았을때 많이 발생합니다. 아래의 예시처럼요.>>> a=3>>> b=4>>> print ("%d is %d")%(a,b)Traceback (most recent call last):File "<stdin>", line 1, in <module>TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple'위의 print 문을 print("%d is %d"%(a,b)) 이렇게 바꾸어 주어 오류를 해결합니다.

[아두이노강좌]아두이노 수행 흐름제어하기-step3-Timer 인터럽트 사용하기 [내부링크]

이번 포스팅에서는 아두이노에서 사용되는 티이머 인터럽트에 대해 알아보고 이를 이용하여 프로그램의 수행 흐름을 제어하는 방법에 대해 알아보겠습니다.Timer 인터럽트 - Timer 인터럽트란 특정주기가 되었을 때 인터럽트를 발생시키도록 하는 인터럽트입니다. 주기적인 작업을 수행할 때 사용되며 아두이노 우노와 나노에서는 Timer0, Timer1, Timer2의 세 개의 Timer가 있습니다. 각 Timer별 사용처와 특징은 다음과 같습니다.이 타이머들의 실행 모드, 주기, Timer 인터럽트 설정등은 TImer 레지스터를 수정하여 설정할 수 있습니다. avr의 레지스터를 직접 다루려면 그에 관한 학습이 필요하며, 여기서는 보다 쉬운 방법으로 라이브러리를.......

로드셀을 이용한 해머게임 만들기(feat. 아두이노 나노) [내부링크]

이번 포스팅에서는 아두이노 나노와 로드셀, 네오픽셀, 1602LCD, 수동부저를 이용하여 탁상용 해머게임을 구현해보려고 합니다. 소개되는 제품 역시 수업교재로 활용하기 위하여 제작한 제품입니다. 1. 구현내역 - 놀이공원의 해머게임의 소형 버전. 해머 망치로 가해지는 압력을 측정하여 힘의 등급을 정하고 그에 따라 LCD, 네오픽셀, 수동부저의 출력값을 달리해서 표시하는 해머게임구현2. 필요부품- 아두이노 나노, 나노 IO 확장보드, 로드셀, HX711증폭기, 네오픽셀 *2, 수동부저, 1602LCD, 해머게임지지대(3D 프린터 출력물, 아크릴 컷팅), 소형망치(3D 프린터 출력물(TPU))3. 구현 모습 4. 구현로직 로드셀은 센서에 가해진 압력을 측정.......

전류측정센서(ACS712) 사용하기(아두이노&라즈베리파이) [내부링크]

이번 포스팅에서는 전류측정센서인 ACS712 센서를 사용해보도록 하겠습니다. 1. 센서 소개- 전류측정센서(ACS712)는 직류 및 교류전류를 측정할 수 있는 센서입니다. - 형태 및 핀맵 . 핀연결은 위의 그림처럼 전류를 측정할 전원선을 연결한 후 VCC,OUT,GND의 순서로 되어 있는 핀을 MCU보드에 연결하면 됩니다.2. 전류값 계산하기 . 해당센서를 찾아보면 5A, 20A, 30A등 측정할 수 있는 전류의 크기별로 구분되어 있습니다. 필요에 맞는 센서를 사용하면 되고, 해당 센서의 사용법을 인터넷에서 찾아보면 전류의 크기를 구하는 공식이 있기는 하지만 여기서는 데이터 시트에 나와 있는 내용을 바탕으로 전류를 구해보도록 하겠습니다.먼저 수집.......

라즈베리파이에서 0.96인치 OLED 모듈 사용하기 [내부링크]

이번 포스팅에서는 라즈베리파이에서 0.96인치 OLED를 사용하는 방법을 알아보도록 하겠습니다. 이전의 포스팅에서 아두이노에서 0.96인치 OLED 사용법을 알아보면서 해당 센서에 대한 간략한 소개는 했었습니다. 센서에 대해 궁금하시면 요기를 참고하시면 될 듯 합니다.여기서 사용하는 모듈은 앞서 포스팅과 마찬가지로 I2C로 통신하는 OLED모듈입니다.1. 라즈베리파이에서 OLED 모듈 사용하기 - 라즈베리파이에서 I2C 통신을 하기 위해서는 먼저 I2C 인터페이스가 활성화 되어 있어야 합니다. 라즈베리파이에서 I2C 통신 인터페이스 활성화 및 I2C 연결 기기 주소 확인방법은 요기를 참고하시기 바랍니다. - OLED를 사용하기 위해서는 라즈베.......

아두이노에서 미세먼지 측정센서(DSM501A) 사용하기 [내부링크]

이번 포스팅에서는 미세먼지 측정센서인 DSM501A 를 아두이누에서 사용해보도록 하겠습니다. 1. 센서 소개 - DSM501A 미세먼지 센서는 샤프에서 제작한 GP2Y1010AU0F와 함께 많이 사용되는 미세먼지 센서 중 하나입니다. 센서의 구조는 아래 그림과 같습니다. 동작 원리를 간단히 설명드리면, 먼지들이 유입되면 히터에 의해 상승기류가 생겨 먼지들이 위쪽으로 올라가게되고 LED의 빛이 이런 먼지들에 의해 산란되어 수신기에 감지되는 것을 이용하여 미세먼지의 양을 측정하는 방식입니다.- 형태 및 핀맵 선서 연결 핀맵은 데이터시트에 있는 회로도를 참고하시면 연결법을 확인하실 수 있습니다. 위의 vout1번은 PM2.5 이상의 미세먼지를 측정.......

SSL(Secure Sockets Layer) 알아보기 [내부링크]

대단한 블로그는 아니지만 그래도 꾸준히 이것 저것 문의를 주시는 분들이 계셔서 IT 용어 알아보기라는 카테고리를 하나 추가하였습니다. 오늘은 그 첫번째 포스팅으로 SSL에 대해 알아볼까 합니다. 제 블로그 포스팅 중 MQTT나 IoT 클라우드 서비스 관련된 포스팅의 문의 사항들 대부분이 데이터 전송 암호화와 관련된 문의였습니다. MQTT는 암호화 통신이 가능한지. 아두이노에서 SSL을 사용할 수 있는지 등등의 문의를 주시는 분들이 계셨는데요..사물인터넷 기기에 대한 보안 취약성은 이미 여러 기사들을 통해 접해보셨을꺼라 생각됩니다. 물론아두이노나 라즈베리파이를 폐쇄망(로컬 네트워크)이나 네트워크 접속이 되지 않는 구성으로 동.......

Raspberry Pi Imager를 이용한 라즈베리파이 OS 설치 [내부링크]

최근 들어서는 라즈베리파이 홈페이지에 접속할 일이 거의 없었던것 같습니다. 작년에 RPi 4B 모델 나온다고 했을때 사양을 좀 보려고 들어갔던것 빼고는 말이죠. 기존에 쓰던 라즈베리파이에 설치된 raspbian이 깨져서 새로 OS를 설치하려고 홈페이지에 방문했더니 Imager라는 설치 툴을 제공하더군요. 3월 초에 새로 오픈한 서비스 인것 같더군요.. 새로운건 또 한번 해봐야 직성이 풀리니.. 한번 해보기로 했습니다. 예전에는 OS를 다운받아서 해당 zip파일을 풀어서 SD메모리에 이미지 복제를 해주는 방식으로 라즈베리파이를 설치 했었는데, 좀 더 편하게 할 수 있기를 기대해보면서 프로그램을 다운받아 설치했습니다. zip파일을 다운받아.......

적외선 센서(라인트레이서 센서, TCRT5000) 사용하기(아두이노&라즈베리파이) [내부링크]

오늘 포스팅할 센서는 라인트레이서 센서로 더 잘알려져 있는 TCRT5000 적외선 센서입니다.- 적외선(라인트레이서)센서 TCRT5000 . TCRT5000 적외선 센서는 적외선을 송신하는 송신부와 적외선을 수신하는 수신부로 구성됩니다. 얼마전에 포스팅했던 적외선 거리측정센서와 구조가 유사하죠?. 차이가 있다면 적외선 거리측정센서는 10cm 이상의 거리를 측정하기 위한 센서이고 TCRT5000 적외선 센서는 25mm 이내의 거리에 있는 물체에서 반사되는 적외선의 양을 체크하는 센서입니다. 적외선도 빛이니까 하얀색은 적외선을 많이 반사하고 검은색은 적외선을 흡수할테니 수신부로 들어오는 빛의 양이 줄겠죠. 이런 원리를 이용해서 흰 바탕의 바닥.......

디지털 진동센서(sw-420) 사용하기(아두이노&라즈베리파이) [내부링크]

오늘 포스팅할 센서는 디지털 진동센서(SW-420) 입니다.- 디지털 진동센서(SW-420) . 진동감지부내에 금속단자가 들어 있어 이 단자가 움직이면 디지털 신호를 발생시키는 센서입니다. 센서를 흔들어 보시면 구슬(?)같은게 굴러가는 소리를 들을 수 있습니다. - 형태, 설정 조절 및 핀맵 . 디지털 센서로 VCC,GND,DO의 순으로 핀이 구성되어 있으며 DO핀을 원하는 디지털핀(아두이노),GPIO핀(라즈베리파이)에 연결하시면 됩니다. . 동작전압 : 3.3V~5V - 사용방법 예시 . 층간 소음측정기를 만들때 진동을 체크하거나 지진감지기 같은 곳에 활용하시면 될 듯 합니다. . 이번 포스팅에서는 5초내에 진동이 20회 이상 감지되면 LED가 켜지도록 하는.......

지문인식센서(FPM10A) 사용하기(아두이노) [내부링크]

이번포스팅에서는 아두이노에서 네오픽셀을 사용하는 방법에 대해 살펴보겠습니다. 라즈베리파이에서 지문인식센서를 사용하는 방법은 요기를 보시고 그외에 지문인식데이터를 데이터베이스에 저장하여 활용한 예는 요기를 참고해 주시기 바랍니다.- 지문인식센서(FPM10A). 광학식 센서로 가시광선에 반사된 지문의 굴곡을 인식하여 지문영상을 획득하는 방식의 센서로 최대 저장할 수 있는 지문 개수는 제조사마다 차이가 있으므로 제품 구매시 확인하시기 바랍니다.. UART통신을 이용하여 데이터 송/수신- 형태및 핀맵. 총 6가닥의 연결선중 왼쪽의 2가닥은 미사용 연결선이며 세번째부터 VCC,TX,RX,GND의 순으로 되어있습니다.- 지문인식센서.......

아두이노 금고만들기(feat 지문인식센서&아두이노 나노) [내부링크]

이번 포스팅에서는 지문인식센서와 아두이노 나노를 이용한 금고 구현 방법에 대해 알아보겠습니다. 제가 구현한 금고의 구현 목표, 구현을 위한 구성품은 다음과 같습니다.1. 목표시스템 . 등록된 지문에 대하여만 문이 열리는 금고 . 금고 문을 닫으면 금고문이 자동으로 잠긴다. . 등록된 지문이 아니면 사이렌이 울린다. . 지문 센서가 인식이 안되거나 통신이 안되면 자동으로 금고개방 . 배터리가 방전되면 사이렌을 울리고 자동으로 금고개방 . 목표시스템 구현 이미지 2. 금고 제작을 위한 구성품 . 아두이노 나노, 아두이노 나노 IO확장쉴드, 지문인식센서(FPM10A) 조도센서 모듈, 수동부저, 서보모터(SG90), 금고부품(금고손잡이, 금고.......

[아두이노강좌]아두이노 동작흐름제어하기-step1-아두이노 리셋하기 [내부링크]

이번 강좌부터는 아두이노의 동작흐름을 제어하는 방법에 대해 알아보겠습니다. 그 첫번째 포스팅으로 아두이노를 프로그램적으로 리셋하는 방법에 대해 알아보겠습니다. 아두이노를 사용하다보면 주변센서와 통신이 잘 안되거나 아두이노의 행업현상이 발생하는 경우가 종종 발생합니다. 이럴때 리셋을 해주면 정상적으로 수행되는 경우가 있지요. 이러한 리셋을 아두이노의 리셋버튼이 아니라 소트프웨어 적으로 리셋을 하는 방법에 대해 알아보겠습니다. 1. reset핀을 이용하여 리셋하기 아두이노의 reset핀을 디지털핀에 연결하여 디지털 신호를 이용하여 아두이노를 리셋하는 방법입니다. reset핀에 LOW펄스가 지속되면 MCU는 리셋을 수행합.......

DC모터드라이버(L9110S) 사용하기(아두이노&라즈베리파이) [내부링크]

이번 포스팅에서는 DC모터 드라이버인 L9110S를 사용해보도록 하겠습니다. 1. 센서 소개 - L9110S 모터드라이버 . L9110S 모터드라이버는 모터를 2개 연결할 수 있는 2채널 소형 모터드라이버입니다. 조작이 쉬워서 아두이노 자동차, 스마트화분 등등 DC모터를 이용하여 구동하는 기기를 구현하려는 초심자 분들이 사용하시기에 적당한 드라이버라고 생각 됩니다. . 2개의 독립된 모터 드라이버 칩이 있으며 동작 전압은 2.5V~20V 까지 사용할 수 있으며 각각의 모터드라이버는 800mA의 전류를 공급할 수 있습니다. - 형태 및 핀맵 . 총 6개의 핀이 있으며 핀 구성은 모터의 회전 방향을 조절 할 수 있는 핀 2개*2와 GND, VCC 핀이 있습니다 . 사.......

[아두이노강좌]아두이노 수행 흐름제어하기-step2-인터럽트의 정의 [내부링크]

이번 포스팅에서는 인터럽트를 이용하여 아두이노에서 수행되고 있는 프로그램의 수행 흐름을 제어하는 방법에 대해 알아보겠습니다.4.2 아두이노 수행 흐름 제어하기4.2.1 인터럽트 정의- 인터럽트란 내부 혹은 외부요인에 의해서 현재 CPU에서 수행되고 있는 작업을 중지시키고 발생된 인터럽트 처리를 위해 사전에 정의된 작업을 수행하도록 제어권을 넘기는 것을 말합니다. 결국 인터럽트를 발생시키면 CPU로부터 작업우선권을 가지고 올 수 있게 됩니다. - 인터럽트 관련 용어 . IRQ(Interrupt ReQuest) : 인터럽트를 요청하는 신호 . ISR(Interrupt Service Rutine): 인터럽트가 발생했을 때 수행되는 일련의 과정 . Interrupt Vector Tabl.......

아두이노를 이용한 All-in-One 자동차 만들기(feat. 라인트레이서 센서, 블루투스, 초음파센서) [내부링크]

이번 포스팅에서는 자율주행도 되고 무선조정도되고 라인트레이서도 되는 All-in-One 아두이노 자동차를 구현해 볼까 합니다. 지난번에 TCRT5000센서(라인트레이서센서)에 대해 포스팅한적이 있는데 라인트레이서 자동차 구현은 어떻게 해야 하냐고 댓글달거나 쪽지 주시는 분들이 꽤 있으시더라구요. 마침 동아리 수업교구로 다양한 기능을 수행할 수 있는 자동차를 사용하려고 계획하던 참이어서 만들어 보았습니다.- 구현 모습- 구성품목 . 아두이노 나노, 나노IO확장보드, 360도 연속회전 서보모터 2개, 8*8 도트매트릭스, 라인트레이서모듈 2개, 초음파센서, 블루투스모듈, 수동부저, 자동차프레임, 바퀴, 배터리, 그외 연결부품.... - 구현.......

서로 통신하는 크리스마스 트리 무드등 만들어보기(feat 네오픽셀, 블루투스) [내부링크]

날이 엄청 추워졌네요.. 크리스마스가 성큼 다가왔습니다. 뭐.. 이제는 크리스마스가 기다려지거나 하는건 아니지만 그래도 시즌이 시즌이니 만큼 서로 통신하는 크리스마스트리 무드등을 구현해봤습니다. 프레임은 모두 3D 프린터로 출력하고 네오픽셀, 블루투스, 수동부저, 아두이노 나노 보드를 이용하여 제작하였습니다.1. 구현내역 . 그냥 네오픽셀과 블루투스 통신을 해서 무드등을 만드는건 라즈베리파이로 예시를 들은 포스팅도 있고 같은 내용의 포스팅을 올리는 것은 큰 의미가 없을것 같아서 2개의 크리스마트트리 무드등끼리 서로 통신하면서 점등색깔을 바꾸고 캐롤을 연주하도록 구현해 보았습니다.2. 필요 부품 내역 . 아두이노 나.......

아두이노, 라즈베리파이에서 로드셀 사용하기 [내부링크]

이번포스팅에서는 아두이노와 라즈베리파이에서 로드셀을 사용하는 방법에 대해 알아보겠습니다.1. 로드셀이란? 로드셀은 무게, 혹은 압력을 측정할때 사용되는 소자로 압력이 가해지면 물체의 변형이 일어나는 현상을 이용하여 변형이 일어날때 저항이 발생하는 부품(strain gauge)으로 만들어집니다. 로드셀로 측정되는 저항값은 매우 작으므로 로드셀을 사용하려면 해당 저항을 증폭시켜주는 증폭기가 필요합니다.2. 로드셀을 이용한 저울 만들기 - 사용부품 . 로드셀 10kg, 증폭기(hx711), 로드셀장착용 원판 아크릴, 볼트, 받침대 . 로드셀 사진 - 로드셀을 사용하기 위해서는 앞에서 설명 드렸듯이 압력이 가해지면서 발생하는 변형의 정도.......

[아두이노강좌]아두이노를 이용하여 통신하기-step4-ESP01을 이용한 wifi통신-첫번째:채팅프로그램만들기 [내부링크]

이번포스팅부터는 ESP-01모듈 및 ESP-01 아답터를 이용하여 TCP/IP기반의 wifi 통신에 대해 알아보겠습니다.3.2.1 ESP-01을 이용한 wifi통신 - 근거리 무선통신에 대해 알아봤으므로 wifi모듈을 이용하여 TCP/IP기반의 네트워크 통신에 대해 알아보겠습니다. - TCP/IP프로토콜은 현재 우리가 사용하고 있는 다양한 인터넷 통신기술의 기반이 되는 통신프로토콜입니다. 우리가 흔히 쓰는 HTTP,EMAIL,SSH,WEBSOCKET등과 같은 프로토콜들이 모두 TCP/IP기반위에서 수행됩니다. - 이번 포스팅에서 사용할 wifi 모듈은 ESP-01입니다. 해당 모듈에 대한 소개 및 초기 설정방법은 제 블로그의 요기를 참고하시면 확인하실 수 있습니다. - 앞서 말씀드.......

화염감지센서 사용하기(아두이노&라즈베리파이) [내부링크]

이번 포스팅에서는 화염감지센서에 대해 살펴보겠습니다. - 화염감지 센서 . 화염(불꽃)감지센서는 적외선 LED를 이용하여 화염이 났을때 발생하는 적외선 파장의 범위를 기준으로 화염발생 여부를 측정하는 센서. , 사용전압 : 3.3V ~ 5V . 형태 및 핀맵 핀배열은 DO(Digital Out), GND,VCC의 순으로 되어 있습니다. 디지털, 아날로그 신호를 모두 출력하는 센서도 있습니다. 이경우는 AO핀이 하나 더 있습니다.- 아두이노에서 사용법 . 단순히 센서에서 출력해주는 값을 디지털입력 값으로 받으면 되므로 별도의 라이브러리 설치는 필요 없고 pinMode를 INPUT으로 설정후 digitalRead를 해주면 됩니다. 화염이 감지되면 0 그렇지 않으면 1을.......

가스감지센서(MQ2) 사용하기(아두이노&라즈베리파이) [내부링크]

이번포스팅에서는 가스감지센서에 대해 살펴보겠습니다.- 가스감지센서(MQ2) . LPG, 부탄가스, 프로판가스, 메탄가스, 알콜, 수소가스, 연기 등의 가연성 가스를 감지 할 수 있는 센서입니다. . 가연성 가스가 센서의 표면과 접촉할때 산화하는 과정에서 열이 발생하고 이에 따라 온도가 증가하는 것을 이용하여 감지하는 방식입니다. 센서 내부에 가스 감지를 위한 전열히터가 들어있기 때문에 센서자체가 약간 뜨겁습니다. 너무 놀라지 않으시길... . 사용전압 5V . 형태 및 핀맵 VCC,GND,DO(Digital Out),AO(Analog Out) 이렇게 4개의 핀이 있습니다. 디지털 신호값을 원하실경우 DO에 아날로그 신호값을 사용하려면 AO에 연결하면 됩니다.- 아.......

[아두이노강좌]아두이노를 이용하여 통신하기-step5-ESP01을 이용한 wifi통신-두번째:아두이노 웹서버 만들기 [내부링크]

3.2.2 아두이노 웹서버 만들어보기 - 이번포스팅에서는 지난 포스팅에이어 wifi통신을 이용해서 간단히 아두이노 웹서버를 구현해 보겠습니다. 물론 아두이노로 웹서버를 구현하는게 약간의 이질감(?)이 느껴지기는 하지만 휴대폰이나 PC로 원격지에 있는 센서에서 데이터를 가져오는게 그리 어려운건 아니라는 예시를 보여드리고 싶어 이번 주제로 잡아봤습니다. - 웹서버란 클라이언트로부터 HTTP 요청을 받아 웹페이지를 반환하는 역할을 하는 프로그램을 말합니다. 잘 알려진 웹서버는 아파치, nginx, GWS, IIS등이 있습니다. 물론 아두이노에서 이런 웹서버를 구동시킬수는 없습니다. 이번 포스팅에서 구현하는 웹서버는 80포트로 접속 요청.......

PIR센서(모션감지센서) 사용하기(아두이노&라즈베리파이) [내부링크]

이번포스팅에서는 PIR센서에 대해 살펴보겠습니다.- PIR(적외선감지)센서 . 모션감지센서라고도 많이들 표현하는 센서입니다. 정확한 표현은 적외선 감지센서라고 표현하는게 맞을듯 합니다. . 적외선이 뭘까요? 적외선은 가시광선보다 파장이 긴 전자기파입니다. 어렸을때 많이 가지고 놀았던 프리즘으로 많이 봤던 스펙트럼 가시광선중 빨강색 가시광선 다음의 파장범위를 가집니다. 주로 열을 전달하는 전자기파입니다. 적외선감지센서는 이러한 적외선의 특성을 이용하여 열을 발생하는 물체를 감지하는 센서입니다. . 적외선 감지센서를 설명할 때 가장 많이 등장하는 그림입니다. . 위의 그림처럼 2개의 적외선 수신기를 통해 Heating sour.......

[아두이노강좌]아두이노를 이용하여 통신하기-step6-ESP01을 이용한 wifi통신-세번째:스마트폰으로 아두이노와 통신하기-part1 [내부링크]

3.2.3 스마트폰과 HTTP통신하기 - 지난번 포스팅에서는 아두이노를 이용하여 원격지에서 접속할 수 있는 웹서버를 구현해 보았습니다. 아두이노로 구현한 웹서버이므로 웹페이지 표현도 한계가 있었습니다. 아두이노만 가지고 웹서버를 구현하는것에 의의를 둘 수 있을것 같습니다. 이번 주제는 스마트폰 앱을 이용하여 아두이노와 http통신을 하기 입니다. 아두이노쪽 프로그램도 있고 스마트폰 앱도 구현해야 하므로 한번의 포스팅으로 하기에는 너무 길어질 껏 같아 2회에 나눠서 포스팅 해보겠습니다. - 스마트폰과 블루투스로 연동하는 예시는 인터넷에도 꽤 있는 것 같은데. 저도 한번 블루투스 통신할때 올렸었구요. http통신을 이용해서.......

[아두이노강좌]아두이노를 이용하여 통신하기-step7-ESP01을 이용한 wifi통신-세번째:스마트폰으로 아두이노와 통신하기-part2 [내부링크]

이번 포스팅에서는 지난번 포스팅에 이어 스마트폰과 통신하는 아두이노쪽 프로그램을 작성해 보겠습니다. 기본적으로 wifi연결하고 클라이언트로부터 http 요청을 받아 응답하는 과정은 이전에 아두이노웹서버편에서 포스팅한 내용과 크게 차이는 없습니다. 다만 데이터 전송을 요청받을때와 서보모터의 제어를 요청받을때를 구분하여 응답하도록 하는 부분만 차이가 좀 있습니다.3.2.3.2 스마트폰 앱과 통신하는 아두이노 프로그램 만들기 - 구현내역 . 스마트폰 앱에서는 전송되는 데이터("ON","OFF","DATA")에 따라 각 상황에 맞는 응답을 스마트폰 앱으로 전송- 연결회로도 - 아두이노 프로그램#include &quo.......

stray '/XXX ' in program [내부링크]

아두이노 스케치에서 컴파일시 발생하는 에러입니다. 저같은 경우는 파워포인트로 교안을 만들때 작성한 소스를 카피하여 스케치에 붙여넣는 경우가 자주 있어서 자주 보는 에러이기도 합니다.이 에러의 원인은 파워포인트나 웹페이지에서 소스 복사시 유니코드로 되어 있는 문자가 들어가 있는 경우 발생합니다. XXX는 오류가 난 유니코드에 따라 다른 값이 나옵니다. 저같은 경우는 한글 파워포인트에서 소스를 복사하다보니 주로 따옴표때문에 '342' 라는 코드가 많이 발생합니다. 이외에도 웹페이지에서 복사하여 스케치에 넣은 경우에는 연산기호나 특수문자때문에 발생할 수도 있습니다. 오류가 발생한 라인의 따옴표, 연산기호.......

토양수분센서 사용하기(아두이노&라즈베리파이) [내부링크]

이번포스팅에서는 토양수분센서에 대해 살펴보겠습니다.- 토양수분측정(YL-69)센서 . 토양의 수분이 얼만큼 있는지 측정하는 센서 . 두 전극 부분에서 전류를 흘려보내 그에 대한 저항값으로 수분의 함량을 측정함 . 수분의 함량이 많으면 저항값이 적어 전류가 잘 흐르고 수분의 함량이 적으면 저항값이 많아 전류가 잘 흐르지 않음 . 아날로그 출력데이터는 저항값을 환산한 데이터로 수분이 많을 경우 저항값이 낮아 아날로그 출력값이 낮아지고 수분이 적으면 저항값이 높아 출력값이 높아짐- 형태 및 핀맵- 아두이노에서 사용법 . DO,AO가 있으므로 디지털 값을 입력받으려면 DO를 디지털핀에 연결 후 pinMode를 INPUT으로 설정후 digitalRe.......

적외선 거리측정 센서 사용하기(아두이노) [내부링크]

이번포스팅에서는 적외선 거리측정센서에 대해 살펴보겠습니다.- 적외선 거리측정센서 . 적외선을 이용하여 거리측정을 하는 센서입니다. 적외선 관련된 센서는 얼마전에 포스팅한 PIR센서가 있었습니다. . 해당 센서와의 가장 큰 차이는 PIR센서는 별도의 적외선 방출 없이 물체에서 방출하는 적외선의 변화를 감지하는 센서이지만 이 적외선 거리측정센서는 적외선을 방출한 후 수신부에 검출되는 빛의 양에 따라 출력전압이 달라지는 센서입니다. . 위의 그림은 LED에서 방출한 적외선이 수신부에 도달하는 과정을 나타내는 그림입니다. 반사되는 물체의 거리가 멀수록 수신부에 도달하는 빛의 세기는 약해지게 됩니다. 이 원리를 이용해서 거.......

아두이노에서 네오픽셀 사용하기 [내부링크]

이번포스팅에서는 아두이노에서 네오픽셀을 사용하는 방법에 대해 살펴보겠습니다. 라즈베리파이에서 네오픽셀 사용하는 방법은 요기를 참고해 주시기 바랍니다.- 네오픽셀 . 네오픽셀은 Adafruit사에서 만든 컨트롤러가 포함된 LED 입니다. VCC,GND와 디지털 핀 3개의 핀으로 여러개의 LED를 제어할 수 있는 LED 소자입니다.네오픽셀을 검색해보시면 매트릭스, 링,막대형, 스트림형등 다양한 형태가 있습니다. 단 3개의 핀으로 여러개의 LED를 제어할 수 있으니까 다양한 용도에서 편하게 사용할 수 있을 것 같네요. . 제가사용한 네오픽셀은 원형 8채널 네오픽셀 입니다. 8채널이란 LED가 8개란 의미라고 보시면 됩니다. . 뒷면에 DI,VCC,GND.......

[아두이노강좌]아두이노를 이용하여 통신하기-step8-아두이노간 블루투스통신(HC-06) [내부링크]

지난번에 블루투스 통신관련하여는 스마트폰 앱과 아두이노에 연결된 블루투스 모듈간의 통신방법을 포스팅을 했었는데 얼마전 블루투스 사용관련되서 강의를 하다보니 학생들의 경우 스마트폰이 없는 학생들이 많아서 그 내용만 가지고는 수업이 진행에 어려움이 좀 있더군요. 물론.. 그럴 경우를 대비해서 아두이노간 블루투스 통신관련해서 교안을 준비해 갔던터라.. 별 무리 없이 진행을 하긴 했었지만.. 어쨌든 블루투스 통신 예시가 아두이노와 스마트폰이랑 하는건 있는데 서로 근접한 아두이노끼리 블루투스 통신을 하는 방법에 관해서는 별로 없는 것 같아 간략하게나마 포스팅 해보려고 합니다.사실, 뭐 다들 아시겠지만. 아두이노에 연.......

라즈베리파이에서 초음파 센서 사용하기 [내부링크]

이번 포스팅 내용은 라즈베리파이를 이용하여 초음파 센서를 사용하는 방법이다초음파 센서는 HC-SR04...

라즈베리파이를 이용한 침입탐지 시스템-with 레이저센서, 조도센서 [내부링크]

이번 포스팅에서는 레이저센서와 조도센서를 이용하여 영화에서 가끔 보는 침입탐지 시스템을 만들어 보려...

라즈베리파이를 이용한 서보모터 제어 [내부링크]

이번포스팅 에서는 PWM을 이용한 서보모터 제어하는 방법에 대하여 포스팅 하고자 한다.일반적인 서보모...

PWM을 이용한 아날로그 출력 및 디지털 센서 값 가져오기 with 파이썬 [내부링크]

이번 포스팅의 내용은 라즈베리파이에서 디지털 출력신호를 아날로그 출력처럼 바꾸어주는PWM 사용 방법...

라즈베리파이에서 uart 통신을 이용한 지문인식센서 사용해보기 [내부링크]

이번 포스팅에서는 라즈베리파이에 지문인식센서를 연결하여 사용하는 방법에 관련하여 포스팅 해보려고 한...

라즈베리파이 GPIO 인터럽트 사용해보기 with 푸쉬버튼 & passive buzzer [내부링크]

이번 포스팅에서는 GPIO 인터럽트사용법을 푸쉬버튼과 패시브 부저(수동부저)를 이용하여 설명해 보려...

라즈베리파이-파이썬을 이용한 자동차 후방 감지센서 만들어보기 [내부링크]

이번 포스팅에는 초음파 센서를 이용하여 자동차 후방감지센서를 구현해 보고자 한다. 자동차 후방감지센서...

라즈베리파이에서 아날로그 입력값 가져오기-SPI통신(조도센서 연결) [내부링크]

라즈베리파이에서 아날로그 센서 데이터를 수집하기 위해서는 별도의 ADC가 필요하다. ADC는 Analog...

라즈베리파이 수집센서값 Maria DB에 저장하고 화면에 보여주기 [내부링크]

앞선 몇번의 포스팅에서 라즈베리파이를 이용하여 센서 데이터를 가져오는 방법을 몇가지 소개하였다. 데이...

[아두이노강좌]아두이노를 이용하여 통신하기-step2-NRF24L01모듈을 이용한 1:1통신 [내부링크]

이번 포스팅에서는 NRF24L01 모듈을 이용해서 1:1통신을 수행하는 방법에 대해 알아보겠습니다.3.1.2 ...

[아두이노강좌]아두이노를 이용하여 통신하기-step1-블루투스통신 [내부링크]

저번 포스팅까지 아두이노 디지털/아날로그 센서의 사용법에 대하여 알아봤습니다. 센서들을 이것저것 소개...

[아두이노강좌]아두이노를 이용한 센서 제어-step12-센서활용하기(1602LCD with I2C) [내부링크]

이번포스팅에서는 센서로부터 취합된 데이터를 보여주는데 많이 사용되는 1602LCD 사용법에 대해 포스팅...

아두이노 나노를 이용한 따라쟁이 4족 보행 거미로봇(feat NRF24L01) [내부링크]

얼마전에 오토봇과 MQTT통신을 이용해서 싱크로나이즈 오토봇을 구현한 내역을 포스팅했었습니다. 혹 ...

아두이노를 이용한 센서 제어-step11-센서활용하기(서보모터) [내부링크]

이번 포스팅에서는 액츄에이터인 서보모터 작동법을 알아보겠습니다. 2.5.3. 서보모터 사용하기 - 서보모터...

아두이노를 이용한 센서 제어-step10-센서활용하기(8*8LED Dot Matrix) & 아두이노 라이브러리 추가하기 [내부링크]

이번포스팅에서는 64개의 LED를 이용하여 문자나 숫자를 출력할 수 있는 8*8 LED dot matrix 에 관해...

아두이노를 이용한 센서 제어-step4-디지털입력센서 사용 [내부링크]

2.3.2 디지털 입력센서 - 센서가 데이터를 취합하여 디지털신호(0또는 1)의 데이터를 아두이노로 전송해 주...

아두이노를 이용한 센서 제어-step5-시리얼모니터사용 [내부링크]

- 시리얼 모니터 사용하기 아두이노 시리얼 모니터 : 이전의 포스팅에서 아두이노는 PC와 UBS로 연...

아두이노를 이용한 센서 제어-step6-아날로그 입력센서 사용 [내부링크]

이번포스팅에서는 아날로그 입력센서의 사용법에 대해서 알아보도록 하겠습니다.2.4 아날로그센서 사용하기...

아두이노를 이용한 센서 제어-step1 [내부링크]

이번 포스팅부터는 본격적으로 아두이노를 이용해서 센서를 제어하는 방법을 알아보도록 하겠습니다. 이번 ...

아두이노를 이용한 센서 제어-step2 [내부링크]

이번포스팅에서는 아두이노를 이용하여 디지털 출력센서를 제어하는 방법 관련하여 기술하겠습니다.2.3 디...

아두이노를 이용한 센서 제어-step3 [내부링크]

이번포스팅에서는 지난번 포스팅 마지막에 언급했던 LED 6개를 이용하여 크리스마스트리 효과를 내는 ...

MysqlDB(MariaDB) 의 blob 사용시 Data too long for column 'xxx' at row 1 에러 [내부링크]

Data too long for column xxx at row 1 에러는 Mysql에서 테이블을 생성하였을때 지정한 컬럼의 사이즈...

TypeError: 'NoneType' object is not subscriptable [내부링크]

위 에러는 색인을 생성할 수 없는 오브젝트에 대하여 색인을 줄려고 할때 나는 에러입니다. 쉽게 예시를 들...

아두이노 발담궈보기-step3 [내부링크]

1-4 아두이노 회로구성방법 - 아두이노가 외부와 소통하는 지도-핀맵 . 핀맵이란 > 아두이노 보드가 외...

아두이노 발담궈보기-step2 [내부링크]

이번 포스팅에서는 아두이노 프로그램 구조와 프로그래밍언어에서 함수의 용도 및 사용법에대해 간략히 정...

아두이노 발담궈보기-step1 [내부링크]

요즘들어 블로그에 아두이노 관련해서 문의주시는 분들이 자주 계시네요그래서 아두이노 관련하여 강좌비슷...

지문데이터 읽어와서 데이터베이스에 저장하고 비교하기-part2 [내부링크]

지난 포스팅에서는 지문인식센서에서 지문 데이터를 읽어와서 DB에 저장하고 지문이 등록된 지문인지를 ...

지문데이터 읽어와서 데이터베이스에 저장하고 비교하기-part1 [내부링크]

이번에 포스팅할 주제는 지문인식센서를 통해 인식된 지문데이터를 데이터베이스에 저장하고 지문인식센서...

라즈베리파이 블루투스를 이용한 IoT기기제어(feat. 네오픽셀 무드등)-part2-무드등 제어하는 프로그램 [내부링크]

지난 포스팅에서는 라즈베리파이에서 블루투스 연결하고 파이썬에서 블루투스 통신을 위한 모듈까지 설치해...

라즈베리파이 블루투스를 이용한 IoT기기제어(feat. 네오픽셀 무드등)-part1-라즈베리파이에서 블루투스 연결하기 [내부링크]

이번 포스팅에서는 라즈베리파이에서 블루투스 기능을 사용하는 내용을 포스팅해보려고 합니다. 아두이노의...

파워업 Ottobot(오토봇)을 이용한 싱크로나이즈 오토봇 만들기 [내부링크]

이번 포스팅에서는 아두이노 나노를 이용한 오픈소스 이족보행 로봇인 Ottobot(오토봇)의 파워업버전(?)을...

라즈베리파이를 이용하여 스마트화분 만들어보기-3편 [내부링크]

지난 2번의 포스팅을 통하여 만들어보고자 했던 스마트화분 기능구현 목록 중 - 토양의 습도를 체크하여 자...

라즈베리파이를 이용하여 스마트화분 만들어보기-2편 [내부링크]

지난 포스팅에서는 스마트화분 구현 기능 내역, 사용센서, 그리고 토양습도 센서를 이용하여 화분토양의 습...

라즈베리파이를 이용하여 스마트 화분 만들어 보기-1편 [내부링크]

얼마전 블로그로 토양수분센서 사용방법에 대해 문의를 주신 분이 계셔서 참고가 되실까 하여 이번 포스팅...

라즈베리파이를 이용한 거짓말 탐지기 [내부링크]

글을 너무 띄엄띄엄 올리는 것 같네요. 이번에는 라즈베리파이를 이용하여 거짓말탐지기를 만들어보겠습니...

아두이노에서 ESP01 사용하여 IoT 클라우드 서비스 접속 [내부링크]

이번 포스팅에서는 아두이노를 이용하여 TCP/IP 통신을 하는 방법을 포스팅하려고 합니다. TCP/I...