youtube始めました

RaspberryPiでWindows10PCのMySQLテーブルに【Python】でアクセス

_
MySQL
この記事は約20分で読めます。

今回の記事は、

windows10PCにあらかじめ作成しておいたデータベースに

RaspberryPiからアクセスしてみよう。

というお話です。

もちろん無線LANを経由していますので、

配線は不要です。

作業の説明が長いですが、

実際の作業は実は簡単です。

ぜひマスターしてみてください。一気に幅が広がりますよ!!

本題の前に軽く自己紹介します。

自己紹介

東証一部上場企業でサラリーマンしてます。

主に工場(生産現場)で使用する検査装置のアプリケーション開発してます。

ヒトの作業を自動化して簡略化するアプリケーションを日々開発中。

それではこの記事の内容について見ていきましょう。

この記事を読んでできるようになること。

この記事を読んでできるようになること
  • RaspberryPiでMySQLを使えるようになる。
  • RaspberryPiでOSの違うPCのデータベースにアクセスできるようにある。
  • RaspberryPiを使って無線通信でデータベースにアクセスできるようになる。

どんな時にこのシステムが使えるか。

例えば、こんな時にこのシステムを使うとメリットがあります。

このシステムを使うのにメリットがあるシチュエーション
  • RaspberryPi楽しいけど、データをメインPCに飛ばしたい。
  • Windows用のセンサーは無いけど、RaspberryPiで扱えるセンサーはある。
  • とにかくいろんなデータを安い設備費用で集めたい。

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というところに表示されています。

そのアドレスをまたメモしておきましょう。

windowsと同様、後ほど使用します。

RaspberryPiのIPアドレスを固定する

それでは、先ほどメモしたIPアドレスに

RaspberryPiを固定していきましょう。

操作としては、まず画面のWi-Fiマークを

右クリックしてください。

するとこちらのようにタブが表示されますので、

一番上のWireless&~~~Setting

というのを選択して下さい。

すると今度はこのような画面が出てくるはずです。

設定することの説明ですが、

①ではwlan0を選択してください。

②ではWindowsの時と同様にIPv6を使用しないので、

チェックボックスにチェックを入れてください。

③では、先ほどメモしたbroadcastの値を入れてください。

④ではルーターのIPアドレスを入れてください。

接続されるまで待つ

ここまででRaspberryPiの設定は完了なのですが、

重要なこととして、RaspberryPiは

再起動しないと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の情報が出てきたら成功です!


独学の限界を感じているあなた。

昨今のトレンドに乗り遅れていませんか?

「苦労して少ない情報をネット検索するのはもうやめましょう。」

プログラミング習得のテッパンはずばりスクールです。

「最前線でしか手に入らない知識」を習得しませんか?

未経験からエンジニアに【CCNAコース】

まずは気軽にWEBの無料説明会からどうぞ。

コメント

タイトルとURLをコピーしました