FC2ブログ

[RP2][Ubuntu]コマンド

OSインストール手順

ラズパイの公式ページから以下をダウンロード。
ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz
解凍すると、
①ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img
が出て来た。

Ubuntuを書き込む前に、SDカードをフォーマットするらしい。
SD_CardFormatter0500SetupEN.exe
をインストールして、SDカードをクイックフォーマットした。

ここからSDカードへの書き込みツールを入手。
https://ja.osdn.net/projects/sfnet_win32diskimager/downloads/Archive/Win32DiskImager-1.0.0-binary.zip/
これを解凍するとインストール不要でそのまま実行可能なexeがある。

これで①imgファイルをSDカードへ書き込む。



I2C Enable方法

方法1

# sudo raspi-config
 > 3.Interfacing Options
 > P4 I2C
 > Would you like the ARM I2C interface to be enabled?
 > Yes

方法2

# vi /boot/config.txt

dtparam=i2c_arm=on


上の方法1をやる前は、コメントアウトされていて、更にoffだったが、ここが既にonになってた。



Ubuntuアップデート

# sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo apt-get -y autoremove && sudo apt-get -y autoclean

1.最新アップデートを確認。
2.確認したアップデートを適用。
3.ディストリビューションを最新のものに適用。
4.依存関係解決後に未使用のパッケージ削除。
5.作業時のaptキャッシュを削除。キャッシュ/var/cache/apt/archivesの肥大化防止。





RP2 ModelBとBME280でIoT

秋月電子
BME280使用 温湿度・気圧センサモジュールキット 1080円
http://akizukidenshi.com/catalog/g/gK-09421/

・BME280モジュールにピンヘッダを半田付けする。

・ラズパイ2 ModelBとBME280モジュールを接続する。
①BME280
②Raspberry Pi2

①1番ピン:VDD --- ②1番ピン:3V3
①2番ピン:GND --- ②6番ピン:GND
①3番ピン:CSB --- ②17番ピン:3V3
①4番ピン:SDI --- ②3番ピン:SDA1
①5番ピン:SDO --- ②14番ピン:GND
①6番ピン:SCK --- ②5番ピン:SCL1



# sudo apt-get install i2c-tools
# sudo apt-get install python-smbus
これはどちらもインストール済みだった。

# sudo i2cdetect -y 1
これで行70、列6の場所に、76と表示。これで接続が正常という事らしい。

尚、最後の引数はラズパイのリビジョンによって使い分けるとの事。
  リビジョン1(2012年10月14日以前の発送分のRaspberry Pi Model Bまで): 引数0を指定
  リビジョン2: 引数1を指定
今回使ったものはRaspberry Pi2 Model Bだが、引数1で動作した。



# wget https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/master/Python27/bme280_sample.py
bme280_sample.pyをダウンロード。

# sudo python bme280_sample.py

Traceback (most recent call last):
File "bme280_sample.py", line 3, in
from smbus2 import SMBus
ImportError: No module named smbus2



エラーの原因はbme280_sample.pyの以下記述間違いとの事。

誤 3行目 from smbus2 import SMBus
正 3行目 from smbus import SMBus



修正後に再度実行するとセンサーデータ取得できた。
# sudo python bme280_sample.py

temp : 28.87 ℃
pressure : 1006.20 hPa
hum : 56.82 %



よくよく調べると、そもそもsmbus2をインストールして無い事が原因らしい。
事前に必要なものからインストールしていく。
# sudo apt-get install python-pip
pipを使うためのコマンドだが、python-pipは既に最新バージョン(8.1.1-2ubuntu0.4)が入っていると言われた。

# sudo pip install smbus2

The directory '/home/xxx/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disable.

Collecting smbus2
Downloading smbus2-0.1.5.tar.gz
Installing collected packages: smbus2
Running setup.py install for smbus2 ... done
Successfully installed smbus2-0.1.5

You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.



smbus2がインストールされた。さらにpipが古いというので、
アップデートした。
# sudo pip install --upgrade pip

# vi bme280_sample.py

元のsmbus2に戻した → 3行目 from smbus2 import SMBus



