M5 ATOM Matrix와 MH-Z19로 CO2 농도를 보이게 해 보았다.
소개
M5 ATOM (Matrix/Lite)가 드디어 일본에서 발매되었습니다! 🎉
2020년 4월 10일에 주문하여 14일에 도착했습니다.
아니, 정말 작네요.
M5 ATOM Matrix x 2개 = M5StickC입니다.
M5 ATOM Lite는 Matrix보다 두께가 얇습니다.
주제
이 기사는 Nefry BT와 CO2 센서(MH-Z19)로 직장환경을 보이게 해 봤다.의 M5 ATOM Matrix 구현 버전입니다.
당시는 일하는 방법 개혁 = 조금이라도 직장 환경을 좋게하고 싶다는 동기 부여였습니다만, 최근에는 재택 워크가 주류가 되어 거의 하루 종일 방 안에서 보내게 되었으므로, 조금이라도 일 방을 좋아하고 싶다는 동기 부여 로 바뀌었습니다.
M5 ATOM Matrix / Lite 개봉의의
우선은 동작 확인으로부터.
환경
이 기사는 Nefry BT와 CO2 센서(MH-Z19)로 직장환경을 보이게 해 봤다.의 M5 ATOM Matrix 구현 버전입니다.
당시는 일하는 방법 개혁 = 조금이라도 직장 환경을 좋게하고 싶다는 동기 부여였습니다만, 최근에는 재택 워크가 주류가 되어 거의 하루 종일 방 안에서 보내게 되었으므로, 조금이라도 일 방을 좋아하고 싶다는 동기 부여 로 바뀌었습니다.
M5 ATOM Matrix / Lite 개봉의의
우선은 동작 확인으로부터.
환경
UIFlow
선생님의 정보를 참고로 UIFlow(웹판)에서의 동작 확인은 순서대로 문제 없었습니다.
htps : // 이 m/와 같이 y/있어 ms/17739b7f4197아 8d3후4d
처음으로 넘어진 것은 UIFlow (데스크톱 버전)에서 연결에 실패하여 사용할 수 없었습니다.
이것에 대해서도 선인의 정보를 참고로, 기동시에 모드를 전환하는 방법을 시험하는 것으로 무사히 동작 확인할 수 있었습니다.
htps : // 코 m / 와카사마 사오 / ms / 예 919 ~ c525 bf 90 예 b
파란색: UIFlow desktop IDE Program
→USB 접속해 IDE로부터 기입을 할 수 있는 모드로 하고 나서 UIFlow(데스크탑판)로부터 접속한다.
M5 ATOM Matrix에서 CO2 농도를 시각화
이전의 소스 코드를 참고로 M5 ATOM Matrix 에 이식할 수도 있습니다만, 이번은 MH-Z19 를 사용하기 위한 라이브러리를 이용하였습니다.
Arduino IDE
Arduino IDE에서 M5 ATOM을 사용하려면 다음 두 라이브러리를 설치합니다.
M5Atom
htps : // 기주 b. 이 m / m5s ck / M5 이후 m
FastLED
htps : // 기주 b. 코 m / 후 stぇ D / 후 st ぇ D
MH-Z19를 사용하려면 다음 라이브러리를 설치하십시오.
mhz19_uart
htps : // 기주 b. 이 m/라면 256/㎒19_우아 rt
처음 Arduino IDE에서 쓰기에 실패하기 때문에 조사하면 이것도 선인의 정보에 도착해 Upload Speed를 115200으로 무사히 쓰기가 가능하게 되었습니다.
최종 쓰기 설정은 다음과 같습니다.
연결도
이면에 점퍼 핀을 꽂아 사용했습니다만, Grove 커넥터 케이블을 접속해도 사용할 수 있었습니다.
아래 소스 코드를 다음과 같이 다시 작성하십시오.
점퍼 핀을 사용하는 경우(G/5V/G25→RX/G21→TX)
mhz19.begin(25, 21);
Grove 커넥터: G/5V/G26 → RX/G32 → TX
mhz19.begin(26, 32);
동작 개요
LED Matrix의 표시는 다음과 같이 했습니다.
CO2 농도(ppm)와 온도(temp) ··· CO2 농도 보정을 위한 참고 온도를 시리얼 로그에 출력합니다.
파랑: 350 ~ 450ppm 과도한 환기 (외기: 330~400ppm)
녹색: 450 ~ 700ppm 이상적인 환기 수준
노랑: 700 ~ 1,000ppm 환기가 불충분 (실내에서는 1,000ppm 이하로 억제하는 것으로 되어 있다)
빨강: 1,000 ~ 나쁜 실내 공기 환경 (학교 환경에서는 1,500 ppm 이하가 바람직하다고 여겨지고 있다)
소스 코드의 LED 표시 색 지정 순서가 RGB가 아니라 GRB이므로주의하십시오. .
M5.dis.drawpix(i, 0xffffff);//#GGRRBB 순서
바로 움직이면 이미 노란색 표시 ··.
(열심히 일하고 있기 때문에, 라고 합니다.)
소스 코드
샘플 코드는 여기입니다.
M5ATOM_Matrix_MH-Z19.ino#include <M5Atom.h>
#include <MHZ19_uart.h>
bool IMU6886Flag = false;
MHZ19_uart mhz19;
void setup() {
M5.begin(true, false, true);
delay(50);
for (int i = 0; i < 25; i++) {
M5.dis.drawpix(i, 0xffffff); // #GGRRBB の順
}
Serial.begin(115200); // for debug log
mhz19.begin(25, 21); // Grove RX:26, TX:32 | GPIO RX:25, TX:21
mhz19.setAutoCalibration(false);
delay(3000);
}
void loop() {
int co2 = mhz19.getPPM();
int temp = mhz19.getTemperature();
Serial.print(co2);
Serial.print(" ppm, ");
Serial.print(temp);
Serial.println(" temp");
if (co2 < 450) {
for (int i = 0; i < 25; i++) {
M5.dis.drawpix(i, 0x0000ff); // blue
}
}
else if (co2 < 700) {
for (int i = 0; i < 25; i++) {
M5.dis.drawpix(i, 0xff0000); // green
}
}
else if (co2 < 1000) {
for (int i = 0; i < 25; i++) {
M5.dis.drawpix(i, 0xffff00); // yellow
}
}
else {
for (int i = 0; i < 25; i++) {
M5.dis.drawpix(i, 0x00ff00); // red
}
}
delay(5000);
}
Reference
이 문제에 관하여(M5 ATOM Matrix와 MH-Z19로 CO2 농도를 보이게 해 보았다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kitazaki/items/15b188759b8b1fe325e0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#include <M5Atom.h>
#include <MHZ19_uart.h>
bool IMU6886Flag = false;
MHZ19_uart mhz19;
void setup() {
M5.begin(true, false, true);
delay(50);
for (int i = 0; i < 25; i++) {
M5.dis.drawpix(i, 0xffffff); // #GGRRBB の順
}
Serial.begin(115200); // for debug log
mhz19.begin(25, 21); // Grove RX:26, TX:32 | GPIO RX:25, TX:21
mhz19.setAutoCalibration(false);
delay(3000);
}
void loop() {
int co2 = mhz19.getPPM();
int temp = mhz19.getTemperature();
Serial.print(co2);
Serial.print(" ppm, ");
Serial.print(temp);
Serial.println(" temp");
if (co2 < 450) {
for (int i = 0; i < 25; i++) {
M5.dis.drawpix(i, 0x0000ff); // blue
}
}
else if (co2 < 700) {
for (int i = 0; i < 25; i++) {
M5.dis.drawpix(i, 0xff0000); // green
}
}
else if (co2 < 1000) {
for (int i = 0; i < 25; i++) {
M5.dis.drawpix(i, 0xffff00); // yellow
}
}
else {
for (int i = 0; i < 25; i++) {
M5.dis.drawpix(i, 0x00ff00); // red
}
}
delay(5000);
}
Reference
이 문제에 관하여(M5 ATOM Matrix와 MH-Z19로 CO2 농도를 보이게 해 보았다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kitazaki/items/15b188759b8b1fe325e0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)