Kamuycikap - SentenceDataBase

日々の勉強の記録を気分で書き綴るブログ

RaspberryPiにインターネット経由でファイルを転送する方法 for Windows

Web公開したRaspberryPiにファイル転送する

Webに公開したRaspberryPiにどうやってファイルを転送するか。
転送するファイルはphpファイルだったりpythonファイルだったり。

FTPサーバーをインストールしてアレコレというのを考えましたが、ルーターの設定で新しいポートを開けるのもどうかなと。。。。
なのでちょっと調べてみました。

SFTPと言うのがあるらしい

という情報を発見。(*゚Д゚*)ェ…
SSH File Transfer Protocol」というらしいです。
開けているSSHのポート番号でアクセスしてファイルの転送が可能らしい。

(*´∀`)ノ 「天下のWindowsさんなら、SFTP対応のクライアントがあるだろう!」

と安易に考えて調べたらありました。

WinSCP

ってアプリです。
ポート番号とURL、ログインユーザーIDとパスワードを指定するだけでOKです。
簡単にファイル転送できてしまいました。
   ↓
WinSCP Download
ここにアクセスして、「Installation package」を選択するだけ。
インストールも利用も日本語でイケます。

ちなみにLinuxですと「FileZilla」で同様のことが可能ですね



優良アダルトサイト紹介の最終形態!!MaxInfo

RaspberryPiに「Apache2」「PHP5」「MySQL」「phpAdmin」をインストール

RaspberryPiに「Apache2」「PHP5」「MySQL」「phpAdmin」をインストール

RaspberryPiをインターネットに公開してみました。
せっかく公開したので遊んでみようと思います。
そのためのツールとして
RaspberryPiにApache2、PHP5、MySQLをインストールしてみます。

到着点として

  • インストールするだけで特に設定は行わない
  • とりあえず標準のWebページが表示されるところまで
  • MySQLはインストールするだけで、DB作成とかユーザー作成とかは行わない

本当に入れるだけのメモ。
そっから先は後日行う。

前提条件

インターネット経由であれローカルであれ、SSHなどでログインしてコマンド叩ける状態であること。

<<目次>>
  1. RaspberryPiのアップデート
  2. Apache2のインストール
  3. Apache2の動作確認
  4. PHP5のインストール
  5. PHP5の動作確認
  6. PHP5-mysqlのインストール
  7. MySQLのインストール
  8. phpMyAdminのインストール
  9. phpMyAdminの確認

RaspberryPiのアップデート

セットアップ失敗しちゃいやなので、アップグレードしときます。

$ sudo apt-get update

Apache2のインストール

apt-getでインストール。
コマンド叩いたら待つだけです。

$ sudo apt-get install apache2

Apache2の動作確認

コンソールでifconfig叩いて自分のIPアドレスを確認し、ブラウザアクセスしてみる。

$ sudo ifconfig

上記コマンドで表示される「inetアドレス...」と表示されている部分で確認。

ブラウザで確認したIPアドレスにアクセスしてみる
※例はローカルIPアドレスの場合

http://XXX.XXX.XXX.XXX

うまくイケば、「It Works!」なページが表示されるはず。
ちなみに、

DocumentRootは「cat /etc/apache2/sites-available/default」に記載されており、標準では「/var/www」になっている模様。

PHP5のインストール

$ sudo apt-get install php5

これも待つだけ。

PHP5の動作確認

index.htmlをphpファイルとしてコピー

$ cd /var/www/
$ sudo cp ./index.html ./index_php.php

ブラウザで指定して「I work!」が表示されれば動作している

http://XXX.XXX.XXX.XXX/index_php.php

もうひとつの方法。
nano等のエディタ使って下記の内容でphpinfo.phpファイルを作成します。
ファイルの作成場所は、index.htmlと同じディレクトリ。

<?php
  phpinfo();
?>

作成したらブラウザでアクセスしてみます。

http://XXX.XXX.XXX.XXX/phpinfo.php

すると、動作しているならPHPの情報がズラッと表示されるはずです。

PHP5-mysqlのインストール

コマンド叩くだけ

$ sudo apt-get install php5-mysql

MySQLのインストール

これもコマンド叩きます。
※rootのパスワードとか聞かれたかもしれませんが・・・そこはお好みで。

$ sudo apt-get install mysql-server

phpMyAdminのインストール

このコマンド叩きます。
途中でユーザーとかパスワードとか聞かれます。
そのあたりはお好みで。

$ sudo apt-get install phpmyadmin

こんなの聞かれました。
apache2を選択しました。

選択方法 → スペースバー叩いたら「*」がマークされます
自動再設定をする web サーバ:
 [] apache2
 [] lighttpd

phpMyAdminの確認

まず、設定ファイルを書き換えます

$ vi /etc/apache2/apache2.conf

内容は下記の通り、一番下に追加します。

Include /etc/phpmyadmin/apache.conf

そして、apache2を再起動します。

$ sudo /etc/init.d/apache2 restart

再起動後、ブラウザで下記のURLにアクセス!!

http://XXX.XXX.XXX.XXX/phpmyadmin/

ログイン画面が表示されたらOKです。


優良アダルトサイト紹介の最終形態!!MaxInfo

かなりの高機能!! シリアルポートエミュレータ for Windows

シリアル通信の開発環境 for Windows7

Windows8.1とかでも動作するのかな?
そこは未検証です。

久しぶりにWindows7C#を使ったシリアル通信のソフトを書かなければならなくなりました。
最近のPCにはD-Subのコネクタなんて実装されていません。
なので、

・擬似的にCOMポートを作れる(複数作りたい)
・擬似的に作ったCOMポートに、自作アプリからデータを送信したら何らかの形で閲覧できる
・擬似的に作ったCOMポートから自作アプリにデータを送信できる
・擬似的に作ったCOMポートから、実際にPC存在するCOMポートへデータを流せる

書けがキリがないですが、まぁ、上記に書いてあることができれば当面は問題なさそうです。
んで、調べてみたら・・・・ものすんごいのがありました。
これが無料で使えるとは驚きです。

こちら

Virtual Serial Ports Emulator

こちらのアプリで全て解決。
英語のアプリですが、直感的なアイコンと分かりやすい単語のメニューなのでなんとかなります。

  • Virtual device: connector
  • Virtual device: data splitter
  • Virtual device: pair
  • Mapper device
  • User mode device: TcpServer
  • User mode device: TcpClient
  • User mode device: Serial Redirector
  • User mode device: UDP Manager
  • User mode device: Bridge
  • Python scripting system
  • x86 and x86_64 processor architecture support
  • VSPE API (C/C++ header and static library) for native language developers
  • VSPE API Python bindings for Python developers
  • Embedded HTTP server
  • Data monitoring

無料なのは32bit板のみ

です。
64bit版は有料ですが、32bit版で何も問題なく使えています。

これはいい。


優良アダルトサイト紹介の最終形態!!MaxInfo

RaspberryPiのSDカードをイメージにして保存 for Linux

ddコマンドを使って、SDカードをイメージにする

Linux(Ubuntu14.10)で、SDカードの内容をそのままバックアップし、いつでも元に戻せるようにしたい。
と申しますのも、RaspberryPiをアレコレ触っていると、設定ファイル編集やらアプリインストールを繰り返すと思います。

GPIOを使った電子制御とか、サーバーとか様々に利用したいと思うのですが、使い続けていると初期状態からかけ離れた設定になってしまいがちです。

そこで、目的に応じてSDカードのバックアップをとっておき、目的に合わせて入れ替えられたら便利です。
そんな方法を考えて実施した手順メモを公開することにします。

目次
  1. SDカードのセットアップ(目的の状態に設定する)
  2. SDカードをLinuxパソコンにセットしてデバイス名を確認
  3. ddコマンドでSDカードをまるごとイメージ化
  4. イメージをSDカードに戻す
  5. 気づいたこと

SDカードのセットアップ(目的の状態に設定する)

RaspberryPiで自分がバックアップを取りたい状態の設定を行う。
今回はこの環境までセットアップ

  • 無線ドングルセットアップ
  • clispインストール
  • zshインストール
  • Emacsインストール

SDカードをLinuxパソコンにセットしてデバイス名を確認

下記のコマンドで表示されるメッセージから、デバイス名を読み解く。
おそらく、だいたい下記のようなメッセージが残っているはず
私の環境ではmmcblk0というのがデバイス名らしいです。

$ dmesg 

...
[33442.005767] ath5k: ath5k_hw_get_isr: ISR: 0x00000080 IMR: 0x00000000
[38626.087602] mmc0: new SDHC card at address 59b4
[38626.088641] mmcblk0: mmc0:59b4 SDC   14.7 GiB 
[38626.094319]  mmcblk0: p1 p2 < p5 p6 > p3
[38626.591599] EXT4-fs (mmcblk0p3): recovery complete
...

ddコマンドでSDカードをまるごとイメージ化

ddコマンドでイメージ化
※コマンドを実行すると、shell上には何も表示されずだんまりになるが処理は走っている

$ sudo dd if=/dev/mmcblk0 of=/home/k/rpi_img/image00.dd

イメージをSDカードに戻す

イメージ化の手順を踏むと、SDカードがまるまるファイルとして保存される。
それをSDカードに戻す方法も書いておく。
イメージ化した時とパラメータが逆になる。

$ sudo dd if=/home/k/rpi_img/image00.dd of=/dev/mmcblk0

気づいたこと

ddコマンドでSDカードのバックアップを取りましたが・・・・・・ものすごく時間がかかりました。
16GBのものを使ったんですが、イメージ化、SDカードに戻す、それぞれについて2時間弱の時間を必要としました。
すぐにバックアップに戻すって使い方には向いていないですね。
※手順がわかっているんなら、OSのインストールからやったほうが早いかも。


優良アダルトサイト紹介の最終形態!!MaxInfo

RaspberryPiをMyDNS.jpを利用して外部に公開

RaspberryPiをMyDNS.jpを利用して外部に公開してみた

パソコンほど電気代がかからず、静かに動作するRaspberryPiをインターネット経由でどこからでもアクセスできるようにしたい。
環境を整えた時のメモ。
※使っているルーターがダイナミックDNSに対応していたため、MyDNS.jpに通知するための作業をルーターでやってしまった。
他ブログで紹介されている、アプリやシェルスクリプトを使った定期的なMyDNS.jpへの通知は行っていない。

★★目次★★

  1. RaspberryPiのIPアドレスを調査
  2. 自宅のグローバルIPを調べる
  3. MyDNS.jpにユーザー登録
  4. MyDNS.jpの設定
  5. 自宅ルーターの設定(ポート開放)
  6. 接続してみる

RaspberryPiのIPアドレスを調査

RaspberryPiのコンソールでコマンド叩くだけ。

$ sudo ifconfig

自分に割り当てられているIPアドレスが表示されるはず。
後で使うので控えておく。(例:192.168.1.30 とか振られてるはず)
※理想は固定でIPアドレスを設定すること
DHCPで動作しているとしても・・・・まぁ・・・ルーターを再起動しなければ変動しないからつながるかな。。。

自宅のグローバルIPを調べる

専用サイトで調べる。
これもメモしておく。
http://www.cman.jp/network/support/go_access.cgi
ブラウザでアクセスするだけで、自宅に割り当てられているグローバルIPがわかる。

MyDNS.jpにユーザー登録

これも特に記載しない。
 Free Dynamic DNS (DDNS) for Home Server and VPS etc | MyDNS.JP

IDとパスワードを指定して、サイトにユーザー登録するだけ。
登録終了すると、メールでIDとパスワードが連携される。
※無くさないように注意。

MyDNS.jpの設定

こちらを参考にした。
ページの中ほどに「次に、MyDNS.jp の登録。」というくだりがある。
このページを参考にして「DOMAIN INFO」と「IP ADDR DIRECT」を設定する。

DOMAIN INFOでは、独自ドメインにせずに、自分の好きなサブドメインにした。
hoge.live-on.netとか適当にこのみのやつを入れる。

自宅ルーターの設定(ポート開放)

うちのルーターはPlanexのMZK-W04NU。
本家のサイトにポート開放のやり方が書いてあった。
「ローカルサーバー」って項目の設定を触るらしい。
 sshで利用したいから、80-80だけじゃなくて22-22なポートもオープンする。
※80はWebサーバーの標準ポート、22はssh接続するときの標準ポート
※ブログには80、22と書いちゃってるが・・・・心配なので実際はポートを変えてある。

自宅ルーターの設定(MyDNS.jpへの定期的なアクセス)

 MyDNS.jpには定期的にアクセスする必要があり、アクセスが滞るとユーザーアカウントが削除されてしまう。
 幸い、利用しているPlanexのルーターには、「ダイナミックDNS」なる設定項目が存在し、MyDNS.jpのユーザーIDとパスワードを入力しておけば、最短1日おきに自動でアクセスしてくれる。
 MyDNS.jp以外にもダイナミックDNSサービスサイトに対応している。
 ※この機能のおかげで、wgetとcrond等の仕組みを使わずに自動アクセスできる。

接続してみる

sshコマンドで接続してみる

$ sudo ssh foo@hoge.live-on.net

fooはsshログインするユーザー名。
hogeはMyDNS.jpのDOMAIN INFOで指定したサブドメイン
サブドメインとか何にしたか忘れちゃったら、MyDNS.jpにログインして調べれば解決。



優良アダルトサイト紹介の最終形態!!MaxInfo

RaspberryPiのHDMIディスプレイ解像度を調整

自宅テレビの解像度を調整する

自宅テレビにHDMI接続して試してみると、視力検査のような小さな文字になってしまってます。
自宅のテレビは32型。
近くによると見えますが、気持ちとしては2mくらい離れて使いたい。
なので、解像度を調整します。

<目次>

  1. ディスプレイ設定のパラメータを確認
  2. /boot/config.txtの編集
  3. RaspberryPiの再起動

ディスプレイ設定のパラメータを確認

Google先生に聞いてみると、同じように調整している人たちの記録を閲覧することができます。
様々設定が記載されていましたが、下記の2点だけ決めればOKみたいです。

hdmi_group
hdmi_mode

config.txt設定詳細
ここを見て、自分がほしい解像度を選びます。
調査してみると、自分のテレビだとこのあたりでしっくりきました。

/boot/config.txtの編集

バックアップをとってからファイルを修正します

$ sudo cp /boot/config.txt /boot/config.txt.original
$ sudo vi /boot/config.txt

#でコメントアウトされているところを、#を消して有効にするだけです。

# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2   # <--- HDMI
hdmi_mode=23   # <--- 1280x768 60 Hz

RaspberryPiの再起動

コマンドで再起動!!

$ sudo shutdown -r now

もしも解像度指定に失敗したら・・・(´-ω-`;)ゞポリポリ