# sudo python bme280_sample.py

temp : 29.19 ℃
pressure : 1006.06 hPa
hum : 54.42 %

これで元々のソースで動作確認出来た。スイッチサイエンスさん疑ってすみません。

# sudo i2cdump -y 1 0x76

No size specified (using byte-data access)
   0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 00 00 00 00 ・・・
10: 00 00 00 00 ・・・

80: 8b 70 89 48 4a 31 28 ・・・






OSバージョン確認

# cat /etc/issue
Ubuntu 16.04.2 LTS \n \xx




PHP関連パッケージ表示

# dpkg -l | grep php | awk '{print $2}'





mosquittoインストール

# sudo apt-get install mosquitto
# sudo apt-get install mosquitto-clients
# sudo service mosquitto status

# /usr/sbin/mosquitto
起動すると、Address already in useと怒られる。

インストール時に既に起動してるらしい。また以下コマンドで起動してるの確認出来るらしい。
# mosquitto_sub -t '$SYS/#' -v





ネットワーク有効化

# vi /etc/network/interfaces
最終的にこの設定。dhcpではなくstaticにして固定IP割り振る。

auto lo
iface lo inet loopback

auto enxbxxxxxxx > これが無いと自動起動してくれない
iface enxbxxxxxxx inet static
adress 192.168.xxx.xxx
netmask 192.168.xxx.0
gateway 192.168.xxx.yyy
dns-nameservers 192.168.xxx.zzz



# vi /etc/resolv.conf
nameserver 192.168.xxx.vvv



# ifup enxbxxxxxxx
これで有効化された。
 > 最初、/etc/init.d/networking restart でやってたが、これでは有効化されなかった。

# ifconfig
enxbxxxxxにIPが割り振られている。

# ping 192.168.xxx.xxx
自分自身にpingが通る。

# ping 192.168.xxx.yyy
GATEWAYにもpingが通る。

# ping 8.8.8.8
外部DNSサーバにもpingが通る。




Teraterm SSH SCPでファイル転送

ラズパイ(Ubuntu)とWindows間でファイル転送してみる。

・まずラズパイのSSHを有効にする。

# raspi-config
 > Interfacing Options > SSH > YES > Enabledと言われるのでOK > Finish

I2Cを有効にするには/etc/modulesの中に、i2c-dev、を追記する必要があるらしい。
raspi-configでEnableにしてもしなくても、i2c-devの記載があった。

有効になったか確認。
# lsmod | grep i2c

i2c_bcm2708 4834 0
i2c_dev 5859 0



・WindowsのTeratermからSSH、22番ポートで接続する。
 > もしかしたらこれ不要かも。

・Teraterm > File > SSH SCP
 > Windowsから送る場合は上のSendの方。受け取る場合は下のReceiveの方を使う。
   送るファイルと、受け取る側のパスを指定するだけだから非常に簡単。



samba(USB HDDでファイルサーバ化)

Ubuntu 16.04.5 LTS

裸族のお立ち台?でUSB接続して、ラズパイ起動したら、/media/bob/xxxxxxxで認識された。
デバイス名は、/dev/sda

# fdisk /dev/sda
パーティション作成

# mkfs -t ext4 /dev/sda1

# mkdir /home/share
# chmod 777 /home
# chmod 777 /home/share

# apt-get install samba
# sudo vi /etc/samba/smb.conf
workgroup = xxx
interfaces = 127.0.0.0/8 192.168.xx. enxb827xxxxx

[share]
comment = Raspberry pi
path = /home/share
guest ok = yes
read only = no
guest only = no
browsable = yes
share mode = yes
public = yes

# vi /etc/hosts.allow
smbd : 192.168.xx.
nmbd : 192.168.xx.

# vi /etc/hosts.deny
ALL:ALL

# pdbedit -a user

# ufw allow samba
# ufw allow ssh

# systemctl enable smbd
# systemctl enable nmbd

# systemctl restart smbd
# systemctl restart nmbd
スポンサーサイト



コメントの投稿

非公開コメント

カレンダー
12 | 2020/01 | 02
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード