2017年3月16日木曜日

RaspberryPiもLinux

ラズベリーパイ上で、PythonとPHPを連携させて、ファイルを作成したり削除したりということをやろうと簡単に考えましたが、Linuxの場合はいろいろと権限が厳密で甘い考えだと大変な目にあいそうだということがわかってきました。少し頭を冷やして別の方法も考えてみようと思います。


PHPからPythonを実行

PHPが実行され、その中で、Pythonのプログラムが呼ばれる。Pythonは実行時に引数をコンソールに表示する仕組みで、Pythonで出力したものを、PHPのvar_dump($outpara[0]); var_dump($outpara[1]); でブラウザ上に表示している仕組み。



2017年3月15日水曜日

RaspberryPi3 Python ファイルから読み込んだデータの印字

現時点で、全角のみのデータですが、ファイルから読み込んだデータを印字できました。失敗も多いですが、Pythonの命令も少しずつ試せています。


Python 00~ffを0~255に変換

かなり限定的な変換プログラムです。


Python 文字列抽出

16進数で書かれた文字列を2文字ずつ抽出して数値に変換


印刷の失敗

ファイルから読み込んだ日本語のデータを印字するつもりが、コードを印字してしまいました。考えてみれば当たり前のことでした。Pythonでの文字列関係の操作に関して勉強が必要です。



レシートプリンタ対応 ファイルから日本語を読み込む場合のテスト

ファイルからUTF8の日本語を読んでシフトJISにしようとしたとき、はっきりとは説明できませんが、いったんunicodeにしてやる必要があるのかもしれないです。面倒な気もしますが、日本語を含むデータを扱うときは、本来難しいという思いでいれば、案外単純な手続きで、変換してくれるのかなとも思えます。



レシートプリンタ対応の日本語(漢字)関係のテスト

日本語の扱いはちょっと難しいとは思いますが、いくつかテストはしてみようと思います。まずはプログラムの中で日本語がシフトJISのコードに変換できているかのチェックをPythonでやってみました。結果は大丈夫みたいです。



最初は数をこなそう

感熱紙も無駄にはならないはず。


2017年3月14日火曜日

RaspberryPi3でバーコードの印刷

バーコードの印刷を行いました。CODE39というタイプのバーコードです。



RaspberryPi3でレシートプリンタ(2)

半角英数字 半角カナ 漢字  文字の印刷に関してと用紙カットに関して少しわかってきました。横倍角 縦倍角 というのは久しぶりです。VisualBasicなどで難しいと感じた、1行だけ印刷とか、行送りだけとかは普通にできました。(16進数で0Aのコードを送れば、その行を印字してくれる)



2017年3月11日土曜日

RaspberryPi3でレシートプリンタ

スマートさには欠けますが、手持ちの部品で、ラズベリーパイとレシートプリンタを接続しました。Pythonでシリアルポートに対してエスケープシーケンスのデータを送る方法です。




エスケープシーケンスがまだちゃんとできていませんが、レシートプリンタをシリアルコネクタでラズベリーパイとつないで、印字および用紙のカットができるのを確認しました。以前に印字に関してはチェックできていましたが、用紙カットも制御できるのがわかりました。Windowsほど手軽ではないと思いますが、ラズベリーパイでも、簡易的な印刷が可能になりそうです。


RaspberryPi サーバー上での環境

Apache2の画面とphpMyAdminの画面が見えました。RaspberryPi上でサーバーが動きだし、php(webでのプログラム言語)が使える。そして、MySQL(データベース)も使えますよ。という状態にまでは、なりました。あとはコツコツとやることです。




RaspberryPiでApache入ってる?のチェック

Webのプログラムについて自分のレベルアップをするとしてその前に、サーバーを動かさないといけません。以前に曲りなりに何とか動かしたラズベリーパイにはApacheを入れています。もう一度セットアップを思い出して、これから使おうとするラズベリーパイにもセットアップしようと思います。アパッチ入ってるのかな?をチェックする方法として
画像のようにコマンドを入力しました。
apachectl -v
(今後mysql「データベース」を使う可能性も高いのでサーバーはApacheのほうが便利と今現在は思っています)


2017年3月10日金曜日

レシートプリンターを活用しよう

