전체 글 425

[도서 출간] 라즈베리파이 센서 제어 스킬업 with Pioneer600 (Raspberry Pi 센서 중급으로 가는 길)

안녕하세요.  부끄럽지만, 이번에 Raspberry Pi 제어 자료들을 정리하면서 책을 출간하였습니다. 단순하게 I/O만 제어하는 것이 아니라 확장성과 회로를 보면서 제어 프로그램을 학습할 수 있도록 내용을 정리했습니다.  기본적으로 Pioneer600이라는 모듈이 필요하지만, 사용하지 않더라도 각 센서마다 이론설명, 회로구성, 핀맵, Datasheet 확인과 소스코드 분석을 보며 학습할 수 있습니다. 조금 더 이해하고 싶다면 모듈을 구매해서 테스트해 보는 것을 추천드립니다.  개인이 출판할 수 있도록 교보문고에서 제공해 주는 POD (Publish on Demand) 서비스를 이용했습니다. 그래서 책을 구매하면 제작하는 시간이 3일 정도 소요됩니다. -----------------------------..

Book Report 2024.07.04

아두이노 나노(Arduino Nano) 33 IoT Web Server에서 데이터 JSON으로 출력하기

안녕하세요.   아두이노 나노 33 IoT로 웹서버를 만들어 보았다면, 아두이노 IoT에서 취득한 센서 정보를 어떻게 가져갈까 고민을 하게 될 겁니다. 그래서 웹 데이터를 Json형태로 바꿔 출력해 주고 다른 응용프로그램에서 웹주소로 접속해서 Json으로 가져오면 되겠다 생각하였습니다.  아두이노 IoT에서 가스 센싱 한 값을 Json으로 인코딩하고 웹서버로 출력해 주고 파이썬에서 JSON 데이터로 읽어오는 테스트를 하였습니다.   이전 "아두이노 나노(Arduino Nano) 33 IoT 고정 아이피 설정 방법"에서 SimpleWebServerWIFI 예제에 JSON 코드를 추가하는 형태로 하였습니다. 1. JSON사전 준비   이미 JSON 사용해보았다면 이 과정은 넘어가도 좋습니다. "툴->라이브러..

Embedded/Arduino 2024.07.03

CASIO F-200 손목시계 배터리와 시계줄 교체하기

안녕하세요.  가지고 있는 전자 손목시계 배터리가 다 되어서 셀프 교체를 해보려고 분해한 내용을 공유합니다. 사실 시계줄도 이미 끊어지려고 해서 교체할까 고민하다가 같이 작업했습니다.  동일 제품은 아니지만, 거의 같은 기종으로 F-200W, A 등 시리즈로 나오는 것이 17,000원~25,000원에 판매되고 있어서, 그냥 새것을 구매할까 고민했는데 자원도 아끼고, 수리도 해보자는 의미로 진행해 보았습니다.  1. 본체 분해하기   시계 뒷면의 볼트 4개를 풀면 큰 코인 배터리가 보입니다. CR2025 타입의 배터리인 것을 알 수 있으며 집에 있는 선풍기 IR 리모컨에 들어가는 배터리라고 생각하면 됩니다.     케이스에서 시계 모듈을 꺼낼 수 있습니다. 6년 이상을 사용했기에 먼지도 많이 끼여 있습니다..

Hygate (BLE to WiFi(MQTT) Gateway) 설정해 보기

안녕하세요.   사물인터넷(IoT) 시대가 되면서 여러 통신 기술 중에 bluetooth 기술을 들어 보았을 것입니다. 아이팟 혹은 갤럭시 버즈 등 블루투스 이어폰, 스피커로 이용되고 있는 기술이기 때문에 알고 있을 것입니다. IT에 조금 더 관심이 있는 분이라면 Beacon 기술 또한 알고 계실 것입니다.  1. 간단한 비콘 개념 1) 비콘(Beacon) 정의   비콘이라고 한다면 ‘비콘’은 가까운 범위 안에 있는 사용자의 위치를 찾아 메시지 전송, 모바일 결제 등을 가능하게 해주는 스마트폰 근거리 통신 기술로, 저전력 블루투스(BLE)를 활용한 ‘모바일 위치 기반 서비스’라고 하거나, 작은 전파 송신 장치로, 무선 통신을 이용하여 특정 위치에 있는 스마트 디바이스에 정보를 전달하는 역할을 합니다. 주..

IT 2024.06.29

