AMPY–ESP32との通信方法

ESP32をMicroPythonで使用する際には、ファイルのアップロード、ダウンロード、削除などが必要になってくる。

AMPYはコマンドライン(Windowsではコマンドプロンプト)にて対話的に行える。

コマンドプロンプトでampyと入力すると下のような説明が出てくる。

C:\Users\>ampy
Usage: ampy-script.py [OPTIONS] COMMAND [ARGS]...

  ampy - Adafruit MicroPython Tool

  Ampy is a tool to control MicroPython boards over a serial connection.
  Using ampy you can manipulate files on the board's internal filesystem and
  even run scripts.

Options:
  -p, --port PORT    Name of serial port for connected board.  Can optionally
                     specify with AMPY_PORT environemnt variable.  [required]
  -b, --baud BAUD    Baud rate for the serial connection (default 115200).
                     Can optionally specify with AMPY_BAUD environment
                     variable.
  -d, --delay DELAY  Delay in seconds before entering RAW MODE (default 0).
                     Can optionally specify with AMPY_DELAY environment
                     variable.
  --version          Show the version and exit.
  --help             Show this message and exit.

Commands:
  get    Retrieve a file from the board.
  ls     List contents of a directory on the board.
  mkdir  Create a directory on the board.
  put    Put a file or folder and its contents on the...
  reset  Perform soft reset/reboot of the board.
  rm     Remove a file from the board.
  rmdir  Forcefully remove a folder and all its...
  run    Run a script and print its output.

当方のPC環境ではUSBがCOM3ポートになっているので、次のような使い方となる。

ESP32内のファイル表示する場合は -p com3(comポート番号) ls(ファイル表示)を入力する。

C:\Users\>ampy -p com3 ls
boot.py
test.py
main.py
ssd1306.py
hcsr04.py
temp.py
display.py
test3.py
test4.py
distance.py
test_ave.py
test5.py

ESP32上のファイルをPCにダウンロードする場合はgetコマンドを使用する。c:以下はダウンロードするディレクトリとファイル名

C:\Users\>ampy -p com3 get main.py c:\micropython\new\main1.py

ファイルをアップロードするにはputコマンドを使用する。

C:\Users\>ampy -p com3 put c:\micropython\new\main1.py
C:\Users\>ampy -p com3 ls
boot.py
test.py
main.py
ssd1306.py
hcsr04.py
temp.py
display.py
test3.py
test4.py
distance.py
test_ave.py
test5.py
main1.py

ファイルを削除する場合は、rmコマンドを使用する。

C:\Users\>ampy -p com3 rm main1.py

C:\Users\>ampy -p com3 ls
boot.py
test.py
main.py
ssd1306.py
hcsr04.py
temp.py
display.py
test3.py
test4.py
distance.py
test_ave.py
test5.py

ノラちゃんの本能

昨日、散歩してる最中での出来事です。飼いネコなのか、ノラちゃんなのか判りませんがたまに会うネコちゃんです。なんか遠目で見て、マスクしているのかなーと思いながら、声をかけたところ、いつものように寄ってきました。ふっと、近くまで来たところ、マスクかと思ったら、なんと小鳥でした。久しぶりにビックリしました。野性味が残ってるし、見せかったんでしょうか?写真は加工しましたが、申し訳ありません。グロ注意です。

でも、久しぶりに野性感を見ました。飼い主に見せて褒められたいんでしょうね。

お先にトクだ値

JR東日本で好評のお先にトクだ値ですが、期間限定で東海道-伊東線を走る特急踊り子にも2月、3月と期間限定で、対象となりました。毎週末東京と自宅の宇佐美を往復している身となればいかに安く行けるかが課題でありますので、早速申し込みました。

宇佐美-東京のJR普通運賃は1,980円。お先にトクだ値ですと、伊東-東京間で特急料金込みで2,090円と、なんと110円の差額で特急に乗れて行けます。加えて、現在緊急事態宣言中ですので、車内も空いていて快適です。中々観光ではおすすめできませんが、期間限定ですのでおすすめです。座席数限定で一ヶ月前からの予約ですのでお早めに予約が必要です。

ちなみに、発売から10日後には発売停止でえきねっとトクだ値30%引きのみとなりますので、早々に予約が必要です。

詳しくはJR東日本のホームページhttps://www.eki-net.com/top/tokudane/kakaku_osakini_sp.html?src=kakaku_tokkyuをご確認ください。

ImageMagickインストール

wordpressで、いまだにサイトヘルスステータスで推奨が出てるので、ImageMagickをインストールした。

作業はこちらのサイトhttps://www.kkaneko.jp/tools/ubuntu/imagemagick.htmlを参照。

下コードのように順に作業

