Embedded 48

아두이노 나노(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

아두이노 나노(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

아두이노 나노(Arduino Nano) 33 IoT를 이용한 GY-GPSV3-7M GPS 수신 모듈 테스트(SZH-NT07)

안녕하세요.   이번에는 아두이노 나노 33 IoT에 GPS를 연결해 보도록 하겠습니다. 조금 저가형이지만 간단하게 테스트할 수 있는 모듈입니다. 그러나 결론적으로 보면, GPS 수신은 되지만, 외부에서 사용할 경우 추가적인 안테나가 필요해 보였습니다. GPS 가짜 제품을 알아내는 법, 구글맵에서 검색하는 방법 등 이런저런 내용으로 구성해 보았습니다.  1. GPS(Global Positioning System) 란   GPS(Global Positioning System 글로벌 포지셔닝 시스템[*]) 또는 범지구 위치 결정 시스템은 현재 GLONASS와 함께 완전하게 운용되고 있는 범지구 위성항법시스템 중 하나이다. 미국 국방부에서 개발되었으며 공식 명칭은 NAVSTAR GPS(NAVSTAR는 약자가 ..

Embedded/Arduino 2024.06.05

아두이노 나노(Arduino Nano) 33 IoT로 NTP 서버에서 이용 현재시간 받아오기

안녕하세요.  이전 내용에서는 (아두이노 나노 33 IoT로로 작은 웹서버 만들기) 작은 웹 서버를 만들어서 정보를 보여주었습니다.  이번에는 다른 서버에 있는 현재 시간 정보를 가져오는 것을 테스트해 보겠습니다. NTP(Network Time Protocol) 서버에 접근해서 현재시간을 가져오도록 하겠습니다. 이렇게 하면 RTC(Real Time Clock) 회로를 꾸밀 필요가 없다는 것이 장점이 됩니다. 단, 네트워크가 연결되어야 합니다. 이것을 이용해서 특정 시간에 알람이나 특정 동작을 가능하게 할 수 있습니다. (이전 웹 서버 만드는 과정을 참고하시면 WiFiNINA 라이브러리 설치하는 방법과 SSID 설정하는 내용이 있습니다.)  1. NTP(Network Time Protocol) 이란? 1)..

Embedded/Arduino 2024.06.01

아두이노 나노(Arduino Nano) 33 IoT로 작은 웹서버 만들기

안녕하세요.   이전 글에서 많은 센서들을 테스트해 보았습니다. 이제 실생활에 적용할 수 있는 것을 들을 찾아보려고 합니다. 그러기 위해서 우선 IoT 장비가 PC나 스마트폰과 통신되는 것이 가장 우선순위가 되어야 한다고 생각했습니다.  그래서 가지고 있는 아두이노 33 IoT 모듈에 웹서버를 올려놓으면 필요할 때마다 볼 수 있고 DDNS 혹은 포트 포워딩 등 해두면 외부에서도 볼 수 있겠다 생각하였습니다. (블루투스가 되지만 다른 장치를 사용할 때만 페어링 하고 해야 해서 웹서버로 결정하였습니다.)   1차는 웹서버를 테스트하고 2차, 3차에 온도 습도 등 센서 장착해서 수치 확인하고 이후에 케이스에 소형 솔라셀을 붙여서 외부 전력 공급 없이 작동하도록 하는 것으로 실제로 베란다에 두고 작동시켜보려고 ..

Embedded/Arduino 2024.05.31

Raspberry pi CM4(Bullseye)에서 Tesseract 4.1.3 설치 및 OCR 테스트

안녕하세요.    Windows 상에서 Tesseract, OpenCV, Qt를 조합해서 하려고 하니 이런저런 라이브러리를 설치하기가 어려워서 리눅스 기반인 라즈베리 파이 상에서 테스트해 보았습니다.라즈베리 파이에서 현재 시점에서 최신 버전인 Tesseract 5.1.0을 설치 시도하였으나 아래와 같이 발생하였습니다.   에러로 검색해 보면 FreeBSD 빌드 상에 문제가 있다고 리포팅된 것으로 보였습니다. 향후에 수정된 버전에서 5.x도 사용 가능할 것으로 보입니다. 그래서 현재 4.1.3 버전을 사용하였습니다.[package - 130releng-armv6-quarterly][graphics/tesseract] Failed for tesseract-5.1.0 in buildhttps://www.mai..

아두이노 나노(NANO) 정품과 아두이노 카피품 비교 및 업로드 차이

안녕하세요. 간단한 개발할 일이 있어 값이 싼 카피본 아두이노 나노 하나를 구매해 보았습니다. 그런데 웬걸 업로드가 안 되었습니다. 고장인가 싶어서 다른 회사 카피본 아두이노 나노도 하고 혹시 몰라 리퍼 아두이노 나노 정품도 구매해 보았습니다.   결국 3개가 되어버린 결과가 되었습니다. 카피본은 6천 원 정도 정품은 3만 원 정도(정가는 4만 5천 원) 들었습니다. 결론은 먼저 말씀드리면 3개 다 문제없이 업로드가 되었습니다.프로세서 선택에서 부트로더를 오래된 것(old Bootloader)을 할 것이냐, 최신 것을 할 것이냐 선택에 따라 업로드가 해결되었습니다.구형 부트로더(카피본) 선택  신형 부트로더(정품) 선택   카피본과 정품의 차이라고 하면 위의 부트로드 선택도 있지만,하드웨어 상도 차이를 ..

Embedded/Arduino 2024.05.25

아두이노 waveshare 1.3인치 OLED에 넣을 BMP 이미지(HEX 값) 만들고 출력하기

안녕하세요.  이번에 0.96인치 OLED를 사용하다가 화면이 조금 더 큰 OLED를 사용해 보게 되었습니다. 그리고 OLED 하드웨어 기본 설정된 값이 SPI 통신으로 되어 있어서 그대로 사용해 보았습니다. 아두이노 소스 역시 SPI로 되어 있어서 바로 확인할 수 있는 방법으로 테스트하였습니다. ( 다른 언어 소스에는 I2C 소스도 포함되어 있습니다. )      소스는 waveshare 홈페이지 가면 받을 수 있습니다. 하단에 사이트 링크 넣어 두었습니다. 아두이노 소스를 실행하면 waveshare 로고가 나오는 부분이 있는데 이것을 우리가 원하는 로고로 바꿔보고 싶다는 생각을 하다가 찾아본 내용이 있어 공유드립니다.    SH1106_bitmap(0, 0, Waveshare12864, 128, 64..

Embedded/Arduino 2024.05.22

아두이노 나노를 이용한 라이다(TFmini Plus LiDAR) 테스트 후기

안녕하세요.  자율주행 자동차 인기로 많이 듣게 된 라이다 센서를 테스트해 보았습니다. 360도 회전하며 값을 얻어오는 제품은 아니고 보급형 형태로 나온 한 점을 거리를 가져오는 제품으로 테스트하였습니다.  1. 라이다(Light Detection And Ranging, LiDAR) 란?   라이다는 주변의 사물을 인식하기 위해 레이저 신호를 이용하는 기술입니다. 라이다에서 쏘아진 펄스 레이저 신호가 주변의 사물과 부딪힌 후 되돌아오면, 이를 분석해 사물의 위치나 운동 방향, 속도 등을 확인하는 방식입니다.     Wikipidia 자료    LiDAR는 널리 알려진 신기술로 자율주행, 스마트 교통 시스템 등의 산업에 널리 사용되고 있습니다. 그리고 라이다의 기술 종류가 하나만 있는 것이 아니라 여러 가..

Embedded/Arduino 2024.05.18

아두이노 나노(Arduino Nano)로 EXSEN CO2 Sensor(RX-9) 테스트

안녕하세요.   지난번 9가지 가스센서 테스트를 진행했습니다. 그러나 CO2를 감지하는 센서는 포함되어 있지 않았습니다. 그래서 조금 금액이 나가지만, CO2 수치를 확인할 수 있는 센서를 테스트해 보았습니다.  1. CO2센서   "이산화탄소 센서 또는 CO2 센서는 이산화탄소의 측정을 위한 장비이다. CO2 센서의 가장 공통적인 원리는 적외선 가스 센서 ( NDIR)와 화학 가스 센서이다. 이산화탄소를 측정하는 것은 실내 공기 품질과 여러 산업 공정을 모니터 하는데 중요하다. 많은 공조기(에어컨)에서 이들 센서는 공기의 품질을 모니터 하는 데 사용될 수 있다. NDIR의 원리는 CO나 CO2 등 가스상 물질들이 적외선(Infrared light)에 대해 특정한 흡수 스펙트럼을 갖는 것을 이용해서 특정..

Embedded/Arduino 2024.05.08

아두이노 나노(Arduino Nano)로 솔레노이드(Solenoid) DS-0630S [SZH-GNP529] 테스트

안녕하세요.     이번에 솔레노이드 장비에 대해서 알아보려고 합니다. 샴푸나 소독액 버튼을 눌러주는 것으로 사용하려고 했는데 이번 제품은 눌러주는 힘이 약해서 사용하지 못했습니다.   용도에 따라서 힘이 센 솔레노이드를 선택하셔야 합니다.   1. 솔레노이드 원리   솔레노이드(프랑스어: solénoïde)는 도선을 촘촘하게 원통형으로 말아 만든 기구이다. 솔레노이드는 솔레노이드에 전기를 흘려 자기장을 만들 수 있어 전자석으로 주로 이용된다. 솔레노이드는 유도자(인덕터)의 종류 중 하나로서, 교류를 이용하는 전자회로에 아주 유용하게 쓰인다. 솔레노이드 단독으로도 자기장을 만들지만 자성이 센 강자성체를 넣으면 자화가 일어나면서 자기장이 더 강해지는 효과가 일어납니다.   위와 같은 원리를 이용해서 전기 ..

Embedded/Arduino 2024.04.30

아두이노를 이용한 가스센서 9종 테스트 (Gas Sensor Kit)

안녕하세요.  간단하게 연기 검출을 테스트하기 위해서 저렴한 센서들을 이용해 보았습니다. 센서 키트 구매하면 플라스틱 케이스에 9개 담겨 옵니다. 그리고 가스에 대해서 조금 이해가 있어야 조금 더 잘 사용할 것 같아서 찾아본 자료를 공유해 보도록 하겠습니다.    1. 가스 분류  - 크게 5가지로 나눠 볼 수 있습니다.  1) 가연성 가스 : 공기 중에 산소와 반응하여 연소하는 가스 (LNG, LPG, CH₄, H₂, i-C₄H10, etc) 2) 독 성 가스 : 인체 허용 농도(TLV) 기준의 유독 가스 (NH3, CO, CL₂, COCL₂, VCM, etc) 3) 불활성 가스 : 분자 구조가 안정되어 있어 화학반응을 하지 않는 가스 (He, Ar, Ne, etc)  4) 조연성 가스 : 연소하는 것..

