[전자공작] 999엔으로 온도계를 만들어 보았다
개요
손에 온도 센서와 LED가 있었기 때문에 ...
온도계를 만들어 보았다.
부품
온도 센서 : BME280
227엔
디스플레이 : TM1637이 내장된 7세그 LED
73엔
컴퓨터 : Arduino UNO 호환 기계
699엔
배선
이번 이용하는 온도 센서는 I2C라는 통신을 이용합니다.
근거리에서 이용하는 시리얼 통신 규격으로, Arduino 공작이라고 자주 이용되는 것입니다…
(아마 정상적인 개발에서도 이용될까 생각합니다만…)
소스 코드
#include <Arduino.h>
#include <BME280I2C.h>
#include <Wire.h>
#include <TM1637Display.h>
#define SERIAL_BAUD 115200
BME280I2C::Settings settings(
BME280::OSR_X1,
BME280::OSR_X1,
BME280::OSR_X1,
BME280::Mode_Forced,
BME280::StandbyTime_1000ms,
BME280::Filter_Off,
BME280::SpiEnable_False,
0x76
);
BME280I2C bme(settings);
#define CLK 2
#define DIO 3
TM1637Display display(CLK, DIO);
void setup() {
Serial.begin(SERIAL_BAUD);
while(!Serial) {}
Wire.begin();
while(!bme.begin()){
Serial.println("not find BME280");
delay(1000);
}
settings.tempOSR = BME280::OSR_X4;
bme.setSettings(settings);
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
display.setBrightness(0x0f);
display.setSegments(data);
delay(1000);
}
void loop() {
float temp(NAN), hum(NAN), pres(NAN);
BME280::TempUnit tempUnit(BME280::TempUnit_Celsius);
BME280::PresUnit presUnit(BME280::PresUnit_Pa);
bme.read(pres, temp, hum, tempUnit, presUnit);
display.showNumberDec((unsigned int)(temp*100), false); //温度
// display.showNumberDec((unsigned int)(hum*100), false); // 気圧
Serial.print("Temp: ");
Serial.print(temp);
Serial.print("°"+ String(tempUnit == BME280::TempUnit_Celsius ? 'C' :'F'));
Serial.print("\t\tHumidity: ");
Serial.print(hum);
Serial.print("% RH");
Serial.print("\t\tPressure: ");
Serial.print(pres);
Serial.println(" Pa");
delay(100);
}
github
동작 확인
gif 동영상으로 올려도 알기 어려웠기 때문에, Youtube에서 확인하실 수 있으면 다행입니다.
현재 (2020/04/25) AMAZON에서 구입할 수있는 것
온도 센서 : BME280
¥750
디스플레이 : TM1637이 내장된 7세그 LED
¥600
컴퓨터 : Arduino UNO 호환 기계
¥ 699
있으면 편리한 것
점퍼 케이블 ¥762
Reference
이 문제에 관하여([전자공작] 999엔으로 온도계를 만들어 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hashito/items/0a7783cc517b4fad4fa6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
온도 센서 : BME280
227엔
디스플레이 : TM1637이 내장된 7세그 LED
73엔
컴퓨터 : Arduino UNO 호환 기계
699엔
배선
이번 이용하는 온도 센서는 I2C라는 통신을 이용합니다.
근거리에서 이용하는 시리얼 통신 규격으로, Arduino 공작이라고 자주 이용되는 것입니다…
(아마 정상적인 개발에서도 이용될까 생각합니다만…)
소스 코드
#include <Arduino.h>
#include <BME280I2C.h>
#include <Wire.h>
#include <TM1637Display.h>
#define SERIAL_BAUD 115200
BME280I2C::Settings settings(
BME280::OSR_X1,
BME280::OSR_X1,
BME280::OSR_X1,
BME280::Mode_Forced,
BME280::StandbyTime_1000ms,
BME280::Filter_Off,
BME280::SpiEnable_False,
0x76
);
BME280I2C bme(settings);
#define CLK 2
#define DIO 3
TM1637Display display(CLK, DIO);
void setup() {
Serial.begin(SERIAL_BAUD);
while(!Serial) {}
Wire.begin();
while(!bme.begin()){
Serial.println("not find BME280");
delay(1000);
}
settings.tempOSR = BME280::OSR_X4;
bme.setSettings(settings);
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
display.setBrightness(0x0f);
display.setSegments(data);
delay(1000);
}
void loop() {
float temp(NAN), hum(NAN), pres(NAN);
BME280::TempUnit tempUnit(BME280::TempUnit_Celsius);
BME280::PresUnit presUnit(BME280::PresUnit_Pa);
bme.read(pres, temp, hum, tempUnit, presUnit);
display.showNumberDec((unsigned int)(temp*100), false); //温度
// display.showNumberDec((unsigned int)(hum*100), false); // 気圧
Serial.print("Temp: ");
Serial.print(temp);
Serial.print("°"+ String(tempUnit == BME280::TempUnit_Celsius ? 'C' :'F'));
Serial.print("\t\tHumidity: ");
Serial.print(hum);
Serial.print("% RH");
Serial.print("\t\tPressure: ");
Serial.print(pres);
Serial.println(" Pa");
delay(100);
}
github
동작 확인
gif 동영상으로 올려도 알기 어려웠기 때문에, Youtube에서 확인하실 수 있으면 다행입니다.
현재 (2020/04/25) AMAZON에서 구입할 수있는 것
온도 센서 : BME280
¥750
디스플레이 : TM1637이 내장된 7세그 LED
¥600
컴퓨터 : Arduino UNO 호환 기계
¥ 699
있으면 편리한 것
점퍼 케이블 ¥762
Reference
이 문제에 관하여([전자공작] 999엔으로 온도계를 만들어 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hashito/items/0a7783cc517b4fad4fa6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#include <Arduino.h>
#include <BME280I2C.h>
#include <Wire.h>
#include <TM1637Display.h>
#define SERIAL_BAUD 115200
BME280I2C::Settings settings(
BME280::OSR_X1,
BME280::OSR_X1,
BME280::OSR_X1,
BME280::Mode_Forced,
BME280::StandbyTime_1000ms,
BME280::Filter_Off,
BME280::SpiEnable_False,
0x76
);
BME280I2C bme(settings);
#define CLK 2
#define DIO 3
TM1637Display display(CLK, DIO);
void setup() {
Serial.begin(SERIAL_BAUD);
while(!Serial) {}
Wire.begin();
while(!bme.begin()){
Serial.println("not find BME280");
delay(1000);
}
settings.tempOSR = BME280::OSR_X4;
bme.setSettings(settings);
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
display.setBrightness(0x0f);
display.setSegments(data);
delay(1000);
}
void loop() {
float temp(NAN), hum(NAN), pres(NAN);
BME280::TempUnit tempUnit(BME280::TempUnit_Celsius);
BME280::PresUnit presUnit(BME280::PresUnit_Pa);
bme.read(pres, temp, hum, tempUnit, presUnit);
display.showNumberDec((unsigned int)(temp*100), false); //温度
// display.showNumberDec((unsigned int)(hum*100), false); // 気圧
Serial.print("Temp: ");
Serial.print(temp);
Serial.print("°"+ String(tempUnit == BME280::TempUnit_Celsius ? 'C' :'F'));
Serial.print("\t\tHumidity: ");
Serial.print(hum);
Serial.print("% RH");
Serial.print("\t\tPressure: ");
Serial.print(pres);
Serial.println(" Pa");
delay(100);
}
github
동작 확인
gif 동영상으로 올려도 알기 어려웠기 때문에, Youtube에서 확인하실 수 있으면 다행입니다.
현재 (2020/04/25) AMAZON에서 구입할 수있는 것
온도 센서 : BME280
¥750
디스플레이 : TM1637이 내장된 7세그 LED
¥600
컴퓨터 : Arduino UNO 호환 기계
¥ 699
있으면 편리한 것
점퍼 케이블 ¥762
Reference
이 문제에 관하여([전자공작] 999엔으로 온도계를 만들어 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hashito/items/0a7783cc517b4fad4fa6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
온도 센서 : BME280
¥750
디스플레이 : TM1637이 내장된 7세그 LED
¥600
컴퓨터 : Arduino UNO 호환 기계
¥ 699
있으면 편리한 것
점퍼 케이블 ¥762
Reference
이 문제에 관하여([전자공작] 999엔으로 온도계를 만들어 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hashito/items/0a7783cc517b4fad4fa6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)