본문 바로가기

코딩124

ESP32 / ESP8266 에서 DS18B20 으로 실시간 온도 웹서버에 출력하는 방법 ESP32 와 ESP8266 에 DS18B20 온도 프로브를 이용해서 실시간으로 온도 값을 웹서버에 출력해보자. 결과를 미리보자면 위의 사진처럼 실시간 온도 값을 웹페이지를 통해서 확인할 수 있다. 회로는 위와같이 구성하면 되는데, 위 회로는 ESP8266 기준으로 되어있다. ESP32 의 경우 자신이 사용하고 싶은 디지털 핀을 사용하면 되겠다. #ifdef ESP32 #include #include #else #include #include #include #include #include #endif #include #include // Data wire is connected to GPIO 4 #define ONE_WIRE_BUS D4 // Setup a oneWire instance to commu.. 2023. 8. 13.
아두이노 ESP8266 에서 DS18B20 방수 온도 센서 프로브 사용방법 ESP8266 에서 아두이노 IDE를 이용하여 DS18B20 방수형 온도 센서 프로브를 사용하는 방법을 알아보자. DS18B20 방수형 온도센서 방수형 온도센서 프로브 안에는 이런 센서가 들어가 있는데 센서 원형을 사용해도 된다. ESP8266 ( 다른 아두이노 보드도 가능 ), 4.7k 저항, DS18B20 센서, 브레드 보드, 점퍼와이어 기생 모드 - 센서라인으로 전원을 끌어와서 센서를 사용 일반 모드 - 전원을 직접 공급해주어 센서를 사용 코드를 업로드 하기전에 ESP8266을 사용하는 경우, 아두이노 IDE( 코드 업로드 프로그램 ) 에서 ESP8266 관련 설정이 되어 있어야 한다. 아두이노 IDE 에서 라이브러리 매니저를 열어서 관련 라이브러리를 설치해주어야 한다. ESP8266 에는 OneW.. 2023. 8. 13.
아두이노 IDE에 ESP32 개발환경 세팅하기 요새 ESP8266 대신에 ESP32 가 대세가 되고 있는 추세인듯하다. 아두이노IDE (아두이노 코딩 프로그램)에서 ESP32 코딩이 가능하다. 그 방법을 정리해서 알려드리고자 한다. 우선 아두이노 IDE를 실행한다. 없다면 설치를 하고 따라오면 된다. https://www.arduino.cc/en/software Software Open-source electronic prototyping platform enabling users to create interactive electronic objects. www.arduino.cc 자신의 운영체제에 맞게 아두이노 IDE를 설치하면 된다. 아두이노 IDE를 실행하고 메뉴바 >> 파일 >> 환경설정 을 차례로 클릭하여 환경설정 창을 띄워준다. 사진에 표.. 2022. 9. 7.
ESP32 wifi 접속을 스마트폰으로 설정하는 방법 wifi manager ESP32 를 사용하는 이유는 보통 IoT 제품을 개발하거나 WIFI로 인터넷 접속이 필요하기 때문이다. 그런데 문제는 개발이 끝난후 미리 설정한 WiFi 정보가 아니면 WiFi 를 접속할 수 없어서 코드를 다시 열고 WiFi 정보를 수정한 뒤에 다시 업로드를 했어야 했다. 이런 방식을 하드코딩 방식이라고 한다. 개발이 쉽지만 사용성이 너무 떨어지는 장단점이 있는 것이다. 이번에 소개할 것은 ESP32 에서 코딩을 따로 수정할 필요 없이 스마트폰으로 ESP32의 wifi 접속 정보를 수정해서 wifi접속을 할 수 있는 기능이다. 필자도 아래의 글을 통해 참고한 내용으로 원문으로 읽어볼 수 있다면 읽어보는 것을 추천한다. https://randomnerdtutorials.com/esp32-wi-fi-man.. 2022. 9. 7.
ESP32 MySQL 데이터베이스에 데이터 등록 조회 하는 방법 예전에는 웹개발자 또는 앱개발자들이 많이 다루던 데이터베이스를 이제는 하드웨어 개발자들도 다룰줄 알아야 하는 시대가 왔다... IoT 시대가 되면서 다양한 상태값을 온라인 상에 저장하고 데이터를 공유하고, 다른 데이터를 조회할 줄 알아야 제품을 개발할 수 있게되었다. 그래서 이번에 다뤄볼 내용은 ESP32 를 이용해서 DB(데이터베이스)에 접근하여 데이터를 등록하거나 조회하는 방법을 다뤄보려 한다. 우선 MySQL 이나 Maria DB를 설치되어 있어야 한다. 이 내용까지 다루려면 너무 길어지니깐, 직접 찾아서 설치하길 바란다. 필자는 MySQL로 진행하겠지만, Maria DB는 MySQL 을 호환하기 때문에 Maria DB로 설치해서 따라해도 된다. Maria DB가 설치하기 더 편하다. MySQL은 .. 2022. 9. 7.
아두이노 바코드 리더기로 바코드 찍는 방법 GM-65 아두이노에서 바코드 리더기 사용하는 방법에 대해서 안내하고자 한다. 그 누구도 제대로 알려주지 않아서 필자가 데이터시트 다 찾아보면서 아두이노에서 바코드를 가장 편하게 읽어 들일 수 있게 하는 방법이니, 해당 모듈을 사용하실 분들에게 도움이 되었으면 좋겠다. 왜 GM-65 인가? 디바이스마트에서 보이는 바코드 리더기 검색을 해보면 특정 업체밖에 검색이 안된다. DYSCAN 업체인데 해당 업체의 데이터시트를 봐도 부족함 투성이다. 무슨 데이터 시트가 12페이지가 전부이고, 내용도 다 허술하기 그지없다. 이런 제품을 아두이노에서 호환된다고 팔고 있는 실정이다... 문제는 인터페이스가 USB가 기본이라서 아두이노와 해당 바코드 리더기만 있다고 해서 사용할 수가 없다. 아두이노에 USB쉴드도 있어야 된다. 컴퓨.. 2022. 9. 7.
waveshare 전자잉크 폰트크기 변경하는 방법 외주 개발 의뢰로 접하게된 waveshare 의 전자잉크 디스플레이... 폰트 사용에 있어서 문제가 있는 것을 확인했다... 기존의 유명한 U8glib 으로 waveshare 의 디스플레이 지원이 공식적으로 되지 않기에 waveshare 에서 제공한 라이브러리로 개발을 진행중에 있다. https://diyver.tistory.com/198 ESP32 에서 waveshare 전자잉크 디스플레이 사용하는 방법 이번에 외주 개발 의뢰를 받았다. waveshare 사의 EPD 즉 전자잉크 디스플레이를 사용한 제품 개발이었어서 처음사용해보는 김에 정리를 해보려 한다. 일단 ESP32 나 ESP8266 이나 아두이노등 대부분의 diyver.tistory.com waveshare EPD(전자잉크 디스플레이) 처음 사.. 2022. 9. 7.
ESP32 에서 waveshare 전자잉크 디스플레이 사용하는 방법 이번에 외주 개발 의뢰를 받았다. waveshare 사의 EPD 즉 전자잉크 디스플레이를 사용한 제품 개발이었어서 처음사용해보는 김에 정리를 해보려 한다. 일단 ESP32 나 ESP8266 이나 아두이노등 대부분의 MCU와 라즈베리파이에서 waveshare의 전자잉크 디스플레이를 사용할 수 있다. 다만 SPI 통신으로 사용해야 하는데, 귀찮기 때문에 waveshare의 전용 커넥터와 통신칩을 이용하는 것이 편하긴 하다. 본 포스팅에서는 ESP32 로의 사용을 다루고 있으며, 전용 커넥터를 이용하여 편하게 개발하는 상황을 담고있다. 사용된 부품 목록 1.54 인치의 전자잉크 디스플레이 E-INK raw display >> 해외 구매로 진행되었다. https://www.waveshare.com/product.. 2022. 9. 7.
라즈베리파이 피코 버튼 입력하는 방법 (PULL UP 회로이용) 거의 모든 MCU의 기본이 되는 버튼 입력받는 방법을 라즈베리파이 피코에서도 해보려한다. 이제부터는 빵판(브레드보드)이 있어야 하겠다. 준비물은 라즈베리파이 피코, 빵판, 점퍼케이블, 버튼 이렇게만 있으면 된다. 대부분의 MCU에는 내부적인 PULL UP 회로가 구성이 다 되어 있다. 라즈베리파이 피코도 마찬가지로 PULL UP 회로가 내장되어 있기 때문에 코딩에서 PULL UP 회로를 사용하겠다고 명령만 해주면 된다. PULL UP 회로를 뭐고, 왜 써야하는지 잘 모르겠다면 아래 글을 읽고 오면 되겠다. https://diyver.tistory.com/18 [아두이노 강좌] 예제로 배우는 아두이노 #7 DigitalInputPullup, 아두이노 내장 pullup 저항 이용하기 - 아두이노 내부 회로에.. 2022. 7. 22.
라즈베리파이 피코 내장 온도센서 사용하는 방법 라즈베리파이 피코 내부에는 자체적으로 온도센서가 내장되어 있다. 12비트 ADC 로 값을 읽어 올 수 있는데, 이번에는 그 방법을 살펴보고 실제로 온도값을 읽어오는 시간을 가져보도록 하겠다. 온도센서는 라즈베리파이 피코의 ADC 4핀에 연결되어 있다. 육안으로 보드를 살펴보면 라즈베리파이 피코 핀에는 ADC 4 핀은 보이지 않는다. ADC 4는 오로지 온도센서만을 위한 핀인 것이다. GPIO 핀을 사용해야 하니 당연히 machine 라이브러리를 포함시켜야 하고, delay 를 걸어줘야 하니, utime 라이브러리도 포함시켜야 하겠다. 아래 코드를 복붙해서 Thonny 를 이용하여 실행해보자. import machine import utime sensor_temp = machine.ADC(4) conver.. 2022. 7. 22.
라즈베리파이 피코 시리얼 통신 여러가지 사용법 이번에는 라즈베리파이 피코를 이용해서 PC와 시리얼 통신을 하는 여러가지 상황을 다뤄보려한다. (해당 글은 Thonny 프로그램을 이용하여 라즈베리파이와 통신하므로 시리얼통신에 있어서 다른 프로그램과 차이가 있을 수 있다.) 1. 키보드 입력 받기 가장 기본이 되는 키보드 입력을 받아서 작동을 하는 코드이다. user_name = input("로그인 이름을 입력하세요 : ") while user_name != "DIYver": print("등록된 이름이 없습니다. 다시 입력해주세요.") user_name = input("로그인 이름을 입력하세요 : ") print("DIYver님 안녕하세요 ~") 피코에 올려서 테스트를 해도 되고, 파이썬 자체에서 실행해도 될 정도니, 편한대로 하면 되겠다. 파이썬의 기.. 2022. 7. 21.
라즈베리파이 피코 상세 스펙을 알아보자 라즈베리파이 피코는 아두이노와 같은 마이크로 컨트롤러이다. 남성 손에 올려놓고 보자면 크기는 상당히 작은 편이다. 다른 아두이노 보드 들과 비교해보면 아두이노 나노보다는 큰 편이다. 위에서부터 아두이노 우노 / 라즈베리파이 피코 / 아두이노 나노 / 아두이노 프로 마이크로 순으로 되겠다. 어찌보면 아두이노 우노와 나노는 스펙이 같기 때문에 아두이노 나노랑 비교하자면 라즈베리파이 피코가 소형 프로젝트에서는 더 불리할 것으로 보인다. 빨리 아두이노 프로미니나 프로마이크로 처럼 소형화된 라즈베리파이 피코를 찾는다면 위처럼 소형화 된 보드가 따로 있긴하다. 라즈베리파이 RP2040 칩만 따로 해서 직접 개발한 개발보드인듯 하다. 성능은 RP2040 이랑 똑같아서 개발 방법도 같다. 크기는 위에서 확인한대로 소형.. 2022. 7. 21.
라즈베리파이 피코(Raspberry pi PICO) 개발환경 세팅하기 micropython 라즈베리파이 피코는 아두이노처럼 각종 센서를 읽고 구동기를 작동시키는 마이크로컨트롤러이다. 코딩은 micropython 과 C/C++ 로 할 수 있다고 한다. 공식 홈페이지에 방문해서 알아보자. https://www.raspberrypi.com/documentation/microcontrollers/ Raspberry Pi Documentation - Microcontrollers The official documentation for Raspberry Pi computers and microcontrollers www.raspberrypi.com 공식 홈페이지를 방문하면 위의 화면처럼 나오는데, 여기서 MicroPython 을 클릭하고 화면을 조금 내리면 UF2 file 다운받는 링크가 있다. 자신의 .. 2022. 7. 21.
라즈베리파이 피코(Raspberry pi PICO)와의 첫만남! 지금껏 대부분의 임베디드 시스템은 ATmel 계열 MCU를 사용했었다. 아두이노 우노나 메가 등이 그렇다. (ATmega328, ATmega2560 등) ATmel 계열 MCU가 좋았던 것이, 코딩을 할 수 있는 환경이 다양해서 좋았다. ATmel studio(AVR studio), 아두이노 IDE, CodeVisionAVR 위의 프로그램이 대표적인 코딩 프로그램들이고, 현재는 아두이노 IDE가 주를 이루고 있다. 다양한 라이브러리와 코딩이 쉬워서 짧은 개발기간이 무엇보다 큰 장점이라 할 수 있겠다. 다만, 코드가 무거워지기 때문에 전통적인 레지스트리값 참조를 통한 코딩보다는 작동이 느리다는 단점이 있다. 단점이라고는 하지만, 일반적인 환경에서는 그 차이조차 느끼기 힘들다. 라즈베리파이는 아두이노 개발 .. 2022. 7. 20.
아두이노 delay 없이 1초마다 작동하는 코드 아두이노를 사용함에 있어서 고수가 되어 갈 수록 delay() 사용을 지양해야 한다. 이번에는 delay() 함수 없이 1초마다 실행하는 코드를 올려본다. 아래 코드를 복붙해서 아두이노 코딩에 쓰면 되고, loop() 함수 안에 조건문 안쪽에다 1초 마다 실행시킬 명령을 넣으면 된다. unsigned long pre_timer = 0; int repeat_time = 1000; void setup() { } void loop() { if(millis() > pre_timer + repeat_time) { pre_timer = millis(); //1초마다 실행되는 명령 } } unsigned long 타입으로 타이머를 기록하므로 적어도 30일 동안 아두이노가 켜져있어도 정상 작동하게 된다. 하지만 너무 .. 2022. 7. 18.