아두이노 나노(Arduino Nano) 33 IoT 고정 아이피(Static IP) 설정 방법

안녕하세요.   단순하게 SimpleWebServerWiFi 샘플 소스를 실행시키면 내부 공유기의 DHCP에서 할당해 주는 내부 네트워크 아이피(IP) 주소를 할당받게 됩니다. 그래서 시리얼 모니터로 할당된 주소를 확인한 후 아두이노 웹서버로 접속을 해야 합니다.   이렇게 하면 IP 주소를 매번 확인해야 하는 불편한 점이 있습니다.  아니면 DDNS를 사용해서 도메인(DNS)으로 접속할 수도 있습니다.   그렇게 하는 것보다 비용도 절감하고 내부 고정 아이피로 사용한다면 위의 불편한 점은 개선할 수 있을 것으로 생각되어 고정으로 하면 좋겠다 생각하게 되어 찾아보게 되었습니다.  1.  고정아이피 할당 예제 1) 예제 소스 불러오기    할당하는 방법에 대해서 간단한 샘플 예제로 하는 방법을 확인해 보도..

Embedded/Arduino 2024.06.28

PyQt5에서 failed to execute script 에러가 발생 시 해결방법 찾기

안녕하세요.  이번에 시리얼 데이터를 화면에 출력해해 주기 위해서 어떤 GUI 툴을 사용해 볼까 하다가 PyQt5를 테스트해 보았습니다.   PyQt 설치하고 하는 것은 문제가 없었는데, 실행파일을 만들고 배포하기 위해 실행파일을 만들면서 에러가 발생하여 해결한 내용이 있어 조금 도움이 될까 해서 공유드립니다.   1. 개발 환경    참조 사이트를 참고하여 최신 PyQt5 설치   개발 툴은 파이참(PyCham)을 설치하고 아나콘다(Anaconda)도 설치해서 필요한 Library를 가져오는 형태를 취하였습니다.   2. 문제 발생 내용   시리얼 통신 소스를 Run(Ctrl + Shift + F10)으로 실행할 경우 에러 발생하지 않고 실행됨  pyinstaller로 실행파일을 만들어 exe파일 실행..

Programming/Qt 2024.06.27

[도서 실습] Qt 5 and OpenCV 4 Computer Vision (Literacy – EAST detector와 tesseract과 이용한 text 추출 + 스크린 캡처) with Raspberry Pi

안녕하세요.    문자열 추출하는 구현은 기본적으로 끝이 났습니다. 그렇지만 성능을 조금 향상하기 위한 기능을 추가해 보도록 하겠습니다. 컴퓨터에 desktop 화면을 드래그 선택해서 캡처 이미지에서 문자를 추출하는 기능을 추가해 볼 예정입니다.이전 내용처럼 frozen_east_text_detection.pb 파일은 디버그 디렉터리에 있어야 합니다. 1. ScreenCapturer 클래스 생성   QtCreator에서 LiteracyW 프로젝트를 불러온 후 프로젝트 파일에서 오른쪽 버튼을 눌러 “Add New”를 눌러 C++ Class를 생성합니다.     - 클래스 이름을 ScreenCapturer로 하고 base class를 QWidget으로 선택해서 생성합니다. 그러면 header 파일과 Sour..

Programming/Qt 2024.06.26

BARIX Annuncicom100 테스트해 보기(펌웨어 업데이트 방법 추가)

안녕하세요.   이번에는 BARIX에 Annucicom100을 테스트해 보았습니다. Instreamer도 테스트해 보았지만, Instreamer 같은 경우는 Encoder 기능만 가지고 있기도 하고 3.5파이 마이크 단자도 없고 불편한 것이 조금 있었습니다. 그런데 Annuncicom 시리즈 같은 경우 Encoder/Decoder가 포함되어 있다 보니 펌웨어 업데이트 함으로써 다른 기능으로도 사용 가능했습니다. 특히 테이블(Table)을 선택할 수 있어서 자신이 보내고자 하는 곳에 방송을 할 수 있습니다.  1. 구성품    본체, 아답터, 커넥터, 매뉴얼, 맥(Mac) 주소 스티커가 들어 있습니다. 그리고 제품 주문할 때 확인할 부분이 EU 규격의 제품을 주문해야 220V 돼지코 아답터가 옵니다. 그렇..

IT 2024.06.25

LocknLock 데일리 슬림핏 원터치 텀블러(Tumbler) 후기

