뜨겁기 때문에 열사병 대책 BOT을 만들어 보았습니다.

여기, 심상이 아닌 더위가 계속되고 있기 때문에, 정기적으로 기온을 통지해, 게다가 주의 환기를 촉구해 주는 BOT가 있으면 좋겠다~라고 생각했다.
그래서 만들어 보았다.



친구 등록



앱 소개



할 일


  • 날씨는 도쿄에 한정. ( 今後増やしたいが、一旦 )
  • 9시~19시 사이, 매시간 날씨·기온·습도를 감시.
  • 기온 30도 이상 or 습도 80% 이상일 경우 주의 환기를 촉구한다.
  • 매일 아침 6시에 오늘 날씨를 알립니다
  • 대화형으로 오늘, 내일, 내일, 현재의 날씨·기온·습도를 회신.

  • 매시간 알림 · 지금 날씨 알림


    어떻게 했는지



    언어와 서버



    이번에 언어는 Ruby, 서버는 heroku를 사용했습니다.
    지인의 이하 기사를 참고로 했습니다.
    "오늘 비가 내리는 짱"을 만들어 보자! 【초학자용】~Ruby on Rails에 의한 LINE bot 튜토리얼②~

    나는 루비를 쓴 적이 없었지만 기사의 봇이라면 하루 만에 만들 수있었습니다.
    자신을 위해 변경하는 데 일주일 정도 걸렸습니다.

    매시간: OpenWeatherMap



    기사의 시간별 날씨 데이터는 OpenWeatherMap 를 사용했습니다.
    ID로 대략적으로 다음과 같이 분기를 만듭니다.
    API_KEY = ENV["OPENWEATHER_API_KEY"]
    BASE_URL = "http://api.openweathermap.org/data/2.5/weather"
    
    〜(中略)〜
    
    url = open( "#{BASE_URL}?q=Tokyo,jp&APPID=#{API_KEY}" )
    res = JSON.parse( url.read , {symbolize_names: true} )
    
    # 現在の天気
    weather_id = res[:weather][0][:id].to_i
    
    # weather_idを文字に変換
    # 参考:https://www.sglabs.jp/openweathermap-api/
    if weather_id == 800
      weather = "晴天"
    elsif weather_id == 801
      weather = "晴れ"
    elsif weather_id > 801
      weather = "曇り"
    elsif weather_id >= 200 && weather_id < 300
      weather = "雷雨"
    elsif weather_id >= 300 && weather_id < 400
      weather = "霧雨"
    elsif weather_id == 500 || weather_id == 501
      weather = "雨"
    elsif weather_id >= 502 && weather_id < 600
      weather = "大雨"
    elsif weather_id >= 600 && weather_id < 700
      weather = "雪"
    elsif weather_id >= 700 && weather_id < 800
      weather = "霧"
    end
    
    # 気温、湿度取得
    temp_max = res[:main][:temp_max].to_i - 273
    humidity = res[:main][:humidity].to_i
    
    # temp_maxまたはhumidityがnilでなければ
    if temp_max >= 30 || humidity >= 80
      if temp_max >= 33
        word1 = "今、とても気温が高いね。\n不要な外出は控えて!"
      elsif temp_max >= 30 && humidity >= 80
        word1 = "今、気温も湿度も高いね。"
      elsif temp_max >= 30
        word1 = "今、気温が高いね。"
      elsif humidity >= 80
        word1 = "今、気温はそこそこだけど、湿度が高くてムシムシするね。"
      end
      # weather_idによって対策をメッセージに載せる。
      if weather_id == 800 || weather_id == 801
        word2 = "日差しが強いので、日陰に移動して直射日光を避け、コンクリートやアスファルトの上は避けましょう。\n熱中症にならないように気をつけてね(><)"
      elsif weather_id > 801
        word2 = "日差しが弱くても、熱中症にはなるからね!\n湿度が高いなら屋内だと、除湿機を使ってみましょう。\n外で風が弱ければ、扇子などで風を起こして体温の上昇を防ぎましょう。"
      else
        word2 = "こまめに水分補給して、熱中症にならないように気をつけてね(><)"
      end
    else
      word1 = "気温も湿度も落ち着いてるけど、注意してね。"
      word2 = "今日があなたにとっていい日になりますように(^^)"
    end
    
    puts "天気:#{weather}, 気温:#{temp_max}, 湿度:#{humidity}"
    
    push =
      "現在の天気は#{weather}だよ。\n#{word1}\n気温: #{temp_max}\n湿度: #{humidity}%\n#{word2}"
    

    덧붙여 일일의 날씨는 기사 의 방법을 유용해, Japan Weather Forecast xml(일본 날씨 예보) 배송 목록 를 사용했습니다.

    열사병에 대한 지식



    여기는 PT인 그녀에게 도움을 주었습니다.
    열사병 지식과 대책 방법 요약
    대책 방법도 알고 있으면 편리합니다.

    앞으로 하고 싶은 일



    해결 방법이 필요할 때 전달.



    「들었을 때·정기 전달 등 어떤 방법이 좋은가」, 「대처 방법을 LINE으로 보내는 것이 정말로 좋은가」등 검토.

    소득하고 싶은 지역을 선택할 수 있도록 하고 싶다.



    도도부현에서 대략 47구분 정도는 할 수 있도록 하고 싶다.
    사용자가 임의로 설정할 수 있도록 할 것인가, 대화형으로 들을 수 있도록 할까.

    HP도 만든다.



    WEB 페이지에서 주간이나, 시간마다의 날씨를 볼 수 있는 것이 있으면 좋을까.
    광고도 붙이면, 여기에서 용돈이・・・w

    좋은 웹페이지 즐겨찾기