Embedded/Arduino 2024.04.25

아두이노(Arduino) Flex Sensor 2.2 (SEN-10264) 테스트

안녕하세요. 휘어짐 정도를 확인해 볼 수 있는 센서를 테스트해 보도록 하겠습니다. 플렉스 센서라고도 하고 밴드 센서라고도 합니다. 구매하기 전에는 폴더처럼 확 접히면 어떻게 될까 궁금했는데, 테스트해 보면서 느낀 것은 그렇게 하면 고장 난다입니다. 적당하게 휘어짐 정도를 확인할 수 있다고 보셔야 합니다. ^^ 1. Flex/bend Sensor 원리 A flex sensor is a kind of sensor which is used to measure the amount of defection otherwise bending. The designing of this sensor can be done by using materials like plastic and carbon. The carbon sur..

Embedded/Arduino 2024.04.20

Arduino Nano IoT 33 Bootloader blocked 된 경우 MKR ZERO로 살리기(실패)

안녕하세요. 이전 "Arduino Nano IoT 33 Bootloader blocked 된 경우 J-LINK로 살리기"에서 성공을 해서 MKR ZERO로도 가능할 거라 생각하고 참고 삼아해 봐야지 했는데, 결론은 이상한 에러를 발생시키고는 업로드가 되지 않았습니다. Arduino Nano 33 IoT Bootloader blocked 된 경우 J-LINK EDU로 벽돌된 것 살리기 (성공후기) 안녕하세요. 지난번에도 아두이노 나노 IoT 33 보드 살리는 법을 공유드렸습니다. 그런데 그때는 직접 하지 않고 자료만 가지고 가능하다는 것만 알려드렸습니다. 그래서 이번에는 직접 blocked 된 remnant24c1.tistory.com 그렇지만 이렇게 공유하는 이유는 작업하는 방법과 이후에 문의글에 답변이..

