かすたあどくりいむ定食

読書感想や開発など

電子工作入門以前を読んだ

 

 

興味があったので、電子工作入門以前を読んだ。 初心者だから何かしら作れるようになるといいなと思ってた。 電気の歴史についてしばらく書いてあるのだがその時点で難しい。眠くなる。中学校の教科書とかの方がまだ分かりやすいのではないかと思った。その後の電子工作についても初心者が取り組むにはちょっときついと思った。 本当に入門以前の人はこの本を読むと挫折すると思うのでYoutubeの動画や初心者向け工作キット等で学ぶ方ががいいと思う。 それかAIに部品選定してもらって作るのがいいかも。

まだ下記の電子回路マジわけわからんの本が分かりやすかった。

変わる人生:睡眠の力を実感する『スタンフォード式 最高の睡眠』

最近『スタンフォード式 最高の睡眠』という本を読みました。 正直、これまでにもメンタルや自律神経に関する本をいくつも読んできて、「また睡眠の話か…」と少し斜に構えていたところもありました。

hellhellmymy.hatenablog.com

hellhellmymy.hatenablog.com

でも、この本は違いました。 「睡眠に関してはもうこの一冊で十分かも」、そう思えるほど、核心を突いた内容でした。

 

 

最初の90分が“最高の睡眠”の鍵

特に印象的だったのが、「睡眠の最初の90分がとにかく重要」という話。 今まで「○時間寝よう」とか「○時には寝たほうがいい」という“時間の長さ”ばかりを意識していましたが、この本を読んで、「質」の重要性、特に最初の90分間がその後の眠り全体を左右するというのを初めて知りました。

この90分間をいかに“最高の状態”で迎えるかが、翌日のパフォーマンスにも直結するという内容は、とても納得感がありました。

どうやって最高の90分を手に入れるか?

本書では、科学的な知見に基づいて、最高の90分を得るための具体的な方法がいくつも紹介されています。 例えば、

など、すぐに実践できるアドバイスが豊富です。 専門的な話もありますが、難しすぎず、読みやすいのも魅力でした。

睡眠に悩んでいる人、学びたい人におすすめ

「寝ても寝ても疲れが取れない」 「睡眠時間は足りてるはずなのに、日中ぼーっとする」 そんな悩みがある方には、ぜひ読んでほしい一冊です。

また、「睡眠について1冊だけ読むならどれ?」と聞かれたら、私は迷わずこの本をおすすめします。 それくらい、実用性と納得感に優れた良書でした。

おわりに

今や“睡眠”は健康の土台であり、仕事や勉強、育児など、すべてのパフォーマンスの基盤です。 この本を読んで、あらためて「いい睡眠が人生を変える」と実感しました。

睡眠に興味がある方、質を高めたい方は、ぜひ手に取ってみてください!

 

 

精神科医が教える ストレスフリー超大全を読んだ

精神科医が教える ストレスフリー超大全――人生のあらゆる「悩み・不安・疲れ」をなくすためのリスト

を、読みました。元々youtubeチャンネルでも樺沢先生の動画とかはちょくちょく見てたのですが、気になったので。

 

 

感想

大きく分けると、

  • 人間関係
  • 仕事
  • プライベート
  • 健康
  • メンタル

に分かれて解説されてます。 どの項目もかなりためになる情報が多くて読んでいて飽きることがありませんでした。 ストレスをどうやって対処するか?において色々なパターンの対処法が書かれてるので、 かなり疲れ気味だけど、精神科受信はちょっと。。。。って人とかは一度読んでみてもいいかもと思いました。 動画内でも先生がいってることで、「睡眠7時間と朝散歩しましょう」ってことが一番大事かなと思いました。 また、この本の中でも色々な本を紹介されてたので、次に読みたい本が見つかったりもしました。 自分だけでなく、家族のだれが読んでもいい本だと思ったのでおすすめです。

ってか過去に読んでたアウトプット大全も樺沢先生でした。 hellhellmymy.hatenablog.com

休養学:あなたを疲れから救う、を読んだ

休養学:あなたを疲れから救う

を読みました。

本屋の本棚でたまたま気になって、そのまま購入しました。

 

 

感想

人間は休日に何もしない家でダラダラするような休み方だと50%程度しか休養は取れず、完全回復できないようです。

そこで休みの日にあえて外に出て運動をしたり、誰かと食事したり、何かの創作に没頭したり、映画見たり、読書したり、etcで何か実践することで休養になるという内容でした。それをやるメリットとかも解説してました。

確かに、だらだらスマホを見ていても脳が疲れるだけなんで、やっぱ外に出かけた方がいいのかな~と思いつつ、子供を毎週外に連れ出して公園で遊んだりしてます。

風呂につかるのも身体に水圧の負荷をかける意味での運動になるってことも書いていて、最近は風呂にしっかり浸かるようになりました。笑

 

