고양이 선생과 기타 감시 장치

IoTLT Advent Calendar 2021 | Advent Calendar 2021 - Qiita 21일째 보도다.
개시하다
날씨가 추워졌기 때문에 우리 집에는 고양이 세 마리가 있으니 전기담요가 없어서는 안 된다(4장 정도는 작업 중)
그러나 최근의 전기담요는 자동단전의 안전규범으로 전기담요는 자동정지(끊을 수 없는 타이머)
전기담요가 끊어져서 고양이가 추워요. OR 전기담요에서 고양이가 다른 곳에 너무 오래 있었는지 검사해요. 다들 겨울 편하게 보내세요.
만들어진 물건

전기 담요에 열 센서를 설치하여 전기 담요의 온도를 측정하다
10분마다 LINE Notify로 온도 알림
환경·재료
  • 비접촉 온도 센서 - OMEMS 비접촉 온도 센서 D6-44L-06-스위치 사이언스
  • D6T 변환 베이스 - 옴론의 오픈 플랫폼 대응 센서
  • Grove→2.54mm 간격 변환 기판
  • 나는 이 문장을 참고했다옴론의 비접촉 온도 센서인 Qita를 obniz에서 사용해 봤어요.
  • 귀여운 상자
  • obniz
  • 모바일 배터리
  • 연결 방법

    센서와 obniz의 플러그 설정도 참고여기.
    측면
    센서 측
    0
    GND
    GND 전원 단자
    1
    VCC
    VCC 전원 단자(5V ±10%)
    2
    SDA
    I2C(5V) 데이터
    3
    SCL
    I2C(5V) 클록
    어디를 재요?
    4×4중 16곳의 온도를 취할 수 있기 때문에 고양이가 없을 때와 전기담요 표면의 온도를 측정하는데 대체로 같은 온도에서 약간 높기 때문에 고양이는 27도 이상으로 가야 한다.

    하지만 측정해 보니 고양이가 곧 움직일 것 같아서 고양이를 측정하는 것이 아니라 없는 것 같은 가장자리를 고정시켜 전기담요의 온도를 측정하는 세 단계로 나뉘었다
    20도 이하의 전기 담요는 끊어진다
    30°가 넘으면 고양이는 다른 것으로 변한다
    이외에 일반적인 온도는 모두 통지된 경보이다
    코드
    node.js
    'use strcit';
    const axios = require('axios');
    const qs = require('querystring');
    const BASE_URL = 'https://notify-api.line.me';
    const PATH =  '/api/notify';
    const LINE_TOKEN = '***';  //notifyのトークン
    const Obniz = require('obniz');
    const obniz = new Obniz('***'); // Obniz_ID
    const botmsg = 'ホカぺ監視中'
    const botmsghot = '熱くなってきてるよ'
    const botmsgcld = 'ホカぺ切れたね'
    let config = {
        baseURL: BASE_URL,
        url: PATH,
        method: 'post',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Authorization': `Bearer ${LINE_TOKEN}`
        },
        data: 'message=${botmsg}'
    };
    obniz.onconnect = async function () {
        obniz.display.clear();
        obniz.display.print('Hot.....');
        var i2c = obniz.getFreeI2C();
        obniz.io1.output(true);
        obniz.io0.output(false);
        i2c.start({mode:"master", sda:2, scl:3, clock:100000});
    
        obniz.repeat(async function(){
          await obniz.wait(100);
          i2c.write(0x0A, [0x4C]);
          await obniz.wait(160);
          var data = await i2c.readWait(0x0A, 35);
          var t = [];
          for(var i=2; i<34; i++){
            t[i] = ((data[i]+(data[i+1]<<8))*0.1).toFixed(1);
            console.log(t[i]);
            i++
          }
          if(t[8] > 30){
            config.data =  "message="+ botmsghot + t[8] + "°";
          }else if(t[8] > 20){
            config.data =  "message="+ botmsg + t[8] + "°";
          } else {
            config.data =  "message="+ botmsgcld + t[8] + "°";
          }
            axios.request(config).then((res) => {
              console.log(res.status)
            })
            .catch((error) => {
                console.log(error);
            });
          }, 600000)
    }
    
    
    총결산
    연어 신난다!온도만 측정하면 이렇게 즐거워!이런 느낌은 나를 매우 즐겁게 한다.
    온도를 알리는 물건이 완성됐으니 다음으로 가고 싶은 곳은 라인이 아닌 라인 봇이다. 전기옷 담요의 전원을 조절한다.
    통지가 10분마다 오기 때문에 귀찮아서 경보를 좀 더 줄이고 싶어요.

    좋은 웹페이지 즐겨찾기