목록RaspberryPi (73)
행복한 하루
안녕하세요. PICO에서 소리 출력이 가능할까 궁금해서 인터넷 검색하는 중에 관련된 내용이 있어 테스트해 보았습니다. 하드웨어 적인 부분은 최소화하고 출력할 수 있게 해주는 공개해 주시는 소스가 있어 감사하게 테스트해 보았습니다. 기본적으로 MP3를 출력하려면 디코더와 앰프도 필요한데, 앰프는 앰프 포함된 스피커를 이용하고 디코더는 모듈로 파는 것을 사용하면 됩니다. 그러나 디코더 부분도 소프트웨어적으로 공개된 것이 있어 사용할 수 있습니다. CircuitPython로는 MP3 출력하는 예제들이 있었지만, MicroPython로 공개된 MP3 플레이어 소스는 찾지 못했습니다. 그러나 wav 파일을 재생하는 소스를 찾을 수 있어서 확인해 보았습니다. MP3 디코더 모듈을 사용하는 내용은 다음에 테스트해 볼..
안녕하세요 주변이 얼마나 시끄러운가를 알고 싶을 때 소음측정기가 필요한데 현재 판매하고 있는 모듈들이 있어서 확인해 보았습니다. 모듈 제품을 검색해 보면 가격이 싼 모듈은 마이크에 LM2904(OP-AMP)를 장착해 판매하고 있고 조금 비싼 모듈은 주파수 가중치를 적용한 칩을 부착해서 그런지 고가에 판매되고 있었습니다. 이번에 테스트한 모듈도 가격이 조금 비싸게 느껴졌습니다. 시중에 판매되고 있는 저가형 소음측정기보다 비싼 가격이었기 때문입니다. 1. 제품확인 이전에 데시벨 단위 확인 - 아래의 모듈 테스트는 생각보다 간단합니다. 그러나 음압과 주파수 등 이론에 대한 이해가 먼저 필요했습니다. 직접내용을 적으려고 했는데, 이해가 부족한 관계로 링크로 대체하도록 하겠습니다. 하단에 5~7을 한번 읽어 보시..
안녕하세요. 이전 Arduino Nano IoT 33을 이용해서 DC 전압 측정 모듈을 테스트해 보았습니다. Pico 소스를 적용하려고 하니 약간의 변경이 필요해서 변경된 부분에 대해서 공유드립니다. 기본 SZH-SSBH-043 모듈을 이용한 전압 계산식 내용은 이전 글을 참조하시면 됩니다. Arduino Nano IoT 33을 이용해서 DC 전압 측정 센서 테스트(SZH-SSBH-043) 안녕하세요. 배터리 패키지에서 잔량을 신호로 주는 것이 있으면 좋겠지만 그런 배터리 패키지는 고가이고 일반적인 충전지에서 전압을 기반으로 잔량을 확인하고 있다고 합니다. 그리고 SoC(Sta remnant24c.tistory.com 1. Raspberry Pi PICO의 ADC 확인 - ADC(Analog to Dig..
안녕하세요. 이전 내용(“Raspberry Pi에서 MariaDB Docker Container와 Python 연동하기 (Docker-compose 사용)”)에서 MariaDB와 MQTT를 위한 다른 Container까지 생성하는 스크립트를 작성해 보았습니다. 이번에는 MQTT로 데이터를 보내서 MariaDB에 저장할 수 있도록 Broker 역할의 프로그램을 Python으로 작성해 보도록 하겠습니다. 1. 이전 내용 확인 - Docker Compose를 통해 Container가 동작하고 있다고 생각하고 내용을 진행하겠습니다. pi@raspberrypi:~/mariaDB_compose $ docker-compose up -d 2. Table 생성 - 먼저, Maria DB Container에 연결합니다. ..
안녕하세요. 이전 내용(“Raspberry Pi에 Docker로 MariaDB 설치하기”)에서 MariaDB를 설치해 보았습니다. 이번에는 Python을 이용해서 연결해서 데이터를 출력해 보는 것을 해볼 것입니다. 최종적으로는 Mosquitto MQTT에서 수신 데이터를 MariaDB에 저장하는 것입니다. 그리고 Docker-compose를 이용해서 설치 자동화까지 생각해서 테스트해보려고 했습니다. 1. 사전 준비 - 이전 내용에서 MariaDB Docker Container를 생성했다면, 이번에는 추가로 DB와 연동하는 내용입니다. 그러나 생성한 MariaDB container는 ubuntu가 아니라 Alpine Linux라서 MQTT관련된 몇 가지 라이브러리가 설치가 되지 않아서 MQTT 관련된 데이..
안녕하세요. 이번에는 MQTT 데이터 저장 혹은 기타 데이터 저장 용도로 사용하기 위해서 무료 라이센서은 MariaDB를 Raspberry Pi에 설치해 보았습니다. 그냥 되겠거니 했는데 도커로 바로 설치가 되지 않아서의 아키덱처에 맞는 버전을 선택해서 설치해주어야 했습니다. 그냥 쉽게 apt-get install mariadb-server로 해봐도 되지 않을까 합니다. 1. 기본 준비사항 1.1 도커 설치 - Raspberry Pi에 Docker를 간단하게 명령어로 할 수 있습니다.(하단 참고사이트 참고) 그런데 docker-compose 2.x 버전을 도커와 같이 curl 명령어로 설치하려고 잘 안되어서 참고 사이트처럼 버전은 낮지만 쉽게 설치하였습니다. $ sudo pip3 install docke..
안녕하세요. 모듈을 커널에 추가 시 매개변수(Parameter)를 만들어 인수를 받을 수 있도록 해봅니다. 이렇게 하는 것을 모듈을 커널에 추가할 때 특별한 값을 모듈에 내부에 해서 사용할 수 있게 하려고 하는 것입니다. main 함수의 매개변수(argc, argv)와 유사하게 사용하기 위함입니다. 1 모듈 기본 형태 준비 - 이전 내용과 유사하게 드라이버 틀이 만들어진 day1 폴더를 복사해서 수정합니다. pi@raspberrypi:~/DriverStudy $ cp day1 day12_param -r pi@raspberrypi:~/DriverStudy $ cd day12_param pi@raspberrypi:~/DriverStudy $ mv day1_module.c day12_param.c - Make..
안녕하세요. 이전에 내용에서는 단순 GPIO를 이용한 버튼을 확인해 보았습니다. 이번에는 좀 더 정확하게 처리할 수 있는 Interrupt 신호를 가지고 버튼신호를 확인해 보겠습니다. 1. 사전 준비 1) 하드웨어 준비 - 간단한 Tact Switch를 한 개 준비합니다. 그리고 Raspberry Pi 핀 17번에 한쪽을 연결하고 나머지 한쪽은 3.3V(+) 출력 단자를 연결합니다. 2) 소프트웨어 준비 - 이전 내용과 유사하게 드라이버 틀이 만들어진 day1 폴더를 복사해서 수정합니다. pi@raspberrypi:~/DriverStudy $ cp day1 day11_irq_button -r pi@raspberrypi:~/DriverStudy $ cd day11_irq_button pi@raspberry..
안녕하세요. 지난번 Timer를 사용해서 LED제어해 보았는데, 이것보다 좀 더 짧은 주기를 사용가능한 타이머를 확인해보려고 합니다. 고분해능 타이머는 jiffies 단위로 작동하는 타이머와 달리 나노초 단위로 동작시킬 수 있습니다. 조금 상세한 내용은 하단 링크를 참조하면 hrtimer 프레임워크에 대한 내용을 볼 수 있습니다. 1. 사전 준비 - 이전내용과 동일하게 기존에 드라이버 뼈대에 내용을 붙이는 형식으로 합니다. 그래서 처음내용의 소스를 복사해서 이름을 바꾸고 Makefile 내용도 수정해 줍니다. pi@raspberrypi:~/DriverStudy $ cp -r day1 day9_hrTimer pi@raspberrypi:~/DriverStudy $ cd day9_hrTimer/ pi@rasp..
안녕하세요. 이번에는 Timer를 사용하는 방법을 확인해보려고 합니다. 드라이버가 추가되면 LED가 켜지고 타이머가 초기화 4초 초기화되면서 카운트하기 시작합니다. 시간이 되면 LED가 꺼지는 것을 테스트해 봅니다. 1. 하드웨어 연결 - 간단한 점퍼 케이블과 LED 하나 정도만 있으면 됩니다. 안전하게 테스트 위해서는 브래드 보드에 220Ω~330Ω정도 저항 뒤에 LED를 달아서 테스트해야 합니다. - 라즈베리파이의 GPIO 4 핀에는 LED +극(Anode), Ground핀에는 LED -극(Cathode)을 연결합니다. 2. 사전 작업 - 기존에 작업한 것처럼 드라이버 구조가 만들어진 소스를 이용합니다. day1에서 기초 형태를 복사합니다. pi@raspberrypi:~/DriverStudy $ cp..
안녕하세요. 이번에는 I2C 통신을 이용한 리눅스 센서 드라이버를 만들어 봅니다. 그중에 BMP280 제품으로 기압과 온도를 측정하는 센서 드라이버를 만드는 내용입니다. 현재 단독으로 된 BMP280 센서 모듈을 가지고 있지 않아서 Pioneer600에 장착된 BMP280 센서로 테스트를 진행하였습니다. 개별적으로 가지고 있다면 I2C 배선만 동일하면 문제없이 테스트할 수 있습니다. 그리고 참조 유튜브에서는 컴파일하기 전에 내용이 끝나서 최종 작업과 온도 확인하는 애플리케이션을 만드는 내용을 추가했습니다. 1. BMP280 센서와 연결하기 - BMP180은 가지고 있어서 연결하는 방법만 참조하는 겸 사진을 첨부하였습니다. 만약 개별적 BMP280 센서가 있다면 동일하게 아래와 같이 연결하면 됩니다. 보통..
안녕하세요. 이번 내용은 기존의 GPIO에서 발전된 PWM 기능을 사용해보려고 합니다. 예전 내용에도 PWM 제어가 있지만, Driver 차원이 아니라, 응용프로그램 단에서 사용해본 것이었습니다. PWM의 경우에도 하드웨어서 지원하느냐, 소프트웨어상 구현하느냐에 따라서 주기 등 차이가 발생하기도 합니다. 여기서는 하드웨어에서 PWM 지원해주는 핀을 이용해서 작동시키는 것을 테스트합니다. 1. 사전 준비 - 기존의 GPIO4 내용을 복사해서 사용합니다. - Makefile 파일에서 파일 수정 pi@raspberrypi:~/DriverStudy/day6_pwm $ vim Makefile 2. 소스 수정 1) 소스 수정에 필요한 PWM 함수 확인 (1) struct pwm_device * pwm_request..
안녕하세요. 이번 내용은 Character LCD 제어하는 드라이버를 만드는 내용입니다. 참조 사이트 동영상에는 HD44780 제품을 사용하는 내용인데, 제가 테스트한 것은 조금 다른 제품이지만, 기본적인 CLCD 제어하는 칩이 비슷하다 보니 명령어가 동일하게 작동하였습니다. 2x16 CLCD를 가지고 있다면 핀 맵을 보시고 테스트하시면 됩니다. 그러나 현재 제품은 데이터 8핀을 사용하는 제품이므로 선 연결이 조금 깔끔하지 않을 수 있습니다. 1. 사전 준비 - CLCD 제어도 GPIO 기반이기 때문에 기존 내용을 사용하도록 합니다. - 이전에 내용인 day4_gpio 디렉터리를 day5_clcd로 복사를 합니다. pi@raspberrypi:~/DriverStudy $ cp -r day4_gpio day..
안녕하세요. 이번에는 GPIO(general-purpose input/output) 드라이버 제작해보겠습니다. 간단하게 작은 LED를 준비합니다. 그리고 버튼 구하기가 조금 어려우니 그냥 케이블을 연결해서 확인하는 것으로 테스트해보았습니다. 1. 사전 준비 - 이전에 했던 day3 디렉터리를 day4_gpio로 복사를 합니다. pi@raspberrypi:~/DriverStudy $ cp -r day3 day4_gpio - 기본의 파일 이름을 작업하기 위한 파일로 바꿉니다. 그리고 Makefile의 obj 파일 리스트에서도 바꿔줍니다. pi@raspberrypi:~/DriverStudy/day4_gpio $ mv read_write.c gpio_driver.c pi@raspberrypi:~/DriverSt..
안녕하세요. 이번에 진행된 콘테스트로 잘 끝났습니다. 마지막 결과를 알려주는데, 다른 분들을 위해서 2주간 연장해준 것으로 보입니다. 최종적으로 결과물이 아래와 같이 나왔고, 1등이 10만 원 포인트, 2등 3등이 5만 포인트 3만 포인트로 지급되어 부품들과 음식쿠폰을 교환할 수 있는 것으로 시상되었습니다. 초기 예상한 만큼은 아니지만, PicoW와 MQTT 등 여러 가지 기초지식을 쌓을 수 있는 시간이 된 것 같아서 좋았습니다. 현재 추가로 사물인터넷 주제로 콘테스트가 진행되고 있으니 참고하시면 됩니다. https://make.e4ds.com/contest/?ctidx=9&d= 1. 개발 목적 - 기존 Pico 제품에 Wireless 기능이 추가되었다고 해서 생활에 유용한 정보 전달과 안전에 조금 중점..
안녕하세요. 디바이스 드라이버가 일을 하도록 간단한 작업을 시켜보도록 하겠습니다. 그리고 이전에 장치 번호를 수동으로 입력했는데, 이번에는 알아서 장치 번호가 생성되도록 하는 내용입니다. 1. 사전 준비 - 이전에 했던 day2 디렉터리를 day3으로 복사를 합니다. pi@raspberrypi:~/DriverStudy $ cp -r day2 day3 pi@raspberrypi:~/DriverStudy $ cd day3 - 작업하려는 내용에 맞게 파일 이름을 바꿉니다. 그리고 Makefile의 내용도 변경해줍니다. pi@raspberrypi:~/DriverStudy/day3 $ mv dev_nr.c read_write.c pi@raspberrypi:~/DriverStudy/day3 $ vim Makefil..
안녕하세요. Quest3는 데이터를 업로드해보는 것인데, MS, Amazon 클라우드와 ThingSpeak를 주로 사용하는 것 같아서 다른 분들과 조금 다른 무료 MQTT 사이트를 사용해보려고 HiveMQ Broker 서버로 접속 시도하였습니다. 현재 시점에서는 자료가 많이 없다는 단점이 있었습니다. SSL보안문제로 접속이 되지 않아 개인 계정의 Cloud에는 PicoW로 데이터를 올리지는 못했습니다. (글을 올린 후 확인한 결과 개인 계정으로는 전송 안 되었지만, 전체 MQTT서버로는 전송되는 것을 확인했습니다.) 최신 보드이다 보니 접속 정보가 없고 HiveMQ 사이트가 초기와 다르게 SSL 체크하지 않으면 접속할 수 없게 되었습니다. 그리고 여기에 대한 글도 많이 없었습니다. 그래서 현재 구글링 하..
안녕하세요. Quest2는 Pico W를 사용해보기 미리 프로그램에 맛을 보라고 간단한 MicroPython 설치와 Cloud 서비스 계정을 만들어 보라는 것입니다. 이것을 위해서 웨비나 세미나가 진행되었습니다. 그런데 Cloud 쪽은 시간이 부족해서 다음에 다시 진행한다고 합니다. 그리고 이번 프로젝트에서는 MQTT 통신을 이용해보려고 무료 사이트 접속하는 것을 확인해보았습니다. 1. PicoW에 MicroPython 설치 - https://micropython.org/download/rp2-pico-w/ 에 microPython uf2파일을 PicoW에 다운로드해줍니다. - 이전 Pico 내용과 유사합니다. - MicroPython이 설치되면 장치 관리자에 시리얼 포트로 장치가 나타납니다. - 시리얼..
안녕하세요. 이번에 e4ds에서 라즈베리파이 피코 W(Raspberry Pi Pico W)를 가지고 만들어 보는 콘테스트가 있어서 참가해보았습니다. 국내에서 Raspberry Pi Pico W는 품절인지 잘 구할 수가 없는데, 사이트에서 Quest1을 진행하면 1개 무료 제공해준다고 합니다. 이렇게 모듈 사용법도 배우고, Cloud 사용방법도 배울 겸 참여해보았습니다. Quest1은 우선 피코 W로 어떤 것을 만들어 볼 것인지 계획서를 작성하는 것입니다. 1. 아이디어 소개 및 개요 - 기존 Pico 제품에 Wireless 기능이 추가되었다고 해서 생활에 유용한 정보 전달과 안전에 조금 중점을 두어 아이디어를 생각해보았습니다. - 최근 들어 실외기, 김치냉장고, 콘센트 등 가정에서 화재 많이 발생하고 있..
안녕하세요. 4단계로 해서 최종 마무리를 하였습니다. 성능은 예상한 것보다 좋지 못했고, 생각을 깊게 하지 못했고, 끝나고 알게 된 내용이 지만, 급수를 화분에 바로 하는 것이 아니라 화분을 얕은 통에 넣고 습도 센서는 화분에 꽂아서 사용하는 방법을 사용해야 조금 더 정확할 수 있다는 것을 알 수 있었습니다. 감사하게도 퀘스트 인기상과, 열정상을 받게 되었습니다. 그리고 마지막 퀘스트는 정리하는 내용으로 마무리하게 됩니다. 1. 개발과정 1) H/W 기존 개발 내용과 변경된 부분 - 라즈베리파이 제로를 사용하려고 했으나 장착하는 모듈때문에 라즈베리파이 4 정식버전 사용 - 라즈베리파이에 ADC, DAC 관련된 모듈이 장착되어 있지 않아서 다른 칩은 검토 - PCF8591 칩을 사용하여 아날로그 데이터 확..