イラストや図もあり読みやすいです。サクッと読めます。

疲れ気味の方や、休みの日に疲れがとれない人にはおススメです。

 

 

 

Ruby on Railsアプリケーションプログラミングを読んだ

今回WINGSプロジェクトのレビュー企画に応募し、献本してもらったので、 書評を書きました。

Ruby on Railsアプリケーションプログラミング

 

 

この本の著者の山田祥寛さんの本は、過去に独習PHPを読んだことがあり、いい意味で固くしっかりしてる印象を持っていました。

hellhellmymy.hatenablog.com

では、良いところ、悪いところで書いていきます。

良いところ

自分のrails知識が実務ではバージョン4とかで止まっていたので最新(バージョン8)に近いバージョンでの機能について深く知ることができました。 実際に本を1回読むことで、これまで何となくで使ってた機能、この本読まないと気づけなかったなぁと思う部分も多々ありました。 手を動かして何かを作ろう!というタイプの本ではなく、完全ではないが網羅的に各機能の解説がされていてよかったです。 いたるところで図を使った解説もあり理解しやすいと思いました。 オススメな使い方としては1回全部読んで、それ以降はリファレンス(辞書)的な使い方がいいと思います。 オプションやメソッドに関する表も見やすくて良かったです。 個人的には9章のフロントエンド開発の部分での解説が良くて、アセットパイプラインやコンパイルについて書いてあって勉強になりました。

悪いところ

そんな悪いと感じるところは少なく、しいて言うなら、 やっぱり構成上しょうがないと思うのですが、図や表が途中で切れてしまってるところが読みづらいことがありました。 また11章の本番へのデプロイはrenderに関して初めてだったのですが、renderどういうものなのか説明もなくいきなり使用方法から入ってたので、ググればわかるとはいえ、ざっくりでもいいので何かどういうサービスでどういうことができるか説明しておいた方が分かりやすいと思いました。 AWSの方が現場ではメジャーな気がするのでそちらのデプロイでもいいのでは、と思ったりもしました。

対象読者

最低でもrailsで何かしら手を動かして何かシステムを作ったことがある人向けです。 railsチュートリアルやドットインストール等のオンライン教材でもいいので、1回何か経験をしたうえで、その時の不明な部分を点と点で結んでいくようなことができます。

WINGSプロジェクト様ありがとうございました。

IoT開発:ラズパイピコWで水温計測しブラウザでグラフ表示してみた

我が家では夏に捕獲したメダカを庭の水槽で育てています。

アナログの水温計で確認はできるのですが、時間や季節ごとに実測値でどう変化してるのか知りたかったので、 庭にあるメダカ水槽の水温管理したいので、開発することにしました。 前回作ったラズパイ水温系に機能追加しました。

hellhellmymy.hatenablog.com

仕様

ざっくりです。この辺の仕様をchatGPTにまず理解させてから、受信側→ラズパイ側→cronという流れで開発していきました。

  • cronで毎時0分にwifiネットワーク配下にあるラズパイ水温系で測定
  • ラズパイは水温測定したらデータをPCのdocker上にあるwebサーバに送信
  • webサーバはラズパイデータ取得したら、天気APIから天気データも取得
  • webサーバは水温、日時、天気データをDBに登録
  • webサーバはDB登録データをグラフ表示

全体図

こんな感じ これもchatGPTに作らせて5分でできた図です。図を書けというと、マジで意味不明なものを生成するのですが、UMLで書かせるといい感じです。

実装

ソースコードgithubにあがってるので、そちらを参考にしてもらえればと思います。 流石に全部ブログには貼り切れないかな。

ラズパイ

ラズパイ側のファイル構成

/project-root
│
├── boot.py           # デバイス起動時に実行されるスクリプト
├── main.py           # メインのエントリーポイント
├── wifi.py           # Wi-Fi接続用のコード(モジュール)
├── sensors.py        # 温度センサ用のコード(モジュール)
├── http_client.py    # WebサーバーへのHTTPリクエスト処理

まず上記ファイルを用意。 一つ一つのファイルを個別実行しながら動作確認すると確実です。

github.com

記録システム

記録システムはdocker上にapachemysqlを用意。 githubにソースをあげてるので、そちらcloneして構築すればすぐ使えます。 github.com

Ubuntu(WSL2)が起動するとびに時間がずれ&cron止まる問題

cronは下記で毎時0分に実行される。

#ラズパイ水温測定
0 * * * * curl -X POST http://ラズパイのIP/measure_and_send

Windows側ではしっかり現在日時が問題なくコマンドで表示できるが、WSL2でdateコマンドで使ってみると時間が全然ずれてる。。。 同期して時間合わせてもスリープモードとか入るとまた時間がずれるので、どうにかしたい。

