Embedded 91

아두이노 나노를 이용한 압력센서 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

아두이노 나노를 이용한 5V 수중 펌프 모터 제어(SZH-GNP155)

안녕하세요. 자동으로 식물에 물을 주는 프로젝트를 진행하기 위해서 수중펌프를 구매했습니다. 그리고 나중에 무선으로 모터를 조정할 수 있게 하기 위해서 아두이노 나노 모듈에서 BT/WiFi가 장착된 Arduino Nano 33 IoT 모듈로 바꿔 테스트했습니다. 그렇다고 해서 크게 테스트 소스코드가 바뀌진 않았습니다. 1. 펌프(Pump) 란 1) 펌프 설명 펌프란 전동기나 내연기관 등의 원동기로부터 기계적 에너지를 받아서, 액체에 운동 및 압력 에너지를 주어 액체의 위치를 바꾸어 주는 기계입니다. 원심펌프는 임펠러(Impeller)를 회전시켜 액체에 회전력을 주어 발생하는 원심력을 활용한 펌프입니다. 흡입관을 통해 임펠러 중심부에 들어온 액체는 날개(Vane) 사이를 통과하면서 회전력을 받아 압력이 증가..

Embedded/Arduino 2024.03.20

Arduino Nano + OSTSen-T007(TMP007) (MEMS) thermopile sensor Test

안녕하세요. 지난번 비접촉 센서와 다른 타입의 센서를 구하게 되어서 테스트해 보았습니다. 온도에 따라 물체에서 나오는 적외선이 다르기 때문에 비접촉으로 절대온도는 아니지만, 비슷하게 적외선으로 온도를 측정할 수 있습니다. 그중에 TI에서 내놓은 TMP007 MEMS 타입을 확인해 보겠습니다. 1. 제품 설명 OSTSen-T007 is a microelectro-mechanical system (MEMS) thermopile sensing module, which is based on Texas Instruments TMP007. The TMP007 is a fullyintegrated microelectro-mechanical system (MEMS) thermopile sensor that measur..

Embedded/Arduino 2024.03.17

Arduino Nano + Crowtail-Capacitive Moisture (토양수분 센서) 테스트