Embedded/Arduino 2024.04.13

아두이노 나노 호환보드 워치독(Watchdog) 작동 안 되는 현상(멈춤현상)

안녕하세요. 이번에 아두이노 호환 보드(카피본) 보드를 사용하면서 작동하지 않는 기능을 발견해서 공유해 드립니다. 그것은 watchdog 기능입니다. 이번에 아두이노 프로그램 개발하면서 모든 기능이 다 된다고 생각했고, 신호를 보내다가 가끔 죽을 수도 있다고 생각해서 Watchdog를 설정해 두었는데도 멈추는 현상이 발생했습니다. 고민하다가 가지고 있던 정품으로 동작시켰는데 이상 없이 작동해서 알게 되었습니다. 그렇다고 기타 모든 호환 보드가 동일한 에러가 발생할 거로 생각하지는 않습니다. 제가 동한 제품으로 구매한 호환 보드 3개가 동일하게 Watchdog기능이 작동하지 않았습니다. 가지고 있는 호환 보드 버전은 Arduino NANO V3.0이라고 되어 있습니다. 참고하시어 낭비하는 시간을 줄이셨으면..

Embedded/Arduino 2024.04.03

Arduino Nano 33 IoT Bootloader blocked 된 경우 J-LINK EDU로 벽돌된 것 살리기 (성공후기)