sakae@:/tmp/ImageMagick$ sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config
sakae@:/tmp/ImageMagick$ sudo apt -y install git
sakae@:/tmp/ImageMagick$ cd /tmp
sakae@:/tmp/ImageMagick$ rm -rf ImageMagick
sakae@:/tmp/ImageMagick$ git clone https://github.com/ImageMagick/ImageMagick
sakae@:/tmp/ImageMagick$ cd ImageMagick
sakae@:/tmp/ImageMagick$ ./configure --without-perl
sakae@:/tmp/ImageMagick$ make
sakae@:/tmp/ImageMagick$ sudo make install
sakae@:/tmp/ImageMagick$ make check

取り敢えずエラーが出ずにインストール終了。

それでも、サイトヘルスステータスでは変化がないので、別のサイトhttps://webjin.work/ubuntu-install-imagemagick/を参考に再インストール。

root@:/etc/php/7.4/apache2# apt install imagemagick
root@:/etc/php/7.4/apache2# apt install libmagickwand-dev
root@:/etc/php/7.4/apache2# apt install pkg-config

pkg-configは既にインストールされていたみたいで、インストールスキップの反応

Reading package lists... Done
Building dependency tree
Reading state information... Done
pkg-config is already the newest version (0.29.1-0ubuntu4).
The following packages were automatically installed and are no longer required:
  libpciaccess0 python3-xkit ubuntu-drivers-common
Use 'apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

次に進む

root@:/etc/php/7.4/apache2# apt install php-dev
root@:/etc/php/7.4/apache2# pecl install imagick

imagick無事にインストールできたみたい。

Build process completed successfully
Installing '/usr/lib/php/20190902/imagick.so'
Installing '/usr/include/php/20190902/ext/imagick/php_imagick_shared.h'
install ok: channel://pecl.php.net/imagick-3.4.4
configuration option "php_ini" is not set to php.ini location
You should add "extension=imagick.so" to php.ini

WEBサーバーをリスタートしphp.infoを見る。

root@:/etc/php/7.4/apache2# /etc/init.d/apache2 restart
Restarting apache2 (via systemctl): apache2.service.

サイトヘルスステータスでも無事に消えました。

必須モジュールgdがインストールされていないか、無効化されていません。

WordPressのサイトヘルスで警告が出ていたので、ネットで調べて対策をしました。

まずはGDモジュールを検索してみました。

root@:/etc/php/7.4/apache2# apt-cache search gd | grep php
php-gd - GD module for PHP [default]
php7.4-gd - GD module for PHP
php-image-text - Image_Text - Advanced text maipulations in images

現在のGDモジュールはphp7.4gdでしたので、これをインストール。

root@:/etc/php/7.4/apache2# apt-get install php7.4-gd

apache2を再スタートしてphp.infoで確認。

root@:/etc/php/7.4/apache2# /etc/init.d/apache2 restart
Restarting apache2 (via systemctl): apache2.service.

これで、GDモジュールはインストールされました。サイトヘルスで確認すると問題なくなりました。

古物商の許可証が出ました

年初の仕事始めの1月4日に申請した古物商の営業許可申請が通りましたので、所轄の警察署まで取りに行ってきました。許可証の交付日が1月28日でしたから、通常40日とのことでしたが、24日での交付になりました。

併せて、インターネットでの取引用の届出も提出してきました。コピーを持って行ったので収受印(受付印)も押してもらえました。

古物商標識も注文しましたので、本格的に二輪車売買を始めていきたいと思います。

WordPressサブディレクトリの設定

WordPressがサブディレクトリにあるので、http://sakae-shokai.com/wordpressといちいちサブディレクトリまで入れないといけないので、変更した。

まずはサーバーに接続しサブディレクトリにある、index.phpと.htaccessをルートディレクトリにまずはサーバーに接続しサブディレクトリにある、index.phpと.htaccessをルートディレクトリにコピーする。

root@:/home/sakae# cd /var/www/html/wordpress
root@:/home/sakae# cp index.php /var/www/html
root@:/home/sakae# cp .hraccess /var/www/html

その後、エディターでindex.phpの部分にサブディレクトリ(赤字部分)を加筆。

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );

/** Loads the WordPress Environment and Template */
require __DIR__ . '/wordpress/wp-blog-header.php';

.htaccessも同様に加筆。.htaccessはWordPressが勝手に書き換えるため、設定が基本だと

# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます
。

# END WordPress

全く、記載がない。このためパーマリンクを基本から他の部分に変更し、保存すると内容が書かれてきます。設定した後、リンク部分がうまくいかず、焦ったが、パーマリンク設定を基本に戻して保存したら、何故かうまくいきました。

wordpressインストール備忘録

サーバーにログイン後

root@:/var/www/html# tar xvf latest-ja.tar.gz
root@:/var/www/html# chown -R www-data:www-data .

ドメイン/wordpress/でワードプレスの初期設定画面が出るので、データベースの設定(既にデータベースができている場合)

データベースができていない場合はデータベースを作成

mysql
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8;

wordpress用ユーザーを作成

GRANT ALL ON wordpress.* TO wordpress@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;