RasberryPi3 における Python のSocket 通信

サンプルがあったので、それをそのまま使用・・・。

http://www.raspberrypirulo.net/entry/2016/10/29/Socket%E9%80%9A%E4%BF%A1%E3%81%AE%E4%BB%95%E6%96%B9%28%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E5%81%B4%29

 

しかしエラーが出ます。

File "./socket.py", line 43, in <module>
main()
File "./socket.py", line 27, in main
c_socket = socket_connect(HOSTNAME,PORT,INTERVAL,RETRYTIMES)
File "./socket.py", line 12, in socket_connect
c_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
AttributeError: 'module' object has no attribute 'AF_INET'

                          」

 

調べると、このファイル自体にsocket.py という名前を付けてはだめだよ、

ということでした。頭でインポートしている import socket が利かないのです。

sockets - WebSocket server in Python: 'module' object has no attribute 'AF_INET' - Stack Overflow

 

rasberry pi 3 で 計数カウンタを作成する1

PLCを使用するよりも、安くできそうなので、

RasberryPi3 Model B を使用して計数カウンタを作成しました。

 

一番の問題は、電気のことも回路のこともわからないということ。

頑張ってみました。

 

まずはLEDを光らせてみます。

いろいろなサイトを参考に、

GPIO25 → 抵抗 → 発光ダイオード → GND

をブレッドボードで作成することにしました。

 

何の道具もないので大変です。

会社の同僚(電気、回路、PLC等の専門家)にお願いしてブレッドボード等を用意してもらいました。 抵抗の代わりに定電流ダイオードというものをもらいました。

LEDと定電流ダイオードは極性があるので、向きに注意します。

LEDは線が長い方が+ 定電流ダイオードは青くないほうが+です。

慎重に何度も見直し、GPIO25にジャンパワイヤを接続し、ブレッドボードにつないで、そこから定電流ダイオードに接続します。ブレッドボードもよくわからないので、ネット検索しながらです。定電流ダイオードの後にLED そして、RasberryPiのGNDに戻します。

   うむ。これはわかるような気がする。小学生の時に乾電池で電球を点けたことを思い出すような。

 さて、今度はRasberryPiを起動し、GPIOをどうやって制御するのか調べます。

どうやら、Pythonで簡単に制御できるようです。もしも、細かい制御やら何やらが必要になったら他の方法を探すことにして、とにかくGPIOを動かして?みます。

サンプルをコピペして、パイソンのスクリプトを走らせると、あっさりとLEDは点灯しました。

 あっさりできたので安心しました。Linuxに慣れておいてよかった。

 ここでLinuxも入門していると結構大変かな、と思いました。

 とにかく道具が何もなくてですね。

 ジャンパワイヤをネットで買ったのですが、中国からの発送で届くまでに1週間くらいかかりました。ほかにも道具がなくてなくて、そろえながらの作業です。

PHPExcel Permission denied について

PHPExcelで、エクセル保存時に、

Warning: ZipArchive::close(): Failure to create temporary file: Permission denied

 

とエラーが出ます。

 

パーミッションを777にしてもダメ。

わからなくなったので、テスト用のphpファイルを作成し、直接実行してみました。

<?php

require_once("/var/www/html/ ~/ lib/PHPExcel.php");
require_once("/var/www/html/ ~ /lib/PHPExcel/IOFactory.php");

$book = new PHPExcel();
$sheet = $book->getActiveSheet();
$sheet->setCellValue('A1', 10000);
$sheet->setCellValue('A2', true);
$sheet->setCellValue('A3', 'テスト');


$column = 1;
$sheet->setCellValueByColumnAndRow($column, 1, 'B1');
$sheet->setCellValueByColumnAndRow($column, 2, 'B2');
$sheet->setCellValueByColumnAndRow($column, 3, 'B3');

$writer = PHPExcel_IOFactory::createWriter($book, 'Excel2007');
$writer->save('out_excel/myTestxlsx');

?>

 

php ./myTest.php

 

!!!問題なく実行されます。

・・・・・アパッチから実行できない。

・・・・・SELinux を確認。

geteoforce           enforcing

 