안녕하세요. 식물 키우기 시작하면서 불편했던 것이 언제 물을 언제 주어야 좋은지 모르는 것이었습니다. 그래서 시중에 파는 토양습도 센서를 구매해서 테스트해 보기로 하였습니다. 토양습도 센서라 하기도 하고 토양수분 감지 센서라고 부르고 있는 듯합니다. 1,000 원대 제품을 구매하려고 했는데 후기를 보니 부식이 된다고 하는 분들이 계셔서 부식을 조금이나마 방지할 수 있는 제품을 선택했습니다. 부식 방지되는 것은 가격이 조금 비쌌습니다. 그중에서 저항방식이 아닌 정전용량 방식으로 수분을 측정하는 싼 제품을 구매해서 테스트해 보았습니다. 이 제품도 부식이 되겠지만, 기존 저항방식보다 긴 수명을 제공한다고 합니다. (the capacitive soil moisture sensor is made of a corr..

Embedded/Arduino 2024.03.09

아두이노 나노를 이용해서 DHT11 온도 습도 센서 값 받아오기

안녕하세요. 집에서 온도와 습도를 저렴한 가격으로 확인해 볼 수 있는 것이 무엇이 있을까 해서 찾아보던 중에 DHT11 모듈을 찾았습니다. 1,500원 정도면 구매할 수 있었습니다. 그런데 정확도와 측정주기가 느리기는 하지만 빠른 변화량이 필요하지 않다면 괜찮다고 생각이 들었습니다. 그리고 나중에 식물 물 주기 프로젝트와 연결해서 사용해보려고 합니다. 1. 사전지식 쌓기 DHT11은 NTC 방식으로 온도센서와 프로세서를 포함하고 있고 트리거 신호에 의해 온도와 습도 값을 40bit로 보내어 줍니다. 40bit에는 습도(상위 8Bit, 하위 8bit) + 온도(상위 8Bit, 하위 8bit) + Parity Bit(8bit)로 되어 있습니다. 0001 0101 0000 0000 + 0001 0110 000..

Embedded/Arduino 2024.03.07

초음파 센서 NT-TS601를 이용한 초음파 자(Ruler) 제작하기

안녕하세요. 남은 초음파 부품이 이것을 어떻게 할까 하다가 이제 생활에 필요한 것도 만들어 사용하자고 생각하여 초음파 자를 만들어 보았습니다. 완벽한 것은 아니고 값이 초음파 값 튀는 것도 잡아 주어야 하고 기구적인 것도 보완해야 좀 더 편하지 않을까 하는데요. 우선 만들어 본 것들을 공유해 보겠습니다. 1. 초음파 이론 초음파 센서는 일정한 간격으로 높은 주파수 사운드 펄스를 통하여 짧게 소리를 발사합니다. 이러한 것들은 소리의 속도를 통하여 공기 중에 전파됩니다. 만약 그것들이 개체에 충돌한다면 센서에게 에코 신호로 반사되어 올 것이고 이러한 것은 시간-에코에 방사하고 도달하는 기간-을 통하여 목표까지의 거리를 산정하게 됩니다. - 음속은 대기의 온도에 영향을 받습니다. 대기의 온도(T℃)를 알고 있..

Embedded/Arduino 2024.02.22

아두이노 나노 + SZH-RFBB-019 (433MHz RF무선송수신 모듈) 테스트 – 여러 개 송수신 테스트

안녕하세요. 지난번 HC-12보다 가격이 더 싼 모듈을 가지고 433MHz 통신 테스트를 해보려고 합니다. 이번 테스트는 수신(Recevie) 모듈 2개와 송신(Send) 모듈 1개로 한 곳에서 송신 시 여러 곳에서 받을 수 있는지, 송신 2개, 수신 1개로 구성해서 여러 곳에서 송신해도 한 곳에서 수신 가능한지 확인해 보았습니다. 사실 주파수 대역만 같다면 보내고 받는 거야 크게 문제없다고 생각이 들지만, 그래도 실제로 확인해 보아야 이 모듈도 가능하다고 보고할 수 있지 않을까 합니다. ^^ 소스는 공개된 몇 가지가 있는데 그중에 빠르게 테스트해 볼 수 있는 내용을 참조해서 수정 작업해 보았습니다. 아두이노에서 433MHz 송수신 모듈 간 통신을 해주기 위해서 패킷을 만들고(Encoding), 받은 쪽..

Embedded/Arduino 2024.02.20

W5100S-EVB-Pico를 이용해서 MQTT 발행(Publish) 해보기

안녕하세요. IoT 관련해서 Raspberry Pi의 유선기반 보드를 찾다가 W5100S를 가지고 테스트해 보기로 하였습니다. 예전에 MicroPython 컴파일해서 올리는 작업은 했지만, MQTT 샘플소스로 테스트해보지 않아서 확인 겸 작업해 보았습니다. 1. W5100S-EVB-Pico 스펙 - 간단하게 홈페이지에 나와 있는 정보를 가져왔습니다. 2. MQTT 동작을 위한 초기 설정 및 패키지 설치 - 간단한 설치 등은 할 수 있다고 생각하고 적어보겠습니다. 1) W5100S에 MicroPython 설치 - MicroPython으로 코드 작업을 하기 위해서 github에서 release의 최신 rp2_w5100s_20221111_v2.0.0.uf2 파일을 다운로드한 후 EVB 보드의 BOOT_SEL ..

아두이노 나노 + HC-12 (433MHz RF 통신) 테스트 4편 – 여러 개 모듈 송수신 송수신 테스트

안녕하세요. 3편에 이어 HC-12를 테스트해 보려고 합니다. 여러 개가 수신되는지 궁금해서 사실 3개를 구매했습니다. 그래서 이번 편에서 1개를 송신 2개를 수신으로 해서 테스트를 해보았습니다. 1. 하드웨어 구성 내부 테스트해 보기 위해서 USB 공유기에 3개 모듈을 연결했습니다. 사실, USB는 물리적으로 사용 전류 양이 있다 보니 한 포트에 외부 전원 없이 연결하는 것을 추천하지는 않습니다. 지금은 최소한의 모듈 테스트이고 사진 찍기도 편해서 ^^; 이전 내용에서 작동시켰던 것처럼 아두이노 나노에 HC-12를 장착하여 한 세트로 해서 3개를 만들었습니다. 2. 소프트웨어 구성 한 개에 송신 소스를 업로드시키고 나머지 2개에 수신 소스를 업로드시켰습니다. 그리고 AT 커멘드로 동일한 통신속도, 채널..

Embedded/Arduino 2024.01.31

아두이노 나노 + HC-12 (433MHz RF 통신) 테스트 3편 – 송수신 테스트 (거리체크)

