今回の記事は、
windows10PCにあらかじめ作成しておいたデータベースに
RaspberryPiからアクセスしてみよう。
というお話です。
もちろん無線LANを経由していますので、
配線は不要です。
作業の説明が長いですが、
実際の作業は実は簡単です。
ぜひマスターしてみてください。一気に幅が広がりますよ!!
本題の前に軽く自己紹介します。
それではこの記事の内容について見ていきましょう。
この記事を読んでできるようになること。
どんな時にこのシステムが使えるか。
例えば、こんな時にこのシステムを使うとメリットがあります。
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へのアクセスを試みても、
うんともすんともいわない問題が発生しました。
解決方法。
こちらの記事が参考になりました。
https://mugendennou.net/linux/raspi/raspitrouble/wifistaticipaddress/特に参考になったというか、
ここで解決したよ。というのが、
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)