CentOS7.6 python 2.7.5 で opencvを使えるようしたときのメモ
sudo pip install --upgrade pip sudo pip install numpy sudo pip install opencv-python sudo pip install opencv-contrib-python
を実行してみるものの、cv2をインポートするとこんなエラーが
Segmentation fault
matplotlibを入れてみることに
sudo pip install matplotlib
そうするとエラーの内容は変わったが、今度はnumpyでエラーをはくようになった
以下のサイトを参考に対処
すると、こんどはnumpy側のエラーが
なんでやねん
pipからuninstallしても消えてないので、強制的にlibのpythonの中のsite-packagesのnumpyを削除
んで、再インストールするとなんか動いたくさい
雷センサ
買ったわけじゃないですが、こんなセンサがあるんだなーと思ったので。
何に使えるかなー
雷が発生したら電子機器とか電源落としちゃうとか?
あとは個人的な趣味の範疇として気象データの取得かなー
気温や光量、湿度なら家庭菜園の野菜の管理とかにつかえそうだけど、雷は・・・(笑
複数のMPR121をI2Cでつなぐ
解決してない、未解決事案!(笑
MPR121を複数、例えば2つつないでそれぞれ0x5A、0x5Bのアドレスを割り当てます。
そんでもってAdafruitが公開しているライブラリを利用して
Raspberry piからpythonを使って接続してみる
2つつなぐ分にはタッチしかどうかちゃんととれてるんですが、
これが3つになるとなぜかうまく反応しない
厳密なこというと、3つつないでも2つしか反応しない感じ、なぞす
プログラムの問題や配線の問題もありそうだけど、
単独なら問題ないんだよなー、配線の問題という線は薄そう
【失敗】raspberry piでマルチプレクサ(PCA9547)
現在作成中ですが・・・
静電容量センサ(MP121)を10個つなげたい!
だけど0x5A~0x5Dの4つしかアドレスはありません、I2Cで通信したいのにアドレスが被っちゃう!
そんな重複を回避してくれるのがマルチプレクサです。
秋月電子に売ってたPCA9547を使ってみることにしました。
まぁ、半田が下手すぎてこいつの表面実装に苦労したんですが・・・まぁそれはさておいて
PCA9547は8chあるので、2つは直接つないで、
残り8つはPCA9547を通してつなげればいいやーとおもってつないでみたものの
なんだかいい感じに動かず
i2cdetectでアドレスは取れてくるからちゃんと動いてるだけどなーと思って悩みながら一晩経過
(残り8つのアドレスは0x5Aのまま、マルチプレクサのアドレスは0x70
いろいろググりながら調べてるときに
このサイトをみてハッと気づきました。
0x5Aのアドレスが重複してるんじゃね?
よくよく考えればあたりまえなんですが、
マルチプレクサはぶら下がってるセンサを切り替えるだけであって、
センサそのものアドレスが0x70になるわけじゃないんですね、たぶん
うん、いい感じに動かなかったのはこのせいだ
再度トライしてみよっと・・・
ConoHaでSSL化してみる(CentOS7/nginx)
流れは常時SSL化なので波にのっちゃうしかないでしょ。
まずはポートの確認
target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh dhcpv6-client http ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
うん、httpsが空いてないね、なので空けます
firewall-cmd --permanent --add-service=https --zone=public firewall-cmd --reload
これだけ、再度確認して、httpsが追加されてればOKです
証明書をインストールする
あくまで個人サイトのレベルなので無償で証明書を作ってくれるLet's Encryptを利用します。
有名なやつですね。
Let's Encryptは証明期間が90日なのですが、90日立つたびに手作業で証明を入れ替えるのはめんどうです。
故にcertbotと呼ばれるものを利用します。
git clone https://github.com/certbot/certbot
gitが入っていないようであれば「yum install git」とでも打ってインストールしちゃってください。
次に証明を作っていきます。
cd ./certbot sudo ./certbot-auto certonly --webroot -w /home/hogehoge/html/ -d hogehoge.com
「/home/hogehoge/html/」はnginxのルートディレクトリ、
hogehoge.comは取得したドメインに書き換えてくださいね。
あとは質問に答えていきます。
メールアドレスの入力とライセンスに同意するかの確認、
また、メールアドレスにメルマガ的な通知がいるかの確認、そして最後にドメインの入力です。
うまく証明書ができあがると下記フォルダにデータが出来上がります。
/etc/letsencrypt/
サーバに設定するときは「/etc/letsencrypt/live/」配下のフォルダにあるシンボリックリンクを使うようです。
シンボリックリンクは常に最新を指し示すようです。
nginxを設定する
nginxの設定は特になにも変えてなければ「/etc/nginx/nginx.conf」にあるかと思います。
そのファイルの中にhttpの設定があると思いますので、
その中にhttpsの設定を書き加えます。
server { ・・・ listen 443 ssl; ssl_certificate /etc/letsencrypt/live/hogehoge.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/hogehoge.com/privkey.pem; ・・・ }
「sudo nginx -s reload」でサービスを再起動してhttpsでアクセスしてみましょう!
どうですか?見れましたか?やったね★
httpのアクセスをhttpsへリダレクトする
httpsを設定したなら積極的に使いたいですよね!
httpアクセスをhttpsへリダイレクトするようにしてみます。
「/etc/nginx/nginx.conf」を以下のように書き換えました。
変更前
server { listen 80 default_server; listen [::]:80 default_server; server_name hogehoge.com; root /home/hogehoge/html; # SSL listen 443 ssl; ssl_certificate /etc/letsencrypt/live/hogehoge.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/hogehoge.com/privkey.pem; ・・・ }
変更後
server { listen 80 default_server; listen [::]:80 default_server; server_name hogehoge.com; root /home/hogehoge/html; return 301 https://$host$request_uri; } server { listen 443 ssl; ssl_certificate /etc/letsencrypt/live/hogehoge.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/hogehoge.com/privkey.pem; server_name hogehoge.com; root /home/hogehoge/html; ・・・ }
証明書を自動更新してみる
cronをつかって定期的に証明書を自動生成するようにしてみます。
0 2 1 * * /home/hogehoge/certbot/certbot-auto renew --post-hook "/bin/systemctl reload nginx"
これで月初めの夜中の2時に動くはずです!たぶん!
MPR121のアドレス変換
ちょっと悩んだのでメモ
MPR121をI2Cで複数つなげるときはアドレスが重複するので変更する必要があるのですが、
以下のようになっています
ADDR -> GND 0x5A(デフォルト)
ADDR -> VDD 0x5B
ADDR -> SDA 0x5C
ADDR -> SCL 0X5D
デフォルトはGNDにつながっているのですが、
アドレスを変更するにはADDRの繋げさきをGNDからVDDとかに変更する必要があるのですが、
これがわからんかった!
ちょっとわかりにくいかもしれないけど、
写真の右端の端子?銀色のやつの間はつながっていて、どうもそれがADDRとGNDらしい
なのでここんとこをカッターナイフとかでガリガリと削ってカットして、
その上でADDRをVDDへつなげたら無事、アドレスが変換できたとさ
めでたし、めでたし