안녕하세요.  현재까지 몇 년을 사용한 텀블러가 겉면이 떨어지고, 내부를 바닥을 청소해도 잘 지워지지 않아서 이번에 바꿔서 공유해 보아요. 한 손에 잡을 수 있고, 가방에 넣어 다니기 편하고 편한 제품으로 검색했습니다. 이전 제품은  약 350ML이고 병뚜껑처럼 돌려서 여는 방식이라 특별한 것이 없습니다.   이번 것은 400ML이고 원터치 방식이라 편리함을 누려보고자 선택했습니다. 광고와 추천이 아니며 이런 제품도 있구나 참고하면 좋을 듯합니다.  1. 박스 내용   박스는 특별한 것이 없고, 사각형이며 각 면마다 정보를 설명하고 있습니다.간단하게 설명하자면, 몸체는 스테인리스 스틸 304, 패킹은 실리콘고무, 내냉·내열온도 약 -20도 ~ 120도입니다. 그리고 총길이는 약 22cm, 지름은 5cm입..

아두이노 나노(Arduino Nano 33 IoT) BLE를 이용한 자이로 센서(Gyroscope) 값 가져오기 – 3

안녕하세요.   이전 내용에서 간단하게 LED를 제어해 보았습니다. 이번에는 나노 33 IoT 장착되어 있는 자이로 센서를 X, Y, Z 축 값을 가져와 BLE로 전달하는 것을 해보도록 하겠습니다.   1. BLE 구조   BLE 서비스를 만들고 Characteristic을 선언하는데, 조금이나 이해를 하면 좋지 않을까 해서 찾아보았습니다.  애플리케이션 단에서 데이터 교환은 ATT(Attribute protocol) 기반으로 이루어지고 각각의 데이터는 GATT(Generic Attribute Profile) 데이터 구조를 따라 정의됩니다.  ATT는 서버와 클라이언트 사이의 데이터 교환에 대한 규칙을 정의하는 것입니다.    GATT는 Service와 Characteristic으로 구성됩니다. “Ser..

Embedded/Arduino 2024.06.22

휴대용 칫솔살균기(MHC-1000) 사용후기

안녕하세요.  한 번쯤 사용해보고 싶었던 제품이 있었는데 세미나에 참가했다가 받게 되어 한번 사용해 보았습니다. 바로 휴대용 칫솔살균기입니다. 예전에 칫솔에 많은 세균이 산다고 해서 살균기가 있으면 좋다고 해서 사고 싶었지만, 필수품이 아니라서 잊고 있었습니다. 1. 제품구성 및 스펙  제품구성 : 본체 하나가 들어 있습니다. (요즘은 제품마다 AA건전지도 잘 포함해주지 않는 듯합니다.) 충전식이 아니라서 AA건전지가 2개가 별도로 필요합니다.    스펙 : 제품박스 뒷면의 내용으로 대신하겠습니다.   2. 부분 설명   본체 부분은 크게 작동 표시등, UVC-LED, 통풍구, 자석이 아닐까 합니다. 여기서 핵심은 UVC-LED이고, 자석은 리드스위치(자석이 가까이 가면 스위치 동작함)를 위함으로 보입니..

BARIX Exstreamer 테스트해보기 (TCP 사용하기)

안녕하세요. 이번에는 Instreamer 제품과 반대 기능을 하는 제품을 테스트해 보았습니다. 바로 Exstreamer 100 제품이고 하는 일은 Decoding을 하는 것입니다.   Exstreamer는 Instreamer에서 전달해 주는 음원을 출력하거나 USB의 음원을 출력해 주는 역할을 합니다. 그리고 원격지에서도 CGI와 TCP를 이용해서 제어할 수 있는 기능을 제공 줍니다. 이번에는 간단하게 TCP 연결로 제어해 보도록 하겠습니다.  1. 초기 설정하기 1) 네트워크 설정   접근하기 위해서 IP를 고정으로 설정하고 시작하겠습니다. 한번 자동으로 설정되면 바뀔 일은 없지만, 다른 곳에 가서도 사용할 수 있게 고정으로 설정하도록 하겠습니다.  내부에 웹서버가 작동하고 있기 때문에 설정된 아이피로..

IT 2024.06.20

아두이노 나노(Arduino Nano 33 IoT) BLE를 이용한 LED 제어 – 2

