今回の記事は、
windows10PCにあらかじめ作成しておいたデータベースに
RaspberryPiからアクセスしてみよう。
というお話です。
もちろん無線LANを経由していますので、
配線は不要です。
作業の説明が長いですが、
実際の作業は実は簡単です。
ぜひマスターしてみてください。一気に幅が広がりますよ!!
本題の前に軽く自己紹介します。
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
それではこの記事の内容について見ていきましょう。
この記事を読んでできるようになること。
どんな時にこのシステムが使えるか。
例えば、こんな時にこのシステムを使うとメリットがあります。
RaspberryPi楽しいけど、データをメインPCに飛ばしたい。
RaspberryPiは電子工作が楽しいコンピュータですが、
おそらく日常のメインPCとして使用している人は少ないでしょう。
そんな中、RaspberryPiで取得したセンサーのデータなど、
メインPCでまとめたいな。
なんてこともあると思います。それも、
RaspberryPiから自動的にできたら
とても便利ですよね。
それに今回ご紹介するのは無線通信ですので、
LANケーブルが邪魔になることもありません。
マスターできれば、電子工作の幅が広がること間違いなしですね!
Windows用のセンサーは無いけど、RaspberryPiで扱えるセンサーはある。
よくある話ですが、RaspberryPi用のセンサーを大量に持っていて、
ちょっとメインのWindowsPCでもRaspberryPi用のセンサー使いたい。
っていうシチュエーションてあると思います。
また、センサー類がドライバーが必要なUSB接続式のWindows用だと
ちょっと高額になりますよね。
もちろんパッケージングされている分手間がかかっているので、
値段設定がおかしいということではないんですが…
センサーの代表選手温度計を例に挙げると…
こちらのシンプルなUSB温度計でさえこの値段ですが、
こちらの、みんな大好きDHT11のパチモンはなんと
同じ値段で5個買えてしまいます。
まあ、まず個人で5個も買ってどうするんだ
って話はあるんですが笑
同じ値段で5個買えてしまいます。
とにかくいろんなデータを安い設備費用で集めたい。
↑のお話でセンサーがUSB用よりも
だいぶ割安というお話をしましたが、
Point
RaspberryPi本体がそもそも1万円で購入できるので、
いろいろな場所に設置してデータが取りたい場合に、
大きなメリットとなります。
本当にコストを抑えるなら、Arduinoが最強なんですが、
それは本題からそれるので、
今回は割愛します。
MySQLの接続イメージ
絵にするほどのことでもないのですが、
今回接続するイメージ図を用意しました。
とにかく、LinuxベースのRaspberryPiから
Windows10PCにアクセスするよ。
ってことが言いたいです笑
準備する物
それでは実際必要なものをご紹介していきます。
どこの家庭にもあるような物ばかりですので、
すでにお持ちの方がほとんどだと思います。
Wi-Fiルーターの調子が悪い方はこの際思い切って
新しいスタートということで、
買い替えなんていいんじゃないでしょうか。
MySQLのインストールされたWindows10PC
はい、こちらはデスクトップでもノートでも構いません。
まだWindowsにMySQLをインストールしていない。
という方はこちらでインストール方法を紹介していますので、
参考にしてみてください。
変わり種としてタブレットでも、まあ行けると思います。
ちょっと試していないので何ともですが、
Windowsタブレットって確かタブレット用のOSになっていないはずなので、
多分行けるはずです。
VSCODEのインストールされたRaspberryPi
RaspberryPiですね。
何はともあれこれがないと始まりません。
VSCODEが入っている、としたのは
完全に私の趣味です笑
お気に入りのエディタがある方は
無理してインストールする必要はありません。
無線LAN親機
以外と大事なこちらですね。
私は最近TP-Linkの安物を買って後悔しているんですが、
オススメできるのはやはりBuffalo製のWi-Fiルータですね。
例えばこんなWi-Fiルータでしょうか。
接続の手順その1(Windows10PC側)
今回無線で接続しますが、いくつかポイントがあります。
やることの中身はRaspberryPiと同じなのですが、
具体的な手順が異なるので注意してください。
順番 | Windows10PCで行う手順 |
---|---|
① | 今接続しているWindowsPCのIPアドレスを調べる |
② | Wi-FiルータのIPアドレス(デフォルトゲートウェイ)を調べる |
③ | IPアドレスを決めて固定する |
④ | 接続されるまで待つ |
パソコン類の、ネットワークに繋ぐ機器は
すべてIPアドレスなんて手動の固定だ!!
というガチな方は飛ばしていただいて大丈夫です。
何を言ってるかわからない人は、
素直に読み進めていってください!!
今接続しているWindowsPCのIPアドレスを調べる
まずは今お使いのWindowsPCをネットにつなげてください。
もちろん無線でお願いします。※一応有線でも大丈夫です。
Wi-Fiルータと無線でも有線でもつながっているのが重要です。
windows10PCのIPアドレスの調べ方
それでは前置きが長くなりましたが、IPアドレスの調べ方です。
まずはコマンドプロンプトを開いてください。
キーボードのWindowsキーを押して、
cmdと打つとおそらく一番上に表示されます。
起動したら、
ipconfig
と打ち込んでEnterキーを押して下さい。
するとよくわからない内容が、
ズラッと出てくるはずです。
メモするところは↓の黄色の線で囲んだところです。
忘れないようにどこかにメモしておきましょう。
もちろんPCのメモ帳でも大丈夫です。
Wi-FiルータのIPアドレス(デフォルトゲートウェイ)を調べる
Wi-FIルータのIPアドレスですが、
重要なのが、ルーターにもIPアドレスが指定されていて、
こいつをしっかりとPC側にも指定してあげないと、
PCやRaspberryPiで固定IPアドレスで接続したときに
挙動がおかしくなります。
Wi-FiルータのIPアドレスの調べ方
実はこちら、先ほどメモしていた
デフォルトゲートウェイという物です。
ですから、改めて何かする必要はありません。
IPアドレスを決めて固定する
先ほどメモしたIPv4アドレスなどを使用して、
具体的に通信できるように設定していきます。
手順通りにやれば難しくありません。
それではやっていきましょう。
まずはWindowsのスタートボタンを押して出てくる、
歯車のマークのアイコンを押して、
↓のような画面にしてください。
ネットワークとインターネットを選ぶ
設定内の、ネットワークとインターネットを選択しましょう。
ネットワーク関係の設定はこちらからできますので、
覚えておきましょう。
アダプターのオプションを変更する
まず左のタブから、
状態タブを選択してください。
その後、オレンジでマーキングした
アダプターのオプションを変更する を左クリックしてください。
IPv4プロパティを表示させる
↑のように、①~④まで順番にクリックしていきましょう。
説明としては、
①で今現在無線で接続されているWi-Fiルータを選択。
②でルータとの接続のプロパティを表示させる。
③でIPv6を使用しないように設定変更。
この設定については、
今回IPv4で決め打ちで接続(※そのほうが簡単)したいので、
IPv6は使用しないように、
チェックボックスは外しています。
④はIPv4の設定を開くためにダブルクリックします。
IPアドレス、デフォルトゲートウェイなどを固定する
IPv4のプロパティは出てきましたか??
出てきたら↑のように、①~③まで順番に操作していきましょう。
説明ですが、まずはメモしたIPアドレスなどが必要になりますので
手元に用意してから操作を始めましょう。
説明としては、
①はIPアドレスを自動取得から、固定にします。
②は、メモしておいたアドレスを打ち込みます。
サブネットマスクですが、
255.255.255.0
で特に問題ないです。
デフォルトゲートウェイもメモしているはずですので、
そちらを書いてください。
③はDNSサーバーとありますが、
デフォルトゲートウェイと同じものを入れてください。
接続されるまで待つ
ここまでくれば、
windowsのほうの設定は終わりになります。
インターネットにつながるか?
また、再度コマンドプロンプトで
ipconfig
と打ち込んで打ち込んだIPv4アドレスになっていれば、
特に問題ありません。
接続の手順その2(Raspberry側)
それではWindows側の設定が終わりましたので、
次はRaspberryPi側の設定に移りましょう。
設定する内容はWindowsと一緒です。
順番 | RaspberryPiで行う手順 |
---|---|
① | 今接続しているRaspberryPiのIPアドレスを調べる |
② | IPアドレスを決めて固定する |
③ | 接続されるまで待つ |
それではさっそく↑の表のとおり説明していきます。
RaspberryPiのIPアドレスを調べる
Windowsではコマンドプロンプトから
調べていましたが、
RaspberryPiは、LXターミナル、
いわゆるRaspberryPi版のコマンドプロンプトから
調べることができます。
コマンドはWindowsとは異なりますが、
ifconfig
と打ち込んでみましょう。
するとずらっと表示されるのですが、
RaspberrPiの現在のIPアドレスは、
broadcastというところに表示されています。
そのアドレスをまたメモしておきましょう。
これが現在のラズパイのIPアドレスです。
windowsと同様、後ほど使用します。
RaspberryPiのIPアドレスを固定する
それでは、先ほどメモしたIPアドレスに
RaspberryPiを固定していきましょう。
操作としては、まず画面のWi-Fiマークを
右クリックしてください。
するとこちらのようにタブが表示されますので、
一番上のWireless&~~~Setting
というのを選択して下さい。
すると今度はこのような画面が出てくるはずです。
設定することの説明ですが、
①ではwlan0を選択してください。
②ではWindowsの時と同様にIPv6を使用しないので、
チェックボックスにチェックを入れてください。
③では、先ほどメモしたbroadcastの値を入れてください。
④ではルーターのIPアドレスを入れてください。
接続されるまで待つ
ここまででRaspberryPiの設定は完了なのですが、
重要なこととしては、RaspberryPiは、
再起動(reboot)しないとここまでやってきたIPアドレスの設定が反映されません。
Windowsの時はすぐに反映されますが、
RaspberryPiはそうはならないので、
設定が完了したら、適用ボタンを押して
RaspberryPiを再起動しましょう。
接続の手順その3(ソフト側)
ここまででハード側の設定は完了しました。
あとはRaspberryPiでWindows側にアクセスするだけです。
ただし、windows側のMySQLにアクセスする場合、
ログイン用のUserを作成しておいたほうが良いです。
Userの作成はアクセスされるWindows側で行いますが、
記事が長くなってしまうので、別記事で紹介いたします。
RaspberryPiのPythonの準備
RaspberryPiには初めからPythonがインストールされていますが、
エディターがちょっと使いづらいので、
VSCODEをオススメしています。
関連記事はこちら↓↓↓
VSCODEとはpythonでMySQLを操作する方法ですが、
すでにWindowsのみで完結させる方法は記事にしているのですが、
※そのときの記事はこちら↓↓↓
PythonでMySQLやってみる実はRaspberryPiでは同じモジュールが使えません。
そのため、PyMySQLというモジュールを使用します。
pipでPyMySQLをインストールしてください。
具体的には、
VSCODEのターミナルで、
pip install PyMySQL
と打ち込んで実行してください。
Pythonのソースコード
それではRaspberryPiでMySQLを
操作するモジュールもインストールできたので
実際に操作してみましょう。
こちらが実際のソースコードです。
# PythonでMySQLを使用するために必要なライブラリ import pymysql.cursors # データベースにアクセスするためのパラメータ connection = pymysql.connect(host='Windows側のIPアドレス', user='アクセス用のユーザー名', password='アクセス用のパスワード', db='world', charset='utf8', # Selectの結果をdictionary形式で受け取る cursorclass=pymysql.cursors.DictCursor) # カーソルを取得する cur = connection.cursor() # プリインストールされているデータベース(worldを選択) sql = "use world" cur.execute(sql) # worldに格納されているテーブル(city)のカラム属性を取得する sql="select* from city where Name='Tokyo'" cur.execute(sql) # 実行結果を取得する rows = cur.fetchall() # 一行ずつ表示する for row in rows: print(row) cur.close connection.close
ユーザー名やパスワード、ホストは
皆さん環境によって違うので、
それぞれご自分の環境に合わせて変更してください。
Tokyoの情報が出てきたら成功です!
ちなみに….
テストしてexcuteできない場合(エラーになる場合)は、
今一度LXターミナルを開き、
ping windowsPCの固定したIPアドレス
と打って、そもそもつながっているか確認しましょう。
具体例として、もしwindowsPCのIPv4アドレスを、
192.168.1.1としていた場合は、
ping 192.168.1.1
このように打ち込んでEnterを押しましょう。
unreachableと出てきたらそれは接続できていないということです。
もしraspberryPiからpingが通っていなかったら。
つい最近あったトラブルですが、
windowsPC側のIPアドレスも、wifiルーターのIPアドレスも、ラズパイのIPアドレスも固定し、
mysqlをつなごうとしても、「一向につながる気配がない…」
むしろ、先ほどのpingでwindowsPCへのアクセスを試みても、
うんともすんともいわない問題が発生しました。
解決方法。
こちらの記事が参考になりました。
特に参考になったというか、
ここで解決したよ。というのが、
dhcpcd.conf
ラズパイのこのconfigが悪さをしていました。
手順は参考記事の通りですが、一応念のため紹介しておきますが、
dhcpcd.confの位置は、
LXターミナルを開いたディレクトリから、etcに移動した中に存在します。
というわけでそもそものdhcpcd.confの開き方ですが、
cd /etc open dhcpcd.conf
上記の命令を一行ずつLXターミナルで打ってEnterしてください。
すると、テキストエディタでdhcpcd.confが開きます。
その中の、
inform [IPアドレス]
となっているところ(下のほう)を、
static ip_adress=ipアドレス
とすることによって解決しました(私の場合)。
例えばラズパイのIPアドレスを
192.168.1.50で固定したはずなのにつながらない場合、
inform 192.168.1.50
となっているところがないか、dhcpcd.confで探します。
もし、そうなっているところを見つけたら、
static ip_adress=192.168.1.50
このように変更して保存しましょう。
保存後は再起動しましょうね。(reboot)
コメント