失敗したら、再起動と同時に画面が真っ暗!!になります。(*゚Д゚*)ェ…
その場合は・・

  1. SDカードを抜いてパソコンにセット!
  2. テキストエディタで、SDカードの/boot/config.txtを編集
  3. SDカードをRaspberryPiに戻して電源ON!

です。

優良アダルトサイト紹介の最終形態!!MaxInfo

Org-modeを8.2.10にしたら、Org-remember.elが使えなくなってた。

Org-capture

Org-modeでGTDな設定を行って自分の仕事を一元管理する仕組みを作って活用しようとアレコレしてました。
参考にしたのは下記のサイトです。

OrgMode/Org-modeでGTD実践(翻訳)

こちらのサイトをキッカケにしてOrg-modeのGTDについて調査していると、最新のOrg-modeが欲しくなり本家から最新のものを導入することにしました。
しかし、そこで思わぬ結果が。。。。

どうも、org-remenberはorg-captureというものに完全に置き換えられたみたいです。
※英語のマニュアルに書いてありました。
Org-mode Manual 8.2.10:9.1 Capture

org-capture-templatesを設定しなければならない

みたいですね。
書き方の参考になる情報を見つけました。
英語ですが、Google翻訳で頑張れば翻訳できそうです。
org-rememberテンプレートに似ていますね。

