2020-06-11

raspberry pi zero wをヘッドレスインストールしつつBlynk仕込んだときのメモ

個人的メモなので中身はカスです

だいぶ前に買ってあったラズパイZero wを使って遊ぶ。

手元のmicroSDHCを見てみた。
NOOBS 2.4.2がはいっている。なんかたしかにSDカードはいってたケースに「NOOBS 2.4.2 RASPBIAN 20170710」って書いてある。

古いの使ってもアレなので消した。こういうのは勢いが大事。

どうやらraspbian直焼きも、NOOBSももう古くて(びっくり・・・)、
いまはRaspberry Pi Imagerを使うのがいいらしい。
昨日軽く調べたときにNOOBSって単語を初めて知ったのに。。

https://www.raspberrypi.org/downloads/
Raspberry Pi Imager for macOSを手に入れる。
さくっとインストール。

買ってあったSDカードだが、Finderで開くとFATで2GBくらいしかない。
https://www.raspberrypi.org/help/noobs-setup/2/
どうやらSD Formatterでフォーマットするのがいいらしい。まぁSDHCだしな。

すぐにDLできたので、フォーマットした。
ちゃんとFAT32で8GBとして認識されるようになった。

Raspberry Pi Imagerを起動して、
RASPBERRY PI OS (32-bit)を選択、あとはSDカード選択して焼くだけ。
時間はかかったが、焼き上がり。

たしかヘッドレスインストールするには、ここからSSHの有効化、それからWi-Fiの設定が必要なはず。
参考資料
 - https://qiita.com/HeRo/items/c1c30d7267faeb304538
 - https://qiita.com/IMdev/items/310a4125ce068504cdc4
 - https://qiita.com/rshibasa/items/c63ff7450842e3b0ab9b
 - https://qiita.com/mascii/items/a43d71572e1919e56398

Wi-Fiの設定。

> 802.11 b/g/n wireless LAN

ってことは、5GHzのほうはやっぱりだめだ(こういう勘はいい(嘘))。
https://mascii.github.io/wpa-supplicant-conf-tool/
でconfをつくる。ssh.txtも作れるのが面白い:+1:
blackmint:/ watahari$ cp ~/Downloads/wpa_supplicant.conf /Volumes/boot/
blackmint:~ watahari$ ll /Volumes/boot/wpa_supplicant.conf
-rwxrwxrwx@ 1 watahari  staff  194  6  8 19:29 /Volumes/boot/wpa_supplicant.conf
ファイルのownershipこれでいいんかな?と思ったけどどうせ全部俺のアカウントだしいいだろう。
あ、これブログに書いたらMacの名前がblackmintなのとかばれるなテヘペロ

sshの設定もする。
blackmint:~ watahari$ touch /Volumes/boot/ssh
blackmint:~ watahari$ ll /Volumes/boot/ssh
-rwxrwxrwx  1 watahari  staff  0  6  8 19:30 /Volumes/boot/ssh
なんかデスクトップ画面っぽいのが出た(HDMIだけつないでいる)。
ただ、なんかNextを押せとか書いてある。まぁ無視やね。
blackmint:~ watahari$ ssh pi@raspberrypi.local
初期パスワードは`raspberry`。
無事はいれた。
blackmint:~ watahari$ ssh pi@raspberrypi.local
Warning: Permanently added the ECDSA host key for IP address 'XXX.XXX.XXX.XXX' to the list of known hosts.
pi@raspberrypi.local's password:
Linux raspberrypi 4.19.118+ #1311 Mon Apr 27 14:16:15 BST 2020 armv6l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed May 27 08:31:49 2020
SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
pi@raspberrypi:~ $
ここからは、リモートでデスクトップいじれるようになりたい。
sudo raspi-config
Boot Options > Desktop/CLI > Desktop autologinを選択(ローカルでしか使わない予定なのでこれでよさそう)
Interfacing Options > VNC > Would you like the VNC Server to be enabled? > Yes
Advanced Options > Resolution >

raspi-config抜けようとしたら、ここでrebootとなった。

ifconfigでローカルIPアドレスだけ特定。

sudo vncpasswd -service
リモートパスワードも設定
Mac側にはRealVNC Viewerをインストールして利用。成功!

