いっぺーちゃんの いろいろやってみよ~

micropython

micropython on ESP32 でIFTTT(アクション編)

ジャッキー・チェンがアチョーって、、、またスベった。。。 今回はIFTTTのwebhooksチャネルをアクション(that)で利用し、ESP32側で処理を行うことを試してみます。ESP32は家庭内LANなどに接続されており、外部から直接アクセスできないので、こちらを参考に…

micropython on ESP32 でpush通知

TwitterやLINEで通知を試しましたが、twitterやLINEのアプリをインストールしたりアカウントを作成する手間も省きたいというモノグサ魂がムクムクと。。。モノグサのためなら苦労も厭わないという、本末転倒な感じですが(笑)。また、通知の痕跡が残らないよ…

micropython on ESP32 でIFTTT(トリガ編)

micropythonでTwitterやLINE notifyにデータを送信するプログラムを作ってみましたが、IFTTTを使えば通知先を気にせず同じプログラムで送信できることに今更気が付きました。ということで、IFTTTにデータを送信するプログラムを作ってみました。 まず、IFTTT…

micropython on ESP32 で名前解決

別に子供の名前を決めてくれるわけではない。。。(スベった) インターネットアクセスでマシン名からIPアドレスを取得するアレです。 公開されているサーバであれば、DNSで解決できるのですが、家の中のようなローカルな環境のマシンも名前でアクセスできたら…

micropython on ESP32 でDAC

今更だけど備忘録として。 ESP32でアナログ電圧を出力するのにDAC(Digital-Analog Converter)を使用できます。DAC出力端子として、Pin25、Pin26を指定できます。それ以外の端子を指定すると例外ValueErrorがraise されます。初期化は以下のように実行します…

micropython on ESP32 でPWM

今更だけど備忘録として。 ESP32でパルスを出力するのにPWM(Pulse Width Modulation)を使用できます。 出力端子は出力可能な任意のpinを指定可能ですが、設定できる端子は最大8本です。周波数はすべてのチャンネルで共通です。周波数を変更すると、パルス幅…

micropython on ESP32 でADC

今更だけど備忘録として。 ESP32でアナログ電圧を取得するのにADC(Analog-Digital Converter) を使用できます。ESP32のADCのアナログ入力の電圧範囲は0~VDD(3.3V)です(ESP8266とは異なります)。ADC入力端子として、Pin36、Pin37、Pin38、Pin39、Pin32、Pin3…

micropython on ESP32 でLINE

Twitterに飽きたらLINEもね。ということで、Espruino on ESP32 で LINE(その1) のmicprpython版です。 準備として、上のリンクにある通り、アクセストークンを取得しておきます。 以下がLINE Notifyにメッセージを送信するモジュールです。tiny_line.py とい…

micropython on ESP32 でTwitter(その4)

前回の受信プログラムはブロッキング動作のため、受信動作を行うとコールバック以外の処理が行えなくなってしまいます。そこで、今回はノンブロッキング動作に変更して他の処理を行えるように変更してみます。 とはいえ、tiny_twitterモジュールには既にノン…

micropython on ESP32 でTwitter(その3)

今回はtweet内容を受信するプログラムを試してみます。 Espruino on ESP32 で Twitter(その4) のmicropython版です。 あまりたくさんのtweetを一度に受信してしまうと、メモリ不足で落ちてしまいます。それを防ぐため、1つのtweetのデータが大きすぎる場合は…

micropython on ESP32 でTwitter(その2)

さて、早速tweetしてみましょう。 ESP32はmicropython on ESP32 でWi-Fiルータ(or AP)に接続するにしたがってWi-Fiに接続されていて、micropython on ESP32 でTwitter(その1)の手順で各モジュールが改造/インストール済みであるものとします。 以下のプログ…

micropython on ESP32 でTwitter(その1)

Espruino on ESP32 で Twitter(その1) - いっぺーちゃんの いろいろやってみよ~のmicropython版です これの元ネタがmicropython版なので、戻ってきた感じですが、Espruino版で入れた種々の変更も取り込んで一から作り直しました。 まずは、micropythonのBug…

micropython on ESP32 でNTPサーバから時刻取得

前回、時刻を設定できるようにしたので、今回はNTPサーバから時刻を取得してみます。これらを組み合わせると、時刻合わせが自動で行えるようになります。 以下のプログラムをntptime.pyという名前で保存し、upipmでインストールします。 import usocket as s…

micropython on ESP32 で時刻設定を可能にする

ESP32のmicropythonのutimeモジュールにはtimeという時刻(ある時点からの経過秒)を取得するメソッドがあるのですが、時刻を設定する方法が見当たりません。「無いのなら作ってしまえ、ホトトギス」ということで作ってみました。ついでに、経過秒から年月日時…

micropython on ESP32 でモジュールをインストールする

micropythonにはPyPiサイトに用意されたモジュールをインストールするためのモジュール upip が用意されています。 import upip upip.install("パッケージ名") でインストールできます。ちなみに、upipのソースはmicropython-esp32/esp32/modules/upip.pyに…

micropython on ESP32 でWi-Fiルータ(or AP)に接続する

ESP32をWi-Fiルータ または アクセスポイントに接続します。以下のプログラムを実行すると、Wi-Fiルータに接続できます。 SSID_NAME = "SSID名" SSID_PASS = "パスワード" import utime import network # ==== connecti to wifi access point ==============…

micropython on ESP32 でダウンローダを使う

プログラムを作成して、逐一コピペするのは面倒だなぁ、と思うでしょ?micropythonにはダウンローダが用意されています。tools/pyboard.py がそれです。 /work2/esp/micropython-esp32/tools/pyboard.py --device /dev/ttyUSB0 file名 で実行できるはずなん…

micropython on ESP32 でぽちっとな

またまた定番のボタンをぽちっと押してみます。 GPIO端子(下の例ではIO21)にpull-up抵抗とスイッチを接続し、Active Lowな入力にします。以下のプログラムを実行すると、スイッチを押したり放したりすると「ぽちっとな~」とか「はなしたでー」とか表示され…

micropython on ESP32 でLチカ

ということで、定番のLチカ GPIO端子(下の例ではIO22とIO23)にLEDと電流制限用抵抗を接続しておきます。 Active HighでもActive LowでもOK(点滅するので、どっちになってても分からない)。 以下のプログラムを実行すると、LEDがそれぞれの周期で点滅します。…

ESP32でmicropython

天邪鬼ないっぺーちゃんはpythonを避けてEspruinoでごちょごちょやってきましたが、やはりpythonも試しておこうということで、micropythonを試してみることにします。 micropythonのビルドは、Windowsで色々ハマるより、Ubuntuの仮想マシンで実行するのがオ…