안녕하세요.  이전 내용에서는 BLE 접속에 대해 알아보았습니다. 이번에는 어떻게 LED를 제어하는지 데이터를 주고받는지를 확인해 보도록 하겠습니다.  1. 아두이노 프로그램  - BLE 라이브러리를 추가하고 BLERead와 BLEWrite 문자열 주고받을 수 있는 서비스를 초기화합니다. #include BLEService ledService("3de2545d-9de6-47ce-84a9-68c5ead85c67");BLEByteCharacteristic switchCharacteristic("3de2545d-9de6-47ce-84a9-68c5ead85c67", BLERead | BLEWrite);const int ledPin = LED_BUILTIN;    - Setup() 함수에서 시리얼 통신 모니터링하..

Embedded/Arduino 2024.06.19

아두이노 나노(Arduino Nano 33 IoT) BLE 사용하기 – 1 (연결하기)

안녕하세요.   아두이노 나노 33 IoT 모듈에는 WiFi 기능이 있고 BLE(Bluetooth) 기능도 있습니다. 이전 내용은 WiFi를 다루어 보았고 이번에는 BLE 관련된 내용으로 해보려고 합니다.  진행은 간단하게 Nano 33 IoT에서 BLE를 사용해 보고 여러 개 데이터를 전달하는 것을 해보려고 합니다. 그리고 추가로 공개된 안드로이드 앱 소스를 수정해서 값까지 받아 보는 것을 해보려고 합니다.  1. BLE(Bluetooth Low Energy) 란 1) 정의   블루투스 저전력 프로토콜(Bluetooth Low Energy)또는 줄여서 BLE은 블루투스 4.0(Bluetooth Smart) 스펙이 2010년 6월 30일에 채택된 이후로 배포되는 저전력 블루투스이다.   이로서 기존의 블..

Embedded/Arduino 2024.06.18

[팝송으로 영어공부(175)] Midnight Blue - E. L. O

1. 노래 제목 : Midnight Blue2. 가 수 : E. L. O.3. 노래 듣기 (Youtube)   4. 핵심표현  * distant [dístənt] : 먼, 원격의, 거리를 두는, 냉담한, 서먹서먹한  The distant mountains looked beautiful against the sunset.  석양을 배경으로 먼 산들이 아름다워 보였습니다.  He heard a distant sound that made him feel uneasy.  그는 마음이 불안해지는 먼 소리를 들었습니다. * Leave Behind : 뒤에 남기다, 두고 가다  He left his old life behind to start fresh in a new city.  그는 새로운 도시에서 새로 시작하기..

IRF520 MOSFET 모듈 (12V 전압 제어하기) 사용 후기

안녕하세요.  임베디드 모듈(아두이노, 라즈베리파이)에서는 모터나 5V 이상 모듈을 제어할 수 없기 때문에 TR과 같은 제품으로 제어를 해야 합니다. 이번에 12V 정도의 모듈을 제어해야 할 일이 있어서 어떤 것을 사용할까 하다가 MOSFET으로 간단하게 회로가 꾸며진 모듈이 있어서 사용해 보게 되었습니다. 특히 가격이 900원 정도라 테스트 겸 사용해 보았습니다.    우선 MOSFET이 무엇인지 알아보면, 금속 산화막 반도체 전계효과 트랜지스터(MOS field-effect transistor)는 디지털 회로와 아날로그 회로에서 가장 일반적인 전계효과 트랜지스터 (FET)이다. 줄여서 MOSFET(한국어: 모스펫)이라고도 한다.  모스펫은 N형 반도체나 P형 반도체 재료(반도체 소자 참조)의 채널로 ..

IT 2024.06.15

[도서 실습] Qt 5 and OpenCV 4 Computer Vision (Literacy – EAST detector와 tesseract과 이용한 text 추출) with Raspberry Pi

안녕하세요.  이전 내용에 추가해서 전체 이미지상에서 문자열을 바로 추출하는 것이 아니라, 텍스트 영역을 검색하는 detector를 추가해서 좀 더 정확한 문자열을 추출해 봅니다.  1. EAST detector 학습된 자료 다운로드   - OpenCV의 EAST(Efficient and Accurate Scene Text) text detector는 novel architecture와 training pattern을 바탕으로 하는 deep learning model입니다. 그래서 학습을 시키는 과정이 필요한데, 여기서는 미리 학습한 데이터를 이용하는 것으로 합니다.   - 이전 내용 LiteracyW_day3에 폴더에 학습된 데이터를 다운로드합니다. (이 글에서는 day4로 새로 디렉터리를 생성해서 하..

Programming/Qt 2024.06.14