안녕하세요. 2편에서는 HC-12 설정하는 방법을 확인해 보았습니다. 이번에는 실제적인 거리를 확인해 보겠습니다. HC-12 거리 테스트를 하기 위해서 소스를 조금 변경하여 송신과 수신을 나누어 생각해 보도록 하겠습니다. 한쪽을 송신(보내는 쪽), 다른 한쪽은 수신(받는 쪽)으로 소스를 나누어 코딩합니다. 송수신 소스는 https://github.com/daar/HC-12 내용을 참조했습니다. 1. 프로그래밍할 시나리오 - 송신 쪽에서 카운트한 값을 1초마다 전송합니다. 보낼 때마다 LED 점멸하도록 합니다. 수신 쪽은 버퍼를 지속해서 검사를 하다가 값이 들어오면 출력해 주고 LED 점멸하도록 합니다. 2. 송수신 별 소스코드 - 송수신 소스 코드 자체는 크게 차이가 나지 않습니다. 1) 송신 쪽 소스코..

Embedded/Arduino 2024.01.30

아두이노 나노 + HC-12 (433MHz RF 통신) 테스트 2편 - AT COMMAND

안녕하세요. 1편이 하드웨어 설정이었다면 2편은 HC-12를 어떻게 환경 설정하는지 알아보도록 하겠습니다. 1. AT COMMAND로 HC-12 환경설정 - 하드웨어 준비가 끝났다면, AT COMMNAD로 통신은 잘 되고 있는지 확인해 볼 필요가 있습니다. 다시 확인할 부분은 HC-12의 SET 핀에 GND가 연결되어 있어야 HC-12와 아두이노 나노가 통신할 수 있는 상태가 됩니다. 2. 통신 코드 작성 - 이제 모듈과 시리얼 통신하는 간단한 코드를 작성해줍니다. 만약 모듈 2개가 동일하게 설정되어 있다면 그냥 사용해도 됩니다. (초기 통신속도는 9600bps 설정되어 있습니다.) #include SoftwareSerial HC12(2,3); // HC-12 TX Pin은 D2(RX용)에, HC-12 ..

Embedded/Arduino 2024.01.27

아두이노 나노 + HC-12 (433MHz RF 통신) 테스트 1편- H/W설정

안녕하세요. 이번에서 433MHz 모듈과 아두이노 나노 연동시키는 작업을 해보겠습니다. 우선, 433MHz 주파수 특징을 살펴보겠습니다. 1. 433 MHz 설명 - 극초단파로 표현되며 인식거리는 50~100m라고 나와 있지만 안테나 등 출력에 따라 거리가 멀어질 수 있습니다. (참조 : RFID 솔루션 제공 가능 http://threej.co.kr) * RF의 이론을 조금 더 깊이 보려면 아래 링크를 참고하시면 됩니다. http://www.rfdh.com/bas_rf/begin/rfbound.htm RF의 범위는 어디까지인가? RF의 정의 자체는 그럭저럭 납득이 가더라도, 실제로 RF라는 분야를 처음 접하는 사람이라면 사실 어디까지가 RF이고, 또 통신이란 것과는 무엇이 다른지 헷갈리는 경우를 많이 보..

Embedded/Arduino 2024.01.25

Raspberry Pi 4(Bookworm)에서 WiringPi 설치해서 사용하기

안녕하세요. Raspberry Pi에서 GPIO를 쉽게 사용하기 위해서 WiringPi 라이브러리를 이용했습니다. 그런데 이제는 메인 개발자분이 지원(support) 않고, 홈페이지도 중단시켜 놓았습니다. 최신 bookworm 64bit OS에서 사용할 수는 없는 건가 찾아보다가 아직은 github에 남겨놓은 자료가 있어 참조해서 설치해 보았습니다. 소스 전체를 받아 다시 컴파일해서 사용하는 방법도 있지만, 패키지화 버전을 다운로드 바다 쉽게 설치할 수도 있어 이 방법을 이용해서 작업해 보았습니다. 1. WiringPi 64bit 버전 다운로드 및 설치 - github로 들어가면 비공식 mirror라고 되어 있습니다. - WiringPi 저장소로 들어가면 운영자가 보관하고 있다고 하면 읽기 전용으로 변경..

MPU-9250 기울기 센서 + 아두이노 나노 연동 2편

안녕하세요. 오늘은 지난번 MPU-9250 HW 편에 이어, MPU 9250 프로그래밍 소스 관련해서 한번 확인해 보려고 합니다. 우선 인터넷에서 검색해 본 결과 3가지 정도로 소스 형태가 있는 듯했습니다. 첫 번째로 기본값(RAW)을 바로 출력해 주는 소스 두 번째로 실제 모듈 값을 저역통과 필터와 상보 필터 등 이용해서 진동에 취약한 부분을 보완한 소스 세 번째로 하드웨어에서 지원해 주는 DMP(Digital Motion Processing)를 사용하는 방법이 있었습니다. - 확인하는 방법은 첫 번째와 세 번째 공개된 소스를 참조해서 작동해 보도록 하겠습니다. 1. 배 선 - 연동 1편에서와 동일하게 하고 추가로 아두이노 나노의 D2(INT 0)라고 적힌 곳과 MPU-9520에 INT라고 적힌 곳을 ..

Embedded/Arduino 2024.01.21

MPU-9250 기울기 센서 + 아두이노 나노 연동 1편

안녕하세요. 오늘은 MPU-9250 기울기 센서와 아두이노 나노를 연동해 보는 작업을 해보려고 합니다. 그러기 위해서 사전 지식을 쌓고 데이터를 출력해 보겠습니다. 1. 기울기 센서에 대해서 1) 기울기 센서 기울기 센서를 사용하는 것에 왜 9축이나 필요할까 궁금증이 들 수가 있습니다. 혹시 다다익선이라는 말이 있어서일까요? ^^ 간단하게 9축의 역할이 무엇인지 확인해 보겠습니다. (1) 가속도 센서 센서에 가해지는 가속도를 측정합니다. 즉, 평행한 상태의 정지 상태일 경우, X, Y, Z 축은 0일 것입니다. 여기에 센서를 가속운동을 하였을 경우 운동 방향에 해당하는 축에 더해진 가속도가 출력됩니다. 2) MPU-9250 설명 데이터 시트상에 특징으로 Gyroscope, Accelerometer, Ma..