안녕하세요. 지난번에도 아두이노 나노 IoT 33 보드 살리는 법을 공유드렸습니다. 그런데 그때는 직접 하지 않고 자료만 가지고 가능하다는 것만 알려드렸습니다. 그래서 이번에는 직접 blocked 된 보드를 살려보도록 하겠습니다. 외국 분들이 잘 알려주셔서 따라 할 수 있었지만, 칩 선택하고 하는 부분은 스킵되고 현재 버전과 맞지 않는 부분이 있어 조금 수정하였습니다. 1. 원인과 증상 아두이노 나노 호환 버전과 제품과 같이 사용하다 보니 순간 착각하고 호환 보드로 선택해서 다운로드했는데 순간 먹통이 되어 버렸습니다. 아두이노 IDE에서 다운로드되지 않고 녹색 전원 LED 만 들어온 상태였습니다. 리셋(Reset) 버튼을 짧게 더블 클릭하거나 오랫동안 누르고 있으면 복구 모드로 들어간다고 하는데 일단 안..

Embedded/Arduino 2024.04.01

아두이노 나노를 이용한 압력센서 FSR (QA6P) 테스트

안녕하세요. 압력센서 둥근형태 말고 사각 형태 실리콘이 붙어 있는 제품이 있어 테스트해 보았습니다. 사실 원형 플렉스형 압력센서를 주문하면 한 주 걸린다고 해서 바로 오는 것으로 주문했습니다. 비용은 크기가 작아서 그런지 원형보다는 가격이 싼 편이었습니다. 1. FSR(Force Sensing Resistor) 란 FSR은 Franklin Eventoff가 1977년에 발명하고 특허를 받았으며, 압력을 감지하는 면에 가해지는 압력에 반비례해서 전기 저항이 감소하는 특성이 있고, 이것을 센서 입력으로 받아서 압력을 측정합니다. 아무런 압력이 없을 경우 센서는 무한대의 저항값을 가집니다. 그리고 센서에 약간의 힘을 가하면 100KΩ의 저항이 발생하며, 이후 힘을 줄수록 저항값이 떨어집니다.(센서마다 저항값을..

Embedded/Arduino 2024.03.27

Arduino MPU9250(MPU6050) FIFO overflow error 해결하기

안녕하세요. 이번에 MPU9250를 사용하다가 overflow error 가 발생해서 찾아보다가 해결방법을 찾게 되어 공유드립니다. 사실 지난번에 댓글로 문의하신 분이 계셨는데 그때는 저도 경험하지 못하고 있어서 I2C 통신 문제라고만 말씀드렸습니다. 이 글로나마 도움 되셨으면 합니다. 구글링 해보면 여러 가지 답변들이 나오는데 시원한 답글이 없었습니다. 그렇지만 해결하신 분들이 있어 참고해서 작동 확인하였습니다. 결론을 먼저 말씀드리면 MPU9250 DMP 출력 주기를 조정해 주는 것입니다. 1. 에러 발생 부분 - MPU9250 DMP 사용하는 샘플 코드를 사용했다면 아래와 유사한 코드가 들어 있는 것을 확인할 수 있습니다. 그리고 여기서 버퍼 처리가 다 되지 못해서 "FIFO overflow"가 발..

Embedded/Arduino 2024.03.24

아두이노 나노를 이용한 GY-68(BMP180)기압/온도센서 테스트

안녕하세요. 이번에는 대기압 측정하는 BMP180 센서를 테스트해 보았습니다. 사실 거리측정 센서를 통해서 높이를 측정 가능할 거라고 생각했는데 기압으로도 높이를 측정해서 고도로 표시된다고 해서 실생활에서도 가능할지 한번 확인해 보았습니다. 1. 기압 센서란? 기압계라고 하면, 공기의 무게에 의해 생긴 압력을 기압이라고 하고 기압은 해수면을 기준으로 고도가 변하므로 고도를 측정하는데도 기압 센서로 사용하기도 합니다. 기입 센서를 정의한 것을 확인해 보면, 기압 센서란 대기의 압력을 검지하는 센서입니다. 압력 센서에는 측정하는 압력차 등에 따라 하기와 같은 다양한 재료 및 방식의 센서가 존재합니다. 이러한 압력 센서 중, 대기압을 검지 (기압 검지 목적)하는 센서를 일반적으로 기압 센서라고 부릅니다. 기압..

Embedded/Arduino 2024.03.21