レシートプリンターを予備機として持ってるだけというのは非常にもったいないので、予備の間を利用して、次に活用できるように、テストしてみようと思います。USB接続が一番一般的ですが、今回、少し特殊な要求に100%は答えれなくて、内部のディップスイッチ(設定スイッチ)を変更して、レシートのオートカット(紙のカット)の機能を無効にさせてもらってなんとかしました。USB接続ではなく、シリアルケーブル接続で、エスケープシーケンスを使えは細かい制御ができるのではないかと思っています。フォントに関しては目をつむることになるとは思いますが。。。ラズベリーパイ、Python、HTML5、PHP、JavaScriptこのあたりを駆使すれば何とかなるはず。。

HTML5、PHP、JavaScriptのレベルも上げよう。と思います。場数を踏もう。


2017年3月9日木曜日

ラズベリーパイのIPアドレスをシールで貼りつけた

ラズベリーパイのIPアドレスを記載したほうがいいかなと思い、参考意見を聞きました。ケースにおさめるのが一番シンプルだと思いますが、管理が悪くてどこかにうずもれていましたので、単純にプラスチック系の板にのせて、その裏にIPアドレスを印刷したラベルを貼り付ける方法にしました。固定するための穴の寸法は、あてがい細工なので、参考にはなりません。穴も実際には、直径3.2mmの穴をあけました。それから3mmにネジがラズベリーパイの基板では通せないので、2.6mmのねじを使っています。
単純ではありますが、教えてもらったことを実行できて、時間がたってもIPアドレスは何番だったかなと思う手間は省けるので、よかったと思います。





ラズベリーパイ3をLANケーブル(クロスケーブル)でつなぐ確認

ラズベリーパイ3で、wifiが普通に使える状態ですが、念のために、LANケーブル(クロスケーブル)でパソコンと1対1でつなぎ操作する確認をしておきました。ゲートウェイの設定など、必要ないようなこともあるかも知れませんが、写真のように設定して、パソコンからラズベリーパイが操作可能ということを確認できました。

ラズベリーパイを外の環境、よその環境に持っていったときに、wifiに入れないときも一時的に発生することを考えてのチェックです。ラズベリパイで設定しているIPアドレスだけは、見えるところに書いておきたいかな?と思いました。



ラズベリーパイに素直にキーボード、マウス、ディスプレイをつなぐ



ネットワークのところの


有線の設定



パソコンとLANのクロスケーブルでつなぐ

パソコンに有線LANを

 固定IPアドレス設定

パソコン側からSSHで接続できたことを確認
有線LANのIPアドレスが表示されているのでOK

2017年3月7日火曜日

python タイマー割り込み(別スレッド)

ネットの情報を参考に、ラズベリーパイのpython(プログラム言語)でタイマー割り込みの処理をチェックしてみました。5秒ごとにloop heloを出力する中で、3秒ごとにhelo warikomiを出力する。というイメージだと思います。24時間動かして問題ないかのチェックはできていませんが、足がかりはつかんだ気がします。これとは別に、GPIOの入力値変化での割り込み処理もどこかで試そうと思います。



2017年3月5日日曜日

水位のレベル変化をファイルに記録

水位のレベルが0から7まであるように設定して、レベルが変化したときの時刻をファイルに記録してみました。秒単位で水位をチェックしたら、水面の波などでレベルが絶えず変化するようなデータが取得されると思います。たとえば、1分なり5分なりの間隔でデータ取得を行うと、長い期間で見た時に、どう変化したかは把握できるのではないかなと思います。


日付と時刻に関するプログラム python(パイソン)

ラズベリーパイで、プログラムを作りました。python(パイソン)という言語です。プログラムの内容は、プログラムの動いた日をファイル名にして、動いた時刻をファイルの中に追加モードで書き込むという単純なものですが、Excelのマクロや、JavaScriptなどと、どう違うのかを把握するにはちょうどいい感じのプログラムだと思います。


2017年3月4日土曜日

水面レベルの検知

つっこみどころは満載だと思いますがラズベリーパイを使って水面のレベルがどこなのかを把握する仕組みを作ってみました。水深が何ミリではなく、水面レベル3とか4とか、そんな感覚です。


2017年3月3日金曜日

ラズベリーパイで水を検知

ラズベリーパイを使って水を検知してみました。実際の川の水なので、きれいなものではないのでそこはご了承ください。LEDを光らすだけのテストプログラムです。