一応ググってみたけど、根本的には解決されてないようなので、WSL起動時に時間を同期するのと、cronも毎回スタートさせるのが面倒なので、 ~/.bashrcに下記を追記で起動時に都度時間修正するようにしてcronもrunにさせることにした。

# WSL起動時にcronを開始し、NTPで時間同期する
if service cron status | grep -q "not running"; then
    sudo service cron start
fi

# NTPで時間を同期する
sudo ntpdate -u pool.ntp.org

こういうの参考にした。

WindowsとWSL2の時刻のずれを修正する #Linux - Qiita

あとはスリープモード入らないように常時電源ONにしとくように設定しとけば毎時cronが実行されます。 というか、WSLでやらなくてもWindowsのタスクスケジューラとかでも良さそうですね。 そこは各環境でおまかせで。

実際に水温系を設置

一応保護するために適当(過ぎる)な袋に入れてます。 外なので電池駆動にしてみました。

水槽に水温センサをドボン。

手動で実行してみる。

#ラズパイ水温測定
curl -X POST http://ラズパイのIP/measure_and_send

cronと手動と電池切れが混在してるが一応取得してグラフ表示ができてる。

室内に置いてると気温測定できる。天気情報もとれてる。

今回得た開発のポイント

  • chatGPTとの開発で問題なくできる

感覚としてchatGPT8割、ググり2割といったとこでした。普段pythonとか書いてないから分かんないけどできた。

  • cronマシンは常時可動させる

それこそ専属で常時可動用に普通のラズパイとか用意してサーバ立てておいてもいいかもと思った。

  • 電池駆動はなんとなく安定しない

感覚でしかないけど、やっぱUSBからの電源供給の方が安定してる。ニッケル充電池で外で動かすと半日程度しかもたなかった。。。うちだけ??

メダカたち

なんと! 水槽のメダカたちは開発してる間に全滅してしまいました。。。。。。

今は掃除用に導入されてた、ミナミヌマエビとヒメタニシ水槽となってます。

メダカはまた温かくなったら捕獲してみようと思います。

目指せ越冬!!!!

下記クリックしていただけると励みになります!

ラズパイピコで水温計を作ってみた

やっほーやっほーこんにちわ ラズパイでLチカして遊んだので次は水温計を作りました。というか防水の温度センサーを繋げただけです。

前提

前回の記事でセットアップしたラズパイピコを使います。 hellhellmymy.hatenablog.com

chatGPTに必要なものをリストアップさせた

んで、下記を用意

  • DS18B20(防水温度センサ)
  • 抵抗4.7k(なかったので5k)
  • ブレッドボード
  • ラズパイピコ

センサに関しては1000円くらいで3つもついてきた。。。 こんなにはいらんな。。。。

chatGPTに接続方法を教えてもらう

事前にセンサの線を延長するべくはんだ付け

既存の状態だと3色の線が短すぎるので延長した方がいいです。 前回購入したラズパイスターターキットに入ってた線を勝手に切って半田付けしてしまいました。 過去にギターのシールドやエフェクター製作もやってたので半田等の工具も既にありました。

延長したらこうなる

配線の確認

  • DS18B20センサーの赤い線 → VCC (3.3Vピン)
  • DS18B20センサーの黒い線 → GND
  • DS18B20センサーの黄色い線 → GPIO4ピン(コードで指定したピン)
  • プルアップ抵抗(4.7kΩ) → 黄色い線と赤い線の間に接続(データラインを安定化するため必要)
DS18B20  (赤) ---------- 3.3V (Pico)
         (黒) ---------- GND (Pico)
         (黄) ---+------ GPIO4 (Pico)
                  |
                  +-- 4.7kΩ抵抗 -- 3.3V

こんな感じで取り付け。

thonnyで接続確認しコードを実行

thonnyを開いてラズパイ内に任意のpyファイルを作る。そんで、その中に下記コードを記入してThonnyの実行ボタンで実行すると測定開始した!!!

import machine
import onewire
import ds18x20
import time

# DS18B20のデータピンをGPIO4に接続
dat = machine.Pin(4)

# 1-Wireバスの初期化
ds_sensor = ds18x20.DS18X20(onewire.OneWire(dat))

# 接続されている全センサーのROMアドレスを取得
roms = ds_sensor.scan()
print("Found DS devices:", roms)

while True:
    # 温度を取得
    ds_sensor.convert_temp()
    time.sleep(1)  # 温度データの変換に時間がかかる

    for rom in roms:
        print("Temperature:", ds_sensor.read_temp(rom), "°C")
    time.sleep(2)

折角なので脇に挟んで体温を測ってみたが35℃くらいからは少量づつしか上昇しなかった。

ってことで水でも無事測れたのでよし。

次回へ続く。。。。。。