この辺でテキトーにパスワード変更など実施しておいた。
本当は別にアカウントとか作ったほうがいいかな?まぁローカル稼働だけの予定なので、これでおわり。

=========

さて、Blynkをセットアップする。

https://github.com/blynkkk/lib-python
pi@raspberrypi:~ $ python --version
Python 2.7.16
pi@raspberrypi:~ $ pip --version
pip 18.1 from /usr/lib/python2.7/dist-packages/pip (python 2.7)
pi@raspberrypi:~ $ sudo pip install blynklib
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting blynklib
  Downloading https://files.pythonhosted.org/packages/7e/c5/56fbfa30606c59c8027a652a123d6071a1e5a225a33be5ad65f64cac81fd/blynklib-0.2.6-py2-none-any.whl
Installing collected packages: blynklib
Successfully installed blynklib-0.2.6

https://github.com/blynkkk/lib-python/tree/master/examples/raspberry
pi@raspberrypi:~ $ sudo apt-get -y install python-rpi.gpio
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
python-rpi.gpio はすでに最新バージョン (0.7.0-0.1~bpo10+1) です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 22 個。

https://github.com/blynkkk/blynk-library/blob/master/linux/README.md
http://wiringpi.com/download-and-install/
pi@raspberrypi:~ $ mkdir blynk
pi@raspberrypi:~ $ cd blynk
pi@raspberrypi:~/blynk $ git clone https://github.com/blynkkk/blynk-library.git
Cloning into 'blynk-library'...
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 11469 (delta 5), reused 1 (delta 0), pack-reused 11456
Receiving objects: 100% (11469/11469), 9.21 MiB | 976.00 KiB/s, done.
Resolving deltas: 100% (7209/7209), done.
pi@raspberrypi:~/blynk $ cd blynk-library/linux
pi@raspberrypi:~/blynk/blynk-library/linux $ sudo apt-get install wiringpi
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
wiringpi はすでに最新バージョン (2.50) です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 22 個。
pi@raspberrypi:~/blynk/blynk-library/linux $ make clean all target=raspberry
rm main.o ../src/utility/BlynkDebug.o ../src/utility/BlynkHandlers.o ../src/utility/BlynkTimer.o blynk
rm: 'main.o' を削除できません: そのようなファイルやディレクトリはありません
rm: '../src/utility/BlynkDebug.o' を削除できません: そのようなファイルやディレクトリはありません
rm: '../src/utility/BlynkHandlers.o' を削除できません: そのようなファイルやディレクトリはありません
rm: '../src/utility/BlynkTimer.o' を削除できません: そのようなファイルやディレクトリはありません
rm: 'blynk' を削除できません: そのようなファイルやディレクトリはありません
make: [Makefile:64: clean] エラー 1 (無視されました)
g++ -I ../src/ -I ./ -DLINUX -c -O3 -w -DRASPBERRY main.cpp -o main.o
g++ -I ../src/ -I ./ -DLINUX -c -O3 -w -DRASPBERRY ../src/utility/BlynkDebug.cpp -o ../src/utility/BlynkDebug.o
g++ -I ../src/ -I ./ -DLINUX -c -O3 -w -DRASPBERRY ../src/utility/BlynkHandlers.cpp -o ../src/utility/BlynkHandlers.o
g++ -I ../src/ -I ./ -DLINUX -c -O3 -w -DRASPBERRY ../src/utility/BlynkTimer.cpp -o ../src/utility/BlynkTimer.o
g++ main.o ../src/utility/BlynkDebug.o ../src/utility/BlynkHandlers.o ../src/utility/BlynkTimer.o -lrt -lpthread -s -lwiringPi -o blynk
pi@raspberrypi:~/blynk/blynk-library/linux $ sudo ./blynk --token=<ここにアプリ側で発行したTokenを書く>
[0]
    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v0.6.1 on Linux
[5] Connecting to blynk-cloud.com:80
[346] Ready (ping: 101ms).

うまくいったにっこり。
systemdにいれて自動起動させておこう。

って。vimはいっとらんやんけ
https://qiita.com/B73W56H84/items/1d164a3c083872e10ccb
うはは
pi@raspberrypi:~/blynk/blynk-library/linux $ sudo apt-get --purge remove vim-common vim-tiny
pi@raspberrypi:~/blynk/blynk-library/linux $ sudo apt-get install vim