org-capture-templatesの設定要素について

設定要素「テンプレート」の書式

私の設定

Googleに「org-capture-templates」で質問すればアレコレと設定が出てきます。
以下に、私の設定を公開します。
ファイルパス部分については、自分の環境に合わせて読み替えてください。
アジェンダビューの設定についても説明は割愛します。

;; Org-captureをC-c rで呼び出す。
(define-key global-map "\C-cr" 'org-capture)

;; Org-caputure
;; Org-mode version8.xから導入されたorg-rememberの高機能版

(when (require 'org-capture nil t)

  (setq org-capture-templates
        '(("n" "Nico" entry (file+headline "~/.emacs.d/org_dat/gtd/nicosys.org" "INBOX")
           "* TODO %^{Brief Description} %^g\n%?\nAdded: %U")
          ("8" "870" entry (file+headline "~/.emacs.d/org_dat/gtd/870.org" "INBOX")
           "* TODO %^{Brief Description} %^g\n%?\nAdded: %U")
          ("h" "Home" entry (file+headline "~/.emacs.d/org_dat/gtd/home.org" "INBOX")
           "* TODO %^{Brief Description} %^g\n%?\nAdded: %U")
          ("p" "Projects" entry (file+headline "~/.emacs.d/org_dat/gtd/projects.org" "INBOX")
           "* TODO %^{Brief Description} %^g\n%?\nAdded: %U")
          ("d" "Note" entry (file+datetree "~/.emacs.d/org_dat/gtd/note.org" "MEMO")
           "* %^{Title} %^g\n%?\nAdded: %U")
          ))

  (setq org-agenda-custom-commands
        '(
          ("s" "SVF Lists" tags "SVF")           ; SVFタグを抽出
          ("p" "Projects Lists" tags "PROJECT")  ; PROJECTタグを抽出
          ("n" "Note Lists" tags "NOTE")         ; NOTEタグを抽出
          ("h" "Office and Home Lists"           ; @OFFICEタグでTODO
           ((agenda)
            (tags-todo "@OFFICE")
            (tags-todo "@HOME")))
          
          ("d" "Daily Action List"
           (
            (agenda "" ((org-agenda-ndays 1)
                        (org-agenda-sorting-strategy
                         (quote ((agenda time-up priority-down tag-up) )))
                        (org-deadline-warning-days 0)
                        )))))))



優良アダルトサイト紹介の最終形態!!MaxInfo