Embedded/Arduino 2024.01.20

Raspberry Pi 4에 Pi pigpio 설치해서 GPIO로 LED Blink 해보기 (signal 함수 추가)

안녕하세요. 1. pigpio 테스트 이유 Raspberry Pi 4(Bookworm 64bit)에서 작은 프로젝트로 진행하기 위해서 WiringPi를 설치하려고 했는데 apt로 설치가 되지 않았습니다. - 이유인 즉 개발자가 더 이상 지원하지 않고, 사이트까지 접속되지 않게 내려버렸기 때문입니다. 그러나 기존에 사용했던 github에 소스가 남아 있었고, fork 해서 다른 개발자들이 사용하고 있었습니다. - 대안으로 검색하다가 pigpio library가 있다는 것을 알게 되어 테스트하였습니다. 2. 간단한 pigpio 설명 - 라이브러리 사이트 내용을 가져왔습니다. pi 모든 버전이 된다고 했지만, pi 5는 아직 지원되지 않는다고 합니다. pigpio is a library for the Rasp..

[MQTT] Raspberry Pi에서 Grafana Dashboard 생성해 보기

안녕하세요. 이제 MQTT 전달로 전달한 데이터를 InfluxDB로 저장까지 했다면 결과 값을 멋있게 보이게 하는 것이 남아있습니다. 그것을 하기 위해서는 이전 내용에서 Grafana를 이미 설치하였습니다. [MQTT] CM4 RaspberryPi 에 Grafana 설치 안녕하세요. MQTT 연동을 위해서 InfluxDB를 설치할 때처럼 공식적인 저장소에서 설치패키지를 다운로드하여서 설치를 진행하도록 해보겠습니다. 1. Grafana 다운로드 - RaspberryPi에 GPG key를 추가합니 remnant24c1.tistory.com 그리고 값을 확인하기 위해서 mosquitto, influxdb, Node-RED가 작동하고 있어야 합니다. 1. Grafana 연결 - Grafana를 설치한 Raspb..

[MQTT] Raspberry Pi에서 Node-RED FLOW 생성하기 2 (influxDB 연결)

안녕하세요. 이전 Node-RED Flow에서 MQTT 데이터 받는 것을 확인했다면, 이제 InfluxDB에 데이터를 저장하는 하는 것을 해보려고 합니다. 실제 Query를 작성할 필요 없이 간단하게 노드 연결과 설정을 통해서 간단하게 작업을 할 수 있습니다. 1. InfluxDB Node 생성 - Node-RED의 Nodes에서 storage 항목 안에 있는 influxdb out 노드를 선택해서 Flow1 화면에 끌어 놓습니다. 그리고 끌어 놓은 노드를 더블 클릭하여 Properties를 설정합니다. 2. InfluxDB 노드 설정 - Server 항목에 연필아이콘을 클릭해서 새로운 서버를 설정 및 추가합니다. - 이전 내용에서 InfluxDB 정보를 입력합니다. Name에 서버 별칭을 넣고 호스트는..