tukue no ashi

腰が痛いので机を高くして椅子を使うようにしました。

しかし、鬼目ナットを打ち込む際に天板を貫通してしまった。

悲しい。(ノД`)シクシク

とりあえず、穴のある場所にはものをおいてごまかすことにした。

腰の負担が軽減されるといいなー

ジャガイモ

ジャガイモ。

ジャガタロイモ。

書いてみただけ。

いいえ。今日は少し作業しました。

芽がいっぱいでたジャガイモ。

そう芽欠きです。

しゃがんで、腰が痛い。

ハサミでチョキチョキと。

とりあえず作業は完了。

里芋はまで出てこない。

マスクも市場に出てきましたね

コロナ関係の内容を少し書きます。

アベノマスクはまだ到着しませんが、お店ではマスクが購入できるようになりました。

マスクはエチケット的な要素が大きく布マスクでいいやとなったのが大きいかなと思います。

いずれにせよ街に外出するのには必要かなと思います。

図書館も復活したので、少し外出するのもいいかなと思いました。

家庭菜園のホースが。。。

久しぶりのコラムかもしれません。

家庭菜園のネタです。

今日(正確には昨日ですが。。)は以下のものを新たに追加しました。

苗で3種類。

ナス、ズッキーニ、オクラ。

加えて、とうもろこしは種で。

水をホースで散水しようとしたら穴が。。。

もう壊れてしまった。

以前に使っていたジョイントパーツがあるので後で直します。

珈琲店タレーランの事件簿5 感想

主な登場人物

アオヤマ:本作主人公。

切間美星:推理が得意なバリスタ珈琲店タレーランバリスタ

藻川又次:美星バリスタの叔父。

神崎真子:アオヤマの子供のころの知り合い。年上の美容師の女性。

タレーランの事件簿5です。

話は真子を中心に進む。

源氏物語や世界の珈琲など知識がアクセントとなる。

鴛鴦茶は珈琲とミルクティーを合わせたような感じなのか気になる。

練乳がたっぷり入っているようなので激甘のような気もするが。。。

真子の恋人は誰なのかは、登場人物が少ないのでそうなると思う。

Raspberry Pi i2cモジュールを使ってみる

Raspberry Pi でi2cモジュールを使ってみようと思います。

i2cの設定

i2cモジュールを使用するため、Raspberry piの設定を使用と思います。
なお使用したOSのバージョンはRaspbian GNU/Linux 8 (jessie)です。

まず、i2c-toolsをインストールします。
$ sudo apt-get update
$ sudo apt-get install i2c-tools
raspi-configで設定します。(GUIでも設定はできます。)
$ sudo raspi-config

Image from Gyazo
Image from Gyazo

5 Interfacing Options → I2C → はい
i2c-devが書かれているか確認する。
$ sudo vi /etc/modules
設定ファイルのバックアップをする。
$ sudo cp -i /boot/config.txt /boot/config.txt.$(date +%Y%m%d)
/boot/config.txtdtparam=i2c_baudrate=50000を追記する。
(LCDモニターも使うことを予定しているため、50000とした。)
$ sudo vi /boot/config.txt

〜ページの行末〜
dtparam=i2c_baudrate=50000

pythonでi2cを使えるようにするため、smbusをインストールする。
$ sudo apt-get install python-smbus
再起動する。
$ sudo reboot

i2cモジュールを接続して、アドレスを確認する。コマンドの後の数字はi2cのチャネル番号です。(0または1)
$ sudo i2cdetect 1

piユーザーにi2cのグループがついていない場合は、プログラムで実行できるように追加しておきます。
(再インストールした際にi2cの設定をしたら、ユーザーが追加されていたので多分これから設定する人(OSが最新版)は大丈夫だろうと思います。)

温度・気圧センサーlps25h
LPS25Hは、STMicroelectronicsの温度センサーと気圧センサーのモジュールです。
気圧センサーはMEMSセンサーとなっているようです。最近注目されてきているMEMS(メムス)ですが、LIGAプロセスや半導体製造プロセスなどを使って作成するようです。振動子や圧力センサーなどではすでに実用されているものがあります。この製品もその一つです。

接続方法

Raspberry Pi との接続は、以下のようにRaspberry pi 側 4箇所(VDD:電源、SCL:クロック、SDA:通信、GN)とデバイス側6箇所でした。(上記に加えて、CS:i2cモード選択,SDO:デバイスアドレス選択)
プルアップはRaspberry Pi の内部で行われているので、不要です。
この接続の場合はデータのアドレスは0x5dになります。

Image from Gyazo

プログラムを参考にしたサイトのリンクを貼っておきます。
iwasakiyouhei.com

geckour.orz.hm

プログラムについて

プログラムの大まかな流れとしては、
①通信確認(WHO_AM_I)としてレジスタアドレス0x0Fから0xBDを読み込む。
②モード切り替えのためレジスタアドレス0x20へ0x90を書き込む。
③レジスタから8bitデータを読み込む×5
④読み込んだデータを結合して気圧は24bit、温度は16bitのデータにする。(シフトして論理和で結合する。)
⑤補正の計算する。気圧:Pout(hPa) = PRESS_OUT / 4096、気温:T(°C) = 42.5 + (TEMP_OUT / 480)
⑥出力する。
作ったプログラムは以下です。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import smbus
import time
import sys

Device_add = 0x5d 

#通信確認
whoami = smbus.SMBus(1).read_byte_data(Device_add, 0x0f)
if whoami != 0xbd:
    print('接続できません')
    sys.exit()

#レジスタ切り替え(モード変更)
smbus.SMBus(1).write_byte_data(Device_add, 0x20, 0x90) 
time.sleep(1)

#データ読み込み

buff = [0 for i in range(5)]
buff[0] = smbus.SMBus(1).read_byte_data(Device_add, 0x28)
#print("buff[0]=%x" % buff[0])
buff[1] = smbus.SMBus(1).read_byte_data(Device_add, 0x29)
#print("buff[1]=%x" % buff[1])
buff[2] = smbus.SMBus(1).read_byte_data(Device_add, 0x2A)
#print("buff[2]=%x" % buff[2])
buff[3] = smbus.SMBus(1).read_byte_data(Device_add, 0x2B)
#print("buff[3]=%x" % buff[3])
buff[4] = smbus.SMBus(1).read_byte_data(Device_add, 0x2C)
#print("buff[4]=%x" % buff[4])

Data = [0 for i in range(2)]

"""---------------------------
圧力データ24bitデータ
8bitデータをシフトして結合
---------------------------"""

Data[0] = (buff[2] << 16 | buff[1] << 8 | buff[0])

"""---------------------------
温度データ16bitデータ
8bitデータをシフトして結合
---------------------------"""

Data[1] = (buff[4] << 8 | buff[3])

"""------------------------
圧力データの計算
Pout(hPa) = PRESS_OUT / 4096
-------------------------"""

Data[0] = float(Data[0]) / 4096

"""---------------------------
マイナスデータの補正と
温度データの計算
T(°C) = 42.5 + (TEMP_OUT / 480)
----------------------------"""

if Data[1] & 0x8000:
    Data[1] = -((Data[1] - 1) ^ 0xffff)
Data[1] = float(Data[1]) / 480.0 + 42.5

#出力-------------------------

print("Pressure %.2f hPa" % (Data[0]))
print("Temperature %.2f degree" % (Data[1]))

プログラムの補足

・bitの結合について
前のプログラムで
Data[0] = (buff[2] << 16 | buff[1] << 8 | buff[0])
と気圧のデータを処理している場所があると思います。
例えば
buff[2] = 0x0f(16進数) = 00001111(2進数)
buff[1] = 0x4e(16進数) = 01001110(2進数)
buff[0] = 0x33(16進数) = 00110011(2進数)
とする場合
上位のbitの場合buff[2]を16bit 左にシフトしているので
00001111 00000000 00000000(2進)
となります。
これらを論理和で計算する場合は、

Image from Gyazo

・負の値の補正
前のプログラムの
if Data[1] & 0x8000:
Data[1] = -((Data[1] – 1) ^ 0xffff)
の部分の補足です。
マイナスの場合に2の補数でデータが格納されているので
そのままだと正の値で計算されてしまうので
絶対値にして、マイナス符号をつけて、格納します。
2の補数は反転して( 排他的論理和(xor)をffff(16進)と行うことで反転します。)
それに1を足すことで作ります。
2補数の作成例

Image from Gyazo

このプログラムの場合は2の補数を戻すので、
1を引いて、反転する(xor ffff(16進数))ことで求めます。

ADコンバーターADS1015
12ビットADC(ADS1015)です。
アナログ-デジタル変換(ADC)は連続しているアナログ信号を離散値であるデジタル信号に変換します。これによってPCなどで取り扱えるようにします。ADS1015はデジタル化したデータi2cのシリアル通信でデータのやり取りをします。
今回は、Cds光導電セルの値を取得します。

接続

下図のように接続しました。

Image from Gyazo

パッケージのインストール

データ取得の専用パッケージをインストールします。
$ sudo pip install adafruit-ads1x15
専用パッケージを呼び出します。
import Adafruit_ADS1x15
データの読み込みは
adc.read_adc(0,gain=GAIN)/500.0
で行っていますが、
Gain の設定は以下のようになっています。リンク参照。

Raspberry Pi アナログ入力 (I2C A/D コンバータ)

ADS1015 について Raspberry Pi には A/D コンバータが内蔵されていません。デジタル入出力、アナログ出力に加えてアナログ入力を行うためには外部 IC を利用する必要があります。ここでは I2C デバイスの ADS1015 を利用します。事前に I2C 設定を行っておいてくだ...

Gain=1( 0.0V – 4.096V)
変換は11bit(2048)の分解能なので、
取得値×(4.096/2048)=取得値×(1/500)
となります。

プログラム

コードは以下です。

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import time, signal, sys 
import Adafruit_ADS1x15

adc = Adafruit_ADS1x15.ADS1015()
GAIN = 1 
Volts = adc.read_adc(0,gain=GAIN)/500.0
print( str(Volts) + "V")

Pythonでテキストファイルを取り扱う

2017年8月8日
python でのテキストファイルの取り扱い方を記載します。

txtファイル

txtファイルの読み込みを行います。

〜省略〜
f = open("file.txt",'rt')
t = f.read()
f.close()
print(t)
〜省略〜

txtファイルの書き込みを行います。

〜省略〜
f = open("file.txt",'wt')
f.write('test\n')
f.close()
〜省略〜

open の主なモード

'r' 読み込み
'w' 書き込み
'a' 追記書き込み
'b' バイナリ
't' テキスト

csvファイル

csvファイルの読み込みを行います。

〜省略〜
import csv
f = open("file.csv", 'r' , newline='')
r = csv.reader(f,delimiter=',')
for row in r:
    print (row)
f.close()
〜省略〜

csvファイルに新規で一行書き込みを行います。6行目のモードが’w’,8行目が writerow となります。

〜省略〜
import csv
date = [0 for I in range(2)]
data[0]="test1"
data[1]="test2"
F = open('file.csv', 'w' , newline='')
writer = csv.writer(F, lineterminator='\n')
writer.writerow(data)
F.close()
〜省略〜

csvファイルに複数行(5行)を追加で書き込みを行います。3行目のモードが’a’,11行目が writerows となります。

〜省略〜
import csv
csvlist = [[0 for I in range(2)] for J in range(5)]
I = 0
while I <= 4:
    csvlist[I][0]="test1"
    csvlist[I][1]="test2"
    I = I + 1
F = open('test_log.csv', 'a' , newline='')
writer = csv.writer(F, lineterminator='\n')
writer.writerows(csvlist)
F.close()
〜省略〜

withを使ったプログラム

with open でcsvファイルの書き込みを行います。例として時間を書き込みます。
この方法だとF.closeが省略できます。

〜省略〜
import csv
import datetime

d = datetime.datetime.today()

date = [0 for I in range(1)]
date[0] = d.strftime('%Y-%m-%d %H:%M:%S')

with open('test_log.csv' , 'a' , newline='') as F:
    writer = csv.writer(F, lineterminator='\n')
    writer.writerow(date)

〜省略〜

サンプルプログラム

テストサンプルのコードです。
今までのコードに加えて、最後にファイル名の変更を行ってみました。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import csv
import datetime
import os

d = datetime.datetime.today()
#print(d.strftime("%Y/%m/%d %H:%M:%S"))

date = [0 for I in range(1)]
date[0] = d.strftime('%Y-%m-%d %H:%M:%S')

with open('test_log.csv' , 'a' , newline='') as F:
    writer = csv.writer(F, lineterminator='\n')
    writer.writerow(date)

csvlist = [[0 for I in range(2)] for J in range(5)]
I = 0

while I <= 4:
    csvlist[I][0]="test1"
    csvlist[I][1]="test2"
    I = I + 1

with open('test_log.csv' , 'a' , newline='')as F:
    writer = csv.writer(F, lineterminator='\n')
    writer.writerows(csvlist)

os.rename("test_log.csv", d.strftime("%Y%m%d_%H%M%S") + "_test.csv")

以上がPythonでのテキストファイル(主にcsv)の取り扱い方でした。

Raspberry Pi メール送信をしてみる

2017年7月29日
Raspberry Pi からメール送信の色々を行って見ようと思います。

sstmpの設定

Raspberry Piを使ってメールを送る際に使用するstmpサーバーをインストールします。
調べていて使われていたの多かったのがssmtp と postfixです。
この記事では手軽にできそうだったGmailを経由してメールを送信します。
smtpサーバーとしてssmtpのインストールします。
$ sudo apt-get install ssmtp

設定ファイルssmtp.confのバックアップファイルを作成します。
$ sudo cp -i /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.date +%Y%m%d``
$ sudo vi /etc/ssmtp/ssmtp.conf

以下の内容に修正します。(gmailの場合の例)

root=ユーザー名(xxxx@gmail.com など)<br>
mailhub=smtp.gmail.com:587<br>
AuthUser=ユーザー名(xxxx@gmail.com など)<br>
AuthPass=パスワ-ド<br>
UseSTARTTLS=YES<br>
postfixの設定<br>
smtpサーバーとしてpostfixのインストールします。<br>
pythonを使用して送信する場合は、こちらのほうがいいかもしれません。<br>

インストールコマンド

$ sudo apt-get install postfix
途中に選択項目が出てくるのでインターネットサイト を選択します。

パスワードの設定

smtp.gmail.com で起動時にエラーで接続できない場合は、再起動するか直接ipを指定する。
$ sudo vi /etc/postfix/sasl_passwd

smtp.gmail.com:587 メールアドレス@gmail.com:パスワード
アクセス権限の変更します。
$ chmod 600 /etc/postfix/sasl_passwd

DB化をします。
$ sudo postmap /etc/postfix/sasl_passwd

main.cfの設定変更のまえにバックアップします。
$ sudo cp -i /etc/postfix/main.cf /etc/postfix/main.cf.$(date +%Y%m%d)

main.cfの設定変更します。
$ sudo vi /etc/postfix/main.cf
main.cfに以下追記します。重複している内容は記載しなくていいです。
また、relayhostはsasl_passwdで指定したものと揃えます。

# Minimum Postfix-specific configurations.
#mydomain_fallback = localhost
relayhost=smtp.gmail.com:587
# Enable SASL authentication in the Postfix SMTP client.
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
# Enable Transport Layer Security (TLS), i.e. SSL.
smtp_use_tls=yes
smtp_tls_security_level=encrypt
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt
tls_random_source=dev:/dev/urandom

再起動します。
$ sudo postfix reload

postfixの設定ファイルはmain.cf の他にmaster.cfもあります。
場所は、/etc/postfix/master.cf
設定の変更されている箇所はzz$ postconf -n で確認できます。
デフォルト値は$ postconf -d で表示されます。

mailコマンド
メールコマンドを使用するため、mailutilsをインストールします。
$ sudo apt-get install mailutils

メール送信のテストをします。
$ mail メールアドレス

Cc: [enter]
Subject: test [enter]
(本文)test
[control] +[d]<br>

メール送信のログはmail.logに記載されているのでここを確認する。
$ cat /var/log/mail.log

crontabによる送信
定期的に実行した結果などやlogファイルなどを送信するため、crontabで実行した結果を送信するようにします。出力結果をメールで送信するようにします。

まず、現在のcronjobを確認します。
$ crontab -l

cronjobを追加します。
$ crontab -e

例(毎日 22:33 に dateコマンドを実行)

# m h  dom mon dow
MAILTO=送信するメールアドレス<br>
33 22 * * * date<br>

pythonによるテキスト送信
pythonからメール送信を行います。
私がやってみた場合localからリレーするコードはssmtpからは送信エラーとなりました。
pythonからgメールに認証する方法ではできますが、コードにパスワードを記載したくない場合は、postfixのほうがいいかもしれません。(私がssmtpで設定が上手くいっていない可能があります。)

python2.7で実行できたコードです。(送信アドレス、宛先は、適切に設定してください。)

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText

def sendGmail(to, sub, body):
    username = "送信アドレス"
    msg = MIMEText(body)
    msg['Subject'] = subject
    msg['From'] = username
    msg['To'] = to
    smtp = smtplib.SMTP()
    smtp.connect()
    smtp.sendmail(username, to, msg.as_string())
    smtp.close()
if __name__ == '__main__':<br>
    to = '宛先'
    subject = 'メールタイトル'
    body = '本文'
    sendGmail(to, sub, body)

pythonによるcsvファイル送信
Pythonからcsvファイルを送信します。
python2.7で実行するコードです。
通常使っているメールソフトとは違い簡単そのまま貼り付けができないので
csvファイルを一度読み込んでからエンコードをして添付するようです。

#!/Usr/bin/env python
# -*- coding: utf-8 -*-

import os.path
import datetime
import smtplib

from email import Encoders
from email.Utils import formatdate
from email.MIMEBase import MIMEBase
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText

def create_message(from_addr, to_addr, subject, body, mine, attach_file):

    msg = MIMEMultipart()
    msg["Subject"] = subject
    msg["From"] = from_addr
    msg["To"] = to_addr
    msg["Date"] = formatdate()

    body = MIMEText(body)
    msg.attach(body)

    attachment = MIMEBase(mine['type'],mine['subtype'])

    file = open(attach_file['path'],'rb')
    attachment.set_payload(file.read())
    file.close()
    Encoders.encode_base64(attachment)
    attachment.add_header("Content-Disposition","attachment",filename=attach_file['name'])

    msg.attach(attachment)

    return msg

def sendGmail(from_addr, to, msg):<br>

    smtp = smtplib.SMTP()
    smtp.connect()
    smtp.sendmail(from_addr, to_addr, msg.as_string())
    smtp.close()

if __name__ == '__main__':<br>

    from_addr = "送信アドレス"
    to = "送信先"
    subject = "メールタイトル"
    body = "本文"
    mine={'type':'text','subtype':'comma-separated-values'}

    attach_file={'name':'添付ファイル名','path':'./ファイル名'}
    msg = create_message(from_addr, to, subject, body, mine, attach_file)
    sendGmail(from_addr, to_addr, msg)

pythonによる画像ファイル送信
pythonによる画像ファイル送信についてです。
csvファイル送信に少し変更するだけで送信ができます。
ライブラリーのMIMEImageをインポートするのも忘れないようにします。
python2.7で実行するコードです。

import os.path
import datetime
import smtplib

from email import Encoders
from email.Utils import formatdate
from email.MIMEBase import MIMEBase
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.mime.image import MIMEImage

def create_message(from_addr, to_addr, subject, body, mine, attach_file):

    msg = MIMEMultipart()
    msg["Subject"] = subject
    msg["From"] = from_addr
    msg["To"] = to_addr
    msg["Date"] = formatdate()

    body = MIMEText(body)
    msg.attach(body)

    attachment = MIMEBase(mine['type'],mine['subtype'])
    file = open(attach_file['path'],'rb')
    attachment = MIMEImage(file.read())
    file.close()
    attachment.add_header("Content-Disposition","attachment",filename=attach_file['name'])

    msg.attach(attachment)

    return msg

def sendGmail(from_addr, to, msg):<br>
    smtp = smtplib.SMTP()
    smtp.connect()
    smtp.sendmail(from_addr, to_addr, msg.as_string())
    smtp.close()

if __name__ == '__main__':<br>

    from_addr = "送信アドレス"
    to = "送信先"
    subject = "メールタイトル"
    body = "本文"
    mine={'type':'image','subtype':'png'}

    attach_file={'name':'添付ファイル名','path':'./ファイル名'}
    msg = create_message(from_addr, to, subject, body, mine, attach_file)
    sendGmail(from_addr, to_addr, msg)

以上、Raspberry Pi メール送信のまとめでした。

linux(ラズベリーパイなど)vi でvimに変更する

単純にいうとdebian系でaptを利用してvimをインストールして、aliasを設定します。
備忘録です。

$ sudo apt install vim
$ sudo apt-get install vimでインストールします。
aliasを変更します。
$ vim ~/.bashrc
(または、$ vim ~/.bash_profile)
に以下を追加します。
$ echo alias vi=”vim” >> ~/.bashrc
再起動します。
$ source .bashrc
(.bash_profileの場合$source .bash_profile)
これで$ vi でvimが起動します。

Raspberry Pi の設定のまとめです。

Image

2017年7月15日

必要なものの準備

以下のものを準備します。

Raspberry pi 本体
micro SDカード
電源アダプター
マイクロusbケーブル
hdmiケーブル(画面出力用)
モニター(TVまたはPCモニター)
ケース
ヒートシンク
LAN環境
LANケーブル
有線マウス(USB)
有線キーボード(USB)
PC
SDカードリーダー(PCに付属していなければ)

一括でセットになっているものあるので、どれを選ぶか自信がなければ、それを選ぶのも手です。
micro SDカードにも相性や必要な速度があります。
*動作が確認されているものを選んだほうがいいです。
OSのインストール
Raspberianのインストールをします。
https://www.raspberrypi.org から RaspberianのイメージまたはNoobsをダウンロードします。
イメージとNoobsを使ってのインストールとはやり方が違います。
マイクロSDカードをSD Formatter でフォーマットします。(Windows、Macともにあります。)
イメージファイルの書き込みをする場合は、入手したimgファイルのイメージを以下の方法で書き込みます。
・Windows → win32Disk Imager
・Mac → ddコマンド
マウント位置の確認をします。

$ diskutil list

アンマウントします。(disk2sの場合)

$ sudo diskutil umount /dev/disk2s1

イメージの書き込みをします。(disk2sに書き込みを行い、imgを/Users/home/ に置いた場合)

$ sudo dd bs=1m if=/Users/home/2017-04-10-raspbian-jessie.img of=/dev/rdisk2

Noobsを使ってインストールする場合はそのまま解凍したファイルを全部、マイクロSDカードに書き込みます。
この方法が、一番安全かもしれません。(推奨)
OSを起動させるとインストールが始まります。
ddコマンドは危険なので使用は注意!!
OS起動
OSを起動させます。
本体にモニター、入力デバイス(マウス、キーボード)、macro SDカードを接続します。
そして起動させるため、電源アダプターとマイクロUSBケーブルを差し込みます。
Raspberry Pi は電源ボタンがないため、電源につなぐと起動します。
シャットダウンボタンもありません。
Noobsの場合はインストールが始まります。

初期設定

初期設定を行います。
Preferences → Raspberry Pi Configuration から変更を行います。
・パスワード変更
初期 raspberry → 任意

・キーボード、地域の変更

Localisation
Set Locale → 日本
Set Time zone → Asia , Tokyo
Set Keyboard → Japan , Japanese
Set WiFi Country → JP Japan

・SSH、i2cを有効化

interfaces → SSH 有効
interfaces → i2c 有効

rootのパスワードを設定します。

$ sudo passwd root で任意のパスワードを設定します。

bootディレクトリーにsshのフォルダーをつくれば、sshからモニターレスでセットアップできるようです。
筆者は確認してないので、やりかたは各自調べてください。
有線LANのip固定化
有線LANのip固定化をします。
/etc/dhcpcd.confipの設定します。
以下をターミナルから実行します。
まずバックアップをとります。
$ sudo cp -i /etc/dhcpcd.conf /etc/dhcpcd.conf.$(date +%Y%m%d)
好きなエディターで変更します。(この場合はvi)
$ sudo vi /etc/dhcpcd.conf
以下を追記します。
ipアドレスは例です。#は記入不要です。

/etc/dhcpcd.conf

interface eth0
static ip_address=192.168.0.55 #設定するアドレス
static routers=192.168.0.1 #デフォルトゲートウェイ
static domain_name_servers=255.255.255.0 #サブネットマスク

一度再起動します。(シャットダウンしてから起動させます。)
有線LANにつないで無線の設定を行います。
SSHでの接続の確認
SSHでの接続を確認します。
Windowsでは tera termなどを使用してください。
MacではSSHコマンドが使用できます。
$ ssh -l ユーザー名 アドレス
または、
$ ssh ユーザー名@アドレス
シャットダウン、再起動は以下のコマンドを端末から入力します。
・シャットダウン
$ sudo shutdown -h now
・再起動
$ sudo reboot
無線LANの設定とip固定化
無線LANの設定とip固定化を行います。
wpa_supplicant.confのバックアップをとります。

$ sudo cp -i /etc/wpa_supplicant/wpa_supplicant.conf
etc/wpa_supplicant/wpa_supplicant.conf.$(date +%Y%m%d)

rootになります。

$ su root

パスワード入力
パスフレーズをリダイレクトで設定ファイルに追記します。0

$ wpa_passphrase SSID パスフレーズ >> /etc/wpa_supplicant/wpa_supplicant.conf

rootからユーザーへ戻ります。

$ exit

$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
network内を編集します。(無線Lanの環境がWPAの場合の例です。*au光 Aterm BL900HW使用)

network={
ssid="SSID"
scan_ssid=0
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
psk=暗号化されたパスフレーズ}

/etc/network/interfacesでipを設定したほうが安定しているようなので/etc/network/interfacesで設定する。
/etc/network/interfacesのバックアップをとります。
$ sudo cp -i /etc/network/interfaces /etc/network/interfaces.$(date +%Y%m%d)
ipの設定をする。
$ sudo vi /etc/network/interfaces
allow-hotplug wlan0 以下を変更・追記します。
ipは例です。#は記入不要です。

iface wlan0 inet static
address 192.168.0.56 #IPアドレス
netmask 255.255.255.0 #サブネットマスク
gateway 192.168.0.1 #デフォルトゲートウェイ

再起動します。
$ sudo reboot