{"id":20924723,"url":"https://github.com/ddddddo/sensor-pi","last_synced_at":"2025-12-26T11:01:27.785Z","repository":{"id":39627329,"uuid":"488597626","full_name":"ddddddO/sensor-pi","owner":"ddddddO","description":"🌡️🌀💧🏭 \u003e 🕊        ","archived":false,"fork":false,"pushed_at":"2025-06-05T14:25:16.000Z","size":6117,"stargazers_count":3,"open_issues_count":10,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-23T17:50:55.818Z","etag":null,"topics":["bme280","go","mh-z19","python3","raspberry-pi","raspberrypi","sensor","twitter-bot"],"latest_commit_sha":null,"homepage":"https://twitter.com/ddddddOpppppp","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ddddddO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-04T13:22:27.000Z","updated_at":"2025-06-05T14:25:18.000Z","dependencies_parsed_at":"2023-01-27T01:01:00.297Z","dependency_job_id":null,"html_url":"https://github.com/ddddddO/sensor-pi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ddddddO/sensor-pi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddddddO%2Fsensor-pi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddddddO%2Fsensor-pi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddddddO%2Fsensor-pi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddddddO%2Fsensor-pi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ddddddO","download_url":"https://codeload.github.com/ddddddO/sensor-pi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddddddO%2Fsensor-pi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28053360,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-26T02:00:06.189Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bme280","go","mh-z19","python3","raspberry-pi","raspberrypi","sensor","twitter-bot"],"created_at":"2024-11-18T20:24:35.604Z","updated_at":"2025-12-26T11:01:27.748Z","avatar_url":"https://github.com/ddddddO.png","language":"Go","readme":"# sensor-pi\r\n\r\n- Raspberry Pi 4とsensor類をつなげてみる\r\n\r\n\r\n# [env-bot](env-bot/)\r\n### 概要\r\n- bme280から気圧・温度・湿度 / mh_z19からCO2濃度を取得する@多摩川あたり\r\n- 取得したデータを使って線グラフを生成\r\n- データ取得と線グラフ生成は以下タイミングで実行し、ツイート\r\n  - 毎日09:00/18:00\r\n  - Bluetoothリモコンシャッターのボタン押下時\r\n\r\n\r\n### 構成\r\n![](env-bot/doc/env-tweet-bot.png)\r\n\r\n- [Old Architecture](env-bot/doc/README_old_architecture.md#old-architecture)\r\n  - [repository](https://github.com/ddddddO/sensor-pi/tree/f7eba6c14cdeaad8d3a23a1c6be6b905672c27de/env-bot)\r\n- [Next Architecture](env-bot/doc/README_next_architecture.md#next-architecture)\r\n\r\n### 実行基盤\r\n- cronと[**Dagu**](https://github.com/yohamta/dagu)を利用。\r\n- 各実行コマンドの依存を[YAMLファイル](dag.yaml)に記載しDaguを実行する。\r\n- Daguにはserverサブコマンドがあり、依存関係も視覚的に確認できる。\r\n  - ![](env-bot/doc/dagu.png)\r\n\r\n### Tweet\r\n![](env-bot/doc/tweet_1.png)\r\n![](env-bot/doc/tweet_2.png)\r\n![](env-bot/doc/tweet_3.png)\r\n![](env-bot/doc/tweet_4.png)\r\n\r\n# 扱うsensorなど\r\n![](image/sensor.jpg)\r\n\r\n### LaDicha MH-Z19 0-5000PPM CO2室内空気質モニタ用赤外線CO2センサUART / PWM\r\n- 画像の金色のセンサー\r\n- 2022/05/03購入。3899円\r\n- https://www.amazon.co.jp/dp/B07B3VGGNL?psc=1\u0026ref=ppx_pop_dt_b_product_details\r\n- https://pypi.org/project/mh-z19/\r\n  - リンク先の配線で動作確認済み\r\n  - ![](image/mh-z19_haisen.jpg)\r\n\r\n\r\n### ACEIRMC BME280搭載 温湿度 気圧センサーモジュール 5V用 SPI I2C Arduino対応 Raspberry Pi 4個入り\r\n- 画像の紫色のセンサー\r\n- 2022/05/03購入。4個で5099円\r\n- 書籍で使われてるものと違うものを購入したよう。が、読み替えて利用できそう。\r\n- https://www.amazon.co.jp/dp/B08L6J5MLM?ref=ppx_pop_dt_b_product_details\u0026th=1\r\n- https://github.com/nozo-moto/mhz19-bme280-go#how-to-move\r\n  - リンク先の配線で動作確認済み\r\n  - ![](image/bme280_haisen.jpg)\r\n\r\n\r\n### Bluetoothリモコンシャッター\r\n- [このツイート](https://twitter.com/sozoraemon/status/1574969255208325125?s=20\u0026t=i2r26kbyVx00GJu13hcrzw)にインスパイアされて購入。\r\n- ボタンを押して、その時の計測値とグラフをツイートするようにした。\r\n- [作業風景](https://twitter.com/ddddddOpppppp/status/1576025254719168512?s=20\u0026t=i2r26kbyVx00GJu13hcrzw)\r\n- ![](image/remocon.jpg)\r\n- ![](image/remocon_description.jpg)\r\n\r\n\r\n# Links\r\n- 「エキスパートたちのGo言語」の「Raspberry PiによるCO2、温湿度、気圧のモニタリング」p219~ をやっていく。\r\n  - https://github.com/nozo-moto/mhz19-bme280-go\r\n- https://github.com/ddddddO/embedded-using-wio_terminal\r\n- [作業風景](https://twitter.com/dddddO60664252/status/1521839460744560641?s=20\u0026t=knhCAdHZW9eIZJTtrOVSxA)\r\n- [紹介記事](https://zenn.dev/ddddddo/articles/1c0f022b31ffb5)\r\n\r\n- [raspberry pi GPIO](https://deviceplus.jp/raspberrypi/raspberrypi-gpio/)\r\n  - ![](image/raspberrypi-gpio.png)\r\n- 「[RaspberryPiで学ぶ電子工作](https://bluebacks.kodansha.co.jp/books/9784065193396/appendix/)」\r\n  - I2C(p159~)\r\n    - シリアル通信と呼ばれるデータ通信方式の一つ\r\n    - I2C通信を使うと、デジタル値を出力するセンサを多数扱える\r\n      - センサに、センサとADコンバータが内臓されているため、内部のセンサが出力するアナログ値-\u003eADコンバータ-\u003eデジタル値出力、となるから、I2Cで扱える\r\n    - マスター・スレーブというふうにデバイスを捉える\r\n      - 今回なら、RaspberryPiがマスターで、BME280がスレーブ\r\n      - スレーブにはアドレスという概念がある\r\n    - マスター・スレーブの各デバイスは、SDAとSCLの2線で接続される\r\n      - SDA: シリアルデータ\r\n      - SCL: シリアルクロック\r\n      - (本来、I2C接続にはプルアップ抵抗なるものが必要だが、RaspberryPiに内蔵されている)\r\n    - マスター・スレーブを接続し、`i2cdetect -y 1` コマンドをマスターで実行すると、スレーブのアドレスを取得できる、と理解\r\n      - 今回なら、`76` がBME280のアドレス\r\n    - 各センサの仕様を確認しないと、そのセンサのアドレスや、どのレジスタ(のアドレス)からデータの読み書きをすればいいかわからない\r\n      - [BME280のデータシート](https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BME280-DS002.pdf)\r\n        - [実装](https://github.com/nozo-moto/mhz19-bme280-go/blob/master/bme280/bme280.go)\r\n- mh-z19を利用可能にする\r\n  - ref: https://rcmdnk.com/blog/2021/02/18/computer-iot-raspberrypi/\r\n  - /boot/config.txtに以下を追記しrebootする\r\n    - `dtoverlay=disable-bt`\r\n      - 2022/10/01 に「Bluetoothリモコンシャッター」を使いたいため、コメントアウトした。\r\n        - そのままの状態で、uartではなくpwmで通信することで対処した。\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddddddo%2Fsensor-pi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fddddddo%2Fsensor-pi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddddddo%2Fsensor-pi/lists"}