はい。んじゃsystemd。
pi@raspberrypi:~/blynk/blynk-library/linux $ sudo touch /etc/systemd/system/blynk.service
pi@raspberrypi:~/blynk/blynk-library/linux $ sudo vim /etc/systemd/system/blynk.service
pi@raspberrypi:~/blynk/blynk-library/linux $ cat /etc/systemd/system/blynk.service
Description = Blynk service
[Service]
ExecStart = /home/pi/blynk/blynk-library/linux/blynk --token=<ここにアプリ側で発行したTokenを書く>
ExecStop = /bin/kill $MAINPID
Restart = always
[Install]
WantedBy = multi-user.target

まぁトークンベタで持っていいんかって話はあるけどええやろ。
pi@raspberrypi:~/blynk/blynk-library/linux $ sudo systemctl start blynk
pi@raspberrypi:~/blynk/blynk-library/linux $ journalctl -f -u blynk
-- Logs begin at Wed 2020-06-10 23:08:18 JST. --
 6月 11 00:04:17 raspberrypi systemd[1]: /etc/systemd/system/blynk.service:1: Assignment outside of section. Ignoring.
 6月 11 00:04:17 raspberrypi systemd[1]: Started blynk.service.
 6月 11 00:04:17 raspberrypi blynk[1623]: [1]
 6月 11 00:04:17 raspberrypi blynk[1623]:     ___  __          __
 6月 11 00:04:17 raspberrypi blynk[1623]:    / _ )/ /_ _____  / /__
 6月 11 00:04:17 raspberrypi blynk[1623]:   / _  / / // / _ \/  '_/
 6月 11 00:04:17 raspberrypi blynk[1623]:  /____/_/\_, /_//_/_/\_\
 6月 11 00:04:17 raspberrypi blynk[1623]:         /___/ v0.6.1 on Linux
 6月 11 00:04:17 raspberrypi blynk[1623]: [6] Connecting to blynk-cloud.com:80
 6月 11 00:04:18 raspberrypi blynk[1623]: [405] Ready (ping: 142ms).
^C
pi@raspberrypi:~/blynk/blynk-library/linux $ sudo systemctl enable blynk
Created symlink /etc/systemd/system/multi-user.target.wants/blynk.service → /etc/systemd/system/blynk.service.

この状態でいい感じに動いていることを再度確認した。
一応rebootしてもblynkが動いているのか見ておこう。

pi@raspberrypi:~/blynk/blynk-library/linux $ sudo reboot
pi@raspberrypi:~/blynk/blynk-library/linux $ Connection to raspberrypi.local closed by remote host.
Connection to raspberrypi.local closed.
でリブート後。
pi@raspberrypi:~ $ systemctl status blynk
● blynk.service
   Loaded: loaded (/etc/systemd/system/blynk.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-06-11 00:06:05 JST; 3min 50s ago
 Main PID: 262 (blynk)
   Memory: 1.8M
   CGroup: /system.slice/blynk.service
           └─262 /home/pi/blynk/blynk-library/linux/blynk --token=<ここにアプリ側で発行したTokenを書く>
 6月 11 00:06:06 raspberrypi blynk[262]:  /____/_/\_, /_//_/_/\_\
 6月 11 00:06:06 raspberrypi blynk[262]:         /___/ v0.6.1 on Linux
 6月 11 00:06:06 raspberrypi blynk[262]: [35] Connecting to blynk-cloud.com:80
 6月 11 00:06:06 raspberrypi blynk[262]: [116] Cannot get addr info
 6月 11 00:06:11 raspberrypi blynk[262]: [5068] Connecting to blynk-cloud.com:80
 6月 11 00:06:11 raspberrypi blynk[262]: [5076] Cannot get addr info
 6月 11 00:06:16 raspberrypi blynk[262]: [10099] Connecting to blynk-cloud.com:80
 6月 11 00:06:16 raspberrypi blynk[262]: [10101] Cannot get addr info
 6月 11 00:06:21 raspberrypi blynk[262]: [15108] Connecting to blynk-cloud.com:80
 6月 11 00:06:21 raspberrypi blynk[262]: [15350] Ready (ping: 93ms).
いいね。おわり〜。

0 件のコメント: