みなさん、こんにちは。
高周波機器設計課の中野と申します。よろしくお願いいたします。
今回は、前回のブログで準備したRaspberry Piと、以前のブログで作成した電子ペーパー名札を使って、Webの勤怠情報をスクレイピングで取得して、名札に表示したいと思います。これで、ホワイトボード(行先予定表)へ行かずとも名札を裏返せるようになります。
イメージはこんな感じです↓
今回は、プログラムを以下の感じで、作って動作させてみます。
- 取得したいデータの調査
- Pythonでスクレイピングのプログラミング
- Cronで定期実行
それでは実際に作っていきましょう!
■取得したいデータの調査
ブラウザの検証機能を使って、スクレイピングで必要な、取得したい要素の情報を集めていきます。今回は勤怠ボタンの状態で、出社しているか否かの判断をしたいので、勤怠ボタンの情報を調べます。
Chromeの検証機能↓のような感じです。
勤怠ボタンの名前を調べています。名前がわかったら、スクレイピングで状態が取得できますね。
■Pythonでスクレイピングのプログラミング
Webページで取得したい情報(勤怠ボタンの名前)がわかったら、Pythonでプログラムを書いていきます。
全体的な動作の流れは、↓の感じです。
- ログインページを開く。
- IDとパスワードを入力して、勤怠情報がわかるページまで移動する。
- 勤怠情報を取得したら、ESP32のページにアクセスし、名札を裏返す。
プログラムの作り方は、↓の感じです。
- Chromiumのインスタンスを生成するとブラウザが立ち上がります。
- get(url)を使って、指定したurlへ移動します。
- find_element_by_id(idName)を使って押したいボタンやテキストボックスの要素を取得します。
- で取得した要素に対してsend_keys(string)または、click()を使ってキーボード入力やクリックをします。
- あとは 3. 4.を組み合わせて、目的のWebページまで進んでいきます。
プログラムができたら、実行してみます。
ログインが終わると、勤怠の表示画面まで進んでいきます。勤怠の表示画面で、出社か退社か確認出来たら、↓の電子ペーパー名札のWebページにアクセスして、名札の色を変更します。
名札↓が出社中(白)になりました!
ここまで、ソフトが問題なく動作していることを、確認できました。
■Cronで定期実行
プログラムが動作していることが確認できたら、プログラムの実行時間を考慮して、3分間隔ほどの定期実行タスクを追加します。
Cronは指定した時間に、プログラムを実行できるUNIX系の常駐プログラムです。毎週決まった時間にプログラムの実行等ができます。今回は3分おきに実行という命令を、テキストエディタでCronの設定ファイルに追加しておきます。
これで、定期的に勤怠情報を確認して、電子ペーパー名札の表示が変わるようになりました。
WTIでは、このような感じで楽しく開発を行っています。弊社ではIoT関連のラピットプロトタイピングを得意としており、組み込み機器の回路設計、基板設計、ソフトウェア設計、筐体設計は弊社で一貫して行えます。また、システム全体の設計でお悩みの方も、ぜひ弊社にお任せください。
また、今回のブログの内容は、インターンシップの資料にもなっていますので、興味のある学生さんは、ぜひ参加してみてください。
それではまた、次回お会いいたしましょう!
【関連リンク】
【関連ブログ】
- Infineon社車載マイコン評価ボード AURIX™ TC375 Lite kit V2 を使ってLIN通信にチャレンジ!(前編)
- ESP32で電子ペーパー名札をつくってみた
- Infineon社製AURIX2Gマイコン「TC397」を搭載した評価ボード「TriBoard」を使用してCAN FD通信をやってみた!
- IoT機器のOTA化が意外と進まない理由とは part4 ~エンベデッドセキュリティはHSM(ハードウェアセキュリティモジュール)がRoT(信頼の基点Root of Trust )に~
- IoT機器のOTA化が意外と進まない理由とは part3 ~エンベデッドセキュリティはHSM(ハードウェアセキュリティモジュール)がRoT(信頼の基点Root of Trust )に~
- IoT機器のOTA化が意外と進まない理由とは part2 ~エッジコンピューティングへのニーズの高まりとハッキングの危険性~
- IoT機器のOTA導入が意外と進まない理由とは
- IoT時代の開発者が知っておくべき組込みセキュリティ対策とは? PartⅡ
- IoT時代の開発者が知っておくべき組込みセキュリティ対策とは?
- 組込みソフトウェア作成時のポイントを紹介します
- ESP32マイコンでOTA! Wi-Fiでプログラムを書き込む
- M5stackで簡易Wi-Fiチェッカーを作ってみました
- 無線モジュール搭載IoT機器の開発には幅広い知見と技術が必要です
- IoT化のお手伝い-ワンストップでアイデアを形にします
- WTIブログ(IoT関連)
【関連動画】
WTIメールマガジンの配信(無料)
WTIエンジニアが携わる技術内容や日々の業務に関わる情報などを毎週お届けしているブログ記事は、メールマガジンでも購読できます。ブログのサンプル記事はこちら
WTIメールマガジンの登録・メールアドレス変更・配信停止はこちら
WTIの技術、設備、設計/開発会社の使い方、採用関連など、幅広い内容を動画で解説しています。