家の環境ではSELinux を有効にしたいるのでした。忘れていました。

seteonforce permissive で無事にエクセルが出力されるようになりました。

 

Windows XP で 無線LANが接続されているのに・・・

会社の閉鎖ネットワークには、数台XPのPCが残っています。

セキュリティの問題は今回はなし。

 

無線LANの子機が壊れたので、新しいものに交換しました。

ドライバを入れて、ssid パスワード 接続。

接続完了し、状態も良好。

 

しかし、共有フォルダにアクセスできず、pingも通らない・・・。

 

以前にも同じことをしたような気がするが。

小一時間設定をいじくりまわし、

ようやくwep で接続されていることに気づきました。

 

wpaでないとアクセスできないように設定しているのでしたが、

無線ルータに、接続はできるんですね。

紛らわしい。備忘録です。

 

CentOS7 Bind クライアントのWindows10から名前解決できない。

IP6が優先されてしまい、

インターネットルータの方へ解決しに行ってしまっているらしい。

 

とりあえず、IP6を無効にすることで、nslookupできるようになりました。

 

サーバの方をIP6に対応させることを考えようと思います。

 

Windwos10において、MicroSD が認識しない。

会社でRasberry pi を購入。

購入したMicroSD

東芝 EXCERIA microSDHC16GB Class10 UHS-1対応 最大読込速度48MB/s 防水/耐X線 海外パッケージ品 THN-M301R0160A4

が 認識せずに焦りました。

 

会社のPCでまずは

 

Windows10  USBカードリーダー1 SDカードアダプタ → 認識せず。

Windows10  USBカードリーダー2 MicroSDをそのまま(させるものがあったため) → 認識せず

別のWindows10PC USBカードリーダー1 → 認識せず。

 

Windows7 USBカードリーダー1  SD カードアダプタ → 認識。

Windows7 USBカードリーダー2  MicroSDそのまま → 認識。

 

家のノートPC SDカードスロット SDカードアダプタ → 認識。

 

ウーム、Baffalo制のカードリーダーとWindows10の組み合わせがだめなのだろうか。

結局家のノートPCでOSをコピーしました。

 

そして翌日・・・・。

Rasberry pi にMicroSDを挿入して電源ON!

・・・起動しない。MicroSDのせいだと思い込みました。

苦しんでしばらくして、電源装置にスイッチがついていて、電源が供給されていないことに気づきました。ふう。

Raspberry Pi用電源セット(5V 3.0A)-Pi3フル負荷検証済

 
 
あふぉですな。ご注意あれ。電源が入れば、Rasberry pi の各所のLEDが点灯しますので、すぐにわかります。
 
 
※続報!
  MicroSD問題、ようやく解決しました。
   カードリーダーのCFカードの端子が折れて、短絡していました・・・・。
   カードリーダーをUSBに接続すると、カードを挿入していなくてもランプが点灯する。
   ・・・・そんな動作ではない。ということでようやく気付きました。
    カバーを開けて端子を確認すると、折れて接触していました。
    その部分を外すことで、ランプは消灯。SDカードを無事認識してくれました。よかった。
   

 

 

office 2007 から2016 へ 乗り換え時 ACCESSがフリーズする

EXCEL2007 のサポート期限が迫っているので、

会社のexcel を 2007 → 2016 へ 変えました。

 

会社のシステムがEXCEL2007 ACCESS2007 を使用しているので、

移行がスムーズにいくか心配していましたが、2007をそのままに2016を

インストールしたところ、問題なく動作したようだったので、

ホッとして全てのPCにインストール作業を行いました。

 

しかし・・・。

数日して、

会社のシステムが何度かフリーズしました。

どうも呼びだしているACCESSが応答しなくなったようです。

 

会社のシステムは.NET で作成し、帳票等はACCESSEXCEL で出力しているのですが、今まで起きなかったフリーズが発生しています。

特に、ACCESSのレポートを呼び出したときに発生していたようです。

 

今更officeを元に戻すわけにはいかないので、古い2007をしっかり削除して、

それからもう一度office 2016をインストールしました。

以後、不具合は再現していません。

 

※ Creators Update 直後に頻発したので、要因としてあったのかもしれません。