編集履歴一覧に戻る
3manenhosii3のアイコン画像

3manenhosii3 が 2024年10月30日14時11分04秒 に編集

コメント無し

本文の変更

-

# 目次 仕様 仕様図 使用機材 参考文献

   # 仕様 電子ペーパーに天気の情報が表示される • 現在の気温 • 最高気温 • 最低気温 • 天気予報 • 降水確率 • 明日・明後日の天気予報 などを表示させる。 # システム図 ![キャプションを入力できます](https://camo.elchika.com/cafc73b980345fb8a114379ea9c60fee62a94e19/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f34343863336632362d393030332d343339632d626362322d3130646134626434636538612f32363935653165352d353931352d346334662d393736342d313962386163373262393635/) # 今回の結果 ![キャプションを入力できます](https://camo.elchika.com/378e67fd77375071986b48ef85e2b399704c418c/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f34343863336632362d393030332d343339632d626362322d3130646134626434636538612f63643033393236392d613731352d343636622d383431302d663038633066393031326130/) うっすらと電子ペーパーを点けることができたが文字やシステム図を表示できず作品を完成させることができなかった。まだコンテストの後も開発できるので精進していきたい。 # 使用機材・言語 - RaspberryPi 4 - Micro SDカード(16GB) - 電子ペーパー(7.5 inch ePaper H - Python # ソースコード ``` import time import requests from waveshare_epd import epd7in5_V2 from PIL import Image, ImageDraw, ImageFont # OpenWeatherMapのAPIキーと都市名 API_KEY = "" CITY = "KOCHI" # 例: Tokyo, New Yorkなど def get_weather_data(api_key, city): """OpenWeatherMapから天気データを取得する関数""" url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric" response = requests.get(url) if response.status_code == 200: return response.json() else: print("Failed to retrieve data") return None def display_weather(epd, weather_data): """天気情報を電子ペーパーに表示する関数""" epd.init() epd.Clear() # 天気情報のフォント設定 font = ImageFont.load_default() # 画像を作成 image = Image.new('1', (epd.width, epd.height), 255) # 白背景 draw = ImageDraw.Draw(image) # 天気情報を描画 draw.text((10, 10), f"City: {weather_data['name']}", font=font, fill=0) draw.text((10, 30), f"Temperature: {weather_data['main']['temp']} °C", font=font, fill=0) draw.text((10, 50), f"Weather: {weather_data['weather'][0]['description']}", font=font, fill=0) # 画像を電子ペーパーに表示 epd.display(epd.getbuffer(image)) epd.sleep() def main(): epd = epd7in5_V2.EPD() weather_data = get_weather_data(API_KEY, CITY) if weather_data: display_weather(epd, weather_data) if __name__ == "__main__": main() ```

-

+

# 最後に

+

# 参考文献 Raspberry Pi × 電子ペーパーで最新のお天気情報を表示する電子版を作ってみた https://zenn.dev/yutafujiwara/articles/2d568f168c2e65 オープンウェザー https://openweathermap.org/ ESP32 電子ペーパー天気ディスプレイ https://hackaday.io/project/189708-esp32-e-paper-weather-display