본문 바로가기

아두이노38

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.
아두이노 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.
아두이노 wifi보드, Wemos D1 mini 스펙과 핀맵 아두이노를 사용한 프로젝트에서 최근 Wifi를 이용하는 경우가 많아지고 있다. 각종 졸업작품이나 과제, 제작대회에서 IoT 제품을 출품하기 때문이다. IoT 제품을 개발함에 있어서 기존에는 아두이노에 wifi 모듈을 구매하여 추가해주었다면, 최근에는 통합형 보드로 쉽게 개발하는 추세이다. ESP8266 과 ESP32 무선통신 모듈을 이용하는데, 그 중 대중적인 ESP8266을 사용하는 보드 중 가장 작은 사이즈를 자랑하는 Wemos D1 mini 에 대해서 다뤄보고자 한다. 글 쓰고 있는 시점 2022-05-26 의 Wemos D1 mini 최신버전은 아래와 같다. USB가 C 타입으로 나오고 리셋 버튼이 존재하며 I2C 커넥터가 별도로 존재한다. 위의 버전이 4.0.0 이다. 아래 버전들도 핀맵은 같고.. 2022. 5. 26.
아두이노 네오픽셀로 LED 색 조절하는 방법 - 아두이노를 통해 네오픽셀 LED의 색을 원하는 대로 조절해보자. - 아두이노, 네오픽셀, 점퍼선 네오픽셀 관련 라이브러리를 설치해야한다. 아두이도IDE >> 스케치 >> 라이브러리 >> 라이브러리 매니저 순서로 라이브러리 매니저를 실행시킨 후, NeoPixel 을 검색해준다. 이때 대소문자 구별을 정확히 해야한다. 여기서 Adafruit NeoPixel 을 설치해준다. D2(디지털 핀 2번) 과 GND. 5V를 네오픽셀에 연결해주면 된다. // NeoPixel test program showing use of the WHITE channel for RGBW // pixels only (won't look correct on regular RGB NeoPixel strips). #include #ifd.. 2021. 10. 14.
아두이노와 블루투스모듈 ZS-040로 스마트폰과 통신하기 - 아두이노와 스마트폰간의 통신을 하려면 블루투스 모듈을 사용해야 한다. 이번 시간에는 ZS-040 블루투스 모듈을 사용하여 아두이노에서 스마트폰으로 신호를 보내고, 수신하는 방법을 알아보자. - 아두이노, 점퍼케이블, 블루투스모듈(ZS-040, HC-06) ZS-040 은 HC-06과 사용법이 같다. 블루투스 모듈의 TX 는 아두이노의 2번핀 RX 는 아두이노의 3번핀에 연결을 해준다. #include int ledPin1 = 13; char order[100]; bool led_state = 0; SoftwareSerial BTSerial(2,3); //bluetooth module Tx:Digital 2 Rx:Digital 3 void setup() { pinMode(13, OUTPUT); digi.. 2021. 4. 30.
아두이노 PIR 센서로 사람감지하기 - 사람을 감지하는 프로젝트에서 빠지지 않는 PIR 센서의 사용법을 다뤄보도록 한다. - 아두이노(우노, 나노, 메가), PIR센서 const int led_pin = 13; const int pir_pin = 3; int state = 0; // 센서 상태 값 저장 변수(0: LOW, 1: HIGH) int pre_state = 0; int count = 0; void setup(void){ Serial.begin(9600); Serial.println(""); pinMode(led_pin, OUTPUT); pinMode(pir_pin, INPUT); delay(10); Serial.println(); } void loop(){ state = digitalRead(pir_pin); digitalWrit.. 2021. 4. 15.
아두이노 지문인식 센서 사용하는 방법 - 스마트폰 보안이 지문으로 널리 쓰이고 있기 전에 이미 지문인식 센서는 존재했었다. 지금도 각종 보안장치에서 지문인식센서를 사용하고 있는데, 오늘은 그 지문인식 센서를 아두이노에서 어떻게 사용할 수 있는지 다뤄보도록 하겠다. - 아두이노(우노, 나노, 메가), 지문인식센서, 지문인식센서 용 케이블 지문인식센서를 보면 핀이 총 8개가 있는데, 이 중에서 4핀만 사용한다. 자세히 보면 V+ 과 TX, RX, GND 가 몰려있는데 V+는 아두이노의 5V TX는 아두이노의 2번핀 RX는 아두이노의 3번핀 GND는 아두이노의 GND핀에 연결해주면 된다. 연결된 모습은 위와 같다. 아두이노에서 라이브러리를 설치해야 한다. 라이브러리 매니저를 실행시키고 검색어에 finger 만 입력해도 설치해야 할 라이브러리가 잘.. 2021. 4. 15.
로드셀과 HX711을 이용해서 무게 측정해보기 - 하프브릿지 - 아두이노를 활용한 프로젝트를 하다보면 무게와 압력을 감지해야 할 때가 있다. 이 때, 사용하는 센서가 로드셀과 HX711 이다. 로드셀은 3선식과 4선식이 있는데, 3선식이 사용하기 매우 까다롭다. 그 3선식 로드셀을 통해 무게를 측정해보도록 하자. - 아두이노(우노, 나노, 메가), 로드셀(3선식 2개), HX711 (로드셀 앰프) 선이 복잡해 보이겠지만 잘 따라서 보면 이해가 될 것이다. D/I 는 아두이노의 2번핀 SCK 는 아두이노의 3번핀에 연결해주면 된다. 우선 아두이노에서 라이브러리를 추가해주어야 한다. 라이브러리 매니저에서 HX711을 검색하고 "HX711 Arduino Library" 를 설치해준다. #include "HX711.h" // HX711 circuit wiring cons.. 2021. 4. 2.
[SZH-SSBH-002] 적외선 장애물(물체) 감지 센서 사용하는 방법 - 라인트레이싱과 같은 프로젝트를 만들때 항상 들어가는 것이 물체감지 센서이다. 거리 측정 센서로도 쓰이지만, 그런경우 analog 값을 출력해주는 모듈을 사용해야 한다. 이번에는 갖고 있는 센서 모듈이 digital 신호로만 주는 방식이어서 그에대해서만 사용법을 알아보도록 하자. - 아두이노(우노, 나노, 메가), 적외선 물체 감지 센서 센서의 OUT 단자를 아두이노의 3번핀에 연결한다. 센서의 VCC는 아두이노의 5V, 각자의 GND끼리 연결해주면 된다. int sensor_pin = 3; void setup() { // put your setup code here, to run once: pinMode(sensor_pin, INPUT); pinMode(13, OUTPUT); } void loop().. 2021. 4. 1.
아두이노로 DC모터 속도 제어하기 _ PWM이용 - 모터를 사용하다보면 모터 출력을 조금만 더 낮추고 싶거나, 내 마음대로 조절하고 싶을때가 많다. 아두이노로 모터 회전속도를 제어할 수 있는데, PWM 을 이용하여 모터드라이버에 신호를 주면 된다. 그 방법을 한번 알아보도록 하자. - 아두이노(우노, 나노, 메가), 모터드라이버(L298N, L9110) (모터 드라이버마다 사용법이 다를 수 있음) int motor_1 = 10; int motor_2 = 9; void setup() { // put your setup code here, to run once: pinMode(motor_1, OUTPUT); pinMode(motor_2, OUTPUT); } void loo.. 2021. 3. 31.
7-segment 4개 모듈 사용하는 방법 TM1637 - 아두이노를 통해서 타이머 같은 기능을 구현하고 싶을때, 디스플레이 장치로 7-segment 를 종종 사용한다. 1개 짜리 말고 4개가 묶여있는 모듈을 사용하는 방법을 알아보자. - 아두이노(우노, 나노, 메가), 7-segment 모듈(TM1637 chip) 7-segment 모듈은 보통 위와 같이 생겼고, 핀이 4개여야 한다. 자신이 보유하고 있는 7-segment 의 칩이 TM1637 인지 확인해야 한다. 모듈 핀이 총 4개로 CLK DIO VCC GND 핀이 있고, VCC는 아두이노의 3.3V 또는 5V에 연결한다. GND는 아두이노의 GND에 연결한다. CLK는 아두이노의 2핀에 꽂고, DIO핀은 아두이노의 3핀에 꽂으면 된다. 우선 아두이노에서 라이브러리를 설치해야한다. 라이브러리 매니저를 .. 2021. 3. 30.
아두이노로 스마트폰에 Pushbullet을 이용하여 알림 보내기 - 아두이노 IoT 프로젝트를 하다보면, 스마트폰에 알림을 보내야 하는 경우가 참 많다. 하지만 어떻게 해야할지 막막하기만 한데, 어플을 만들어야 하는건 아닌지... 블루투스로 해서 해결해야 하는 것인지... 오늘 이 포스팅에서 정말 간단하고 쉽게 아두이노로 스마트폰에 알림을 보내는 방법을 소개해보자 한다. - NodeMCU 또는 wifi모듈 ESP8266과 아두이노(우노, 나노, 메가) 회로 없음 우선 Pushbullet 과 PushingBox 사이트를 이용해야한다. 둘 다 무료이고, 인터넷만 연결되는 상황이면 사용가능하다. 그리고 구글 계정으로 로그인이 가능하므로 간편하다. www.pushbullet.com/ Pushbullet - Your devices working better together C.. 2021. 3. 25.
아두이노로 AC 전류를 측정해보자 (AC 전류센서 [SEN0211] 사용예제) - 우리가 흔히 사용하는 220V AC 전원의 전류를 측정하여 전자기기의 사용 전력을 측정해보자 - 아두이노(나노, 우노, 메가), AC전류센서 SEN0211 모듈에서 빨간색 친 부분을 아두이노에 연결해주어야 한다. A는 아날로그 A0에 연결 +는 3.3V 또는 5V 에 연결 - 는 GND 에 연결 int sensorPin = A0; int sensorValue = 0; void setup() { // declare the ledPin as an OUTPUT: Serial.begin(9600); pinMode(ledPin, OUTPUT); } void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); Seria.. 2021. 3. 22.
엔코더 장착형 N20 모터 제어하기 - 엔코더가 장착된 모터를 아두이노로 제어해서 사용해보자. 아두이노 공식 홈페이지에서 로터리 엔코더 사용에 대해 설명한 페이지를 우선 첨부해본다. 필요한 경우 방문을 하면 되겠다. playground.arduino.cc/Main/RotaryEncoders/ Arduino Playground - RotaryEncoders Reading Rotary Encoders Contents Introduction Libraries Encoder - High performance with 4X counting and very efficient interrupt routines. Uses the External Interrupt pins of the MCU. Download ClickEncoder - For encode.. 2021. 3. 19.