格安wifiモジュール「esp8266」「esp32」 4個目
■ このスレッドは過去ログ倉庫に格納されています
>>100 眺めてみるとロープロファイルじゃない穴が貫通してるタイプは秋月にも無いんだね 貫通ってなんだよ オレオレ用語使っても誰にも伝わらないぞー 馬鹿の相手をすると、 スルーホール型の(面実装型ではない)ロープロファイルなピンソケット のことを言ってるんだろうと理解するまでに無駄に時間がかかる。 当の本人は自分の馬鹿のせいで自分が遠回りしている自覚が無い、馬鹿だから。 そもそも 直接配線してたのに線が増えたからピンソケットで という発想も意味不明 どう直接配線してたのやら ロープロファイルと言うのはヘッダ側も短い様だから違うと思ったんだけど >>109 >>106 を馬鹿呼ばわりとリンク先との関係教えて、コミュ障さん 馬鹿だから君の意図が分からないの >>109 馬鹿お得意の後出しかw 馬鹿はなぜ百聞は一見にしかず ・ 論より証拠が分からないのかねえ くだくだ意味不明のレス繰り返すよりリンク1つ、写真1枚で済むのに だから馬鹿はずっと馬鹿なんだよねえ 関係ないけどaitendo問い合わせメール送っても一切返事来ないのは俺だけ? >>112 間違った商品が届いた時とWeb上の商品説明の間違いを指摘したとき 2度とも満足のいく対応だったよ esp8266 の Light Sleep という省エネモードを使いたいのだが、 setup の中に以下のように書けばいいらしが、どうもうまく動いてないようで 消費電流は70mAぐらいで変化しない 動作すれば、1mA切るぐらいまで減るはずなんだが 正しいやり方わかる人いますかー? wifi_set_sleep_type(LIGHT_SLEEP_T); ほい #include <ESP8266WiFi.h> #define WIFI_SSID "xxxxxxxxxxxx" #define WIFI_PASSWORD "xxxxxxxxxxxx" void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { Serial.print('.'); delay(100); } wifi_set_sleep_type(LIGHT_SLEEP_T); } void loop() { Serial.println(WiFi.localIP()); delay(10000); } >>117 lightsleepは処理が無いときに省電力にする機能で、Wifi接続時は定期的に通信してるからあんまり省電力にならんかったような。 上の方でNTPクロックは1時間毎に補正してくれるって書き込みあるけど、ライトスリープやディープスリープ運用させた場合はどうなるの? 補正されない? それとも1時間経ったのちに最初に起きてた時に補正されるの? >>119 それのどこだよw 回答する方が探すのかよ。 それを参考にしたけどうまくいかなかったとかいう記事を見かけた気がする。 やってる人の作例は探してないの? メンドクセエヤツ >>122 資料は内容少なく、すぐわかると思いますけど・・・ 成功している作例は、まだ見たこと無いですね >>117 言われた通り言われたところに貼れや、馬鹿なのか? http://codepad.org/6xYHJWVl ただでさえ人の書いたコードなんて見る気しねえのによ。 loop(){}内でWiFi落としてからsleepしてみ。 現状のdelayは無意味。 >>124 だから、そこへリンク張れや、馬鹿ばっかだな。 >>125 最初期のリビジョンにはGPIOレジスタに書いた内容が狂うみたいなエラッタがあった記憶 関係あるかはしらんけど >>119 ルータと接続確立したら定期的に裏で通信してる。beginせずに測ってみれ。 >>125 ESP32がRTOSで動いてて時々OS側に処理を戻さなければいけない これにはdelayMicrosecondsはダメでdelayだと可能 だけどdelayだと最小1msecしか指定できないので 速い処理には向かない これはcore0側の問題なので、core1側を使えば高速で動かせる >>130 問題なのはdelayじゃなく信号の立ち上がりのなまりじゃないの どー見てもcore速度にioが追随できてないだけとしか このオシロはどんな性能なんだろう 300kHzのPWMがちゃんと機能するから、0.02usecくらいのパルスはフルスイングできてる だいたい SPI Flash 自体 80MHz で動いていて、GPIO も最終の出力は共通なわけだから波形がどうのというのはおかしいな。 IOMUX・GPIOマトリックスとか通す影響とか? >Ethernet, SDIO, SPI, JTAG, UARTなどの高速信号は、パフォーマンス低下を回避するためにGPIOマトリクスを介さないで接続可能なものがあり、その場合は出力ピンが固定される ぐぐってたら↑な話が目に止まったけど、だったら通すとパフォーマンス低下するんだよね… 自分の持ってるESP32の一番古いのが 秋月で発売されたばかりの頃のDevkit Cだけど それで試したら3.17MHzが出力された loopの中はdigitalWrite2つだけでdelayも入れてない 波形はオーバーシュートとアンダーシュートが酷いけど 0 - 3.3Vちゃんと出てる ESP32(M5Stack)からJsonをFlaskにPOSTしたいのですが https://qiita.com/poruruba/items/4bf6a52520e431a8f4a5 のコードをほぼそのまま動かしたところ Flask側がcode 400, message Bad HTTP/0.9 request type ('POST')で M5Stack側には-5(HTTPC_ERROR_CONNECTION_LOST)が出てしまいます 色々調べてもどうすればいいのかわからないです ESP-01がディープスリープから復帰しません。 XPD_DCDC(GPIO16)とRESETピンを接続してるのですが オシロで見確認すると、Hのままで、XPD_DCDCから Lパルスが出ていません。 D1 mini で同様にするときちんと復帰します。 3個確認したのですが、同じ症状です。 私の買ったESP-01が不良だったのでしょうか? シリアルモニタは以下のようになります。 --- <ハードウェアリセット> ets Jan 8 2013,rst cause:2, boot mode:(3,6) load 0x4010f000, len 1384, room 16 tail 8 chksum 0x2d csum 0x2d v8b899c12 ~ld in setup() <--プログラムで出力 in loop() <--プログラムで出力 (設定したスリープ時間5秒) ets Jan 8 2013,rst cause:2, boot mode:(3,6) <この後フリーズしたまま> --- 念のため、D1 mini でGPIO16を接続しない場合 --- <ハードウェアリセット> ets Jan 8 2013,rst cause:2, boot mode:(3,6) load 0x4010f000, len 1384, room 16 tail 8 chksum 0x2d csum 0x2d v8b899c12 ~ld in setup() in loop() (設定したスリープ時間5秒) ets Jan 8 2013,rst cause:5, boot mode:(3,6) ets_main.c <--ここが異なる <この後フリーズしたまま> --- >>139 コードも書かずに解れってのは無謀だと思う。文面から見るとリセットかかってるように見えるが。rst cause:2のとこ m5stack gray ライブラリも最新 029使用中 mpu6886 版です 9軸データは出ていますがpcから外して本体のみにすると30秒で落ちる なんで SPIのCSは各SPI共にCS0しかありませんが、ハードウェアCSはどう言った時に有利になるのでしょうか 一つしか繋げないならずっとLOWのままでも良いんですよね? すまん…お前らたしゅけて… 特定のピンの電圧をanalogRead()で取れるって聞いたから実行したんだけど、 10秒間隔ぐらいで電圧が0になったりしてともかく安定しない… Lチカも上手くいかない…誰か原因エスパーしてくだしあぁああ・・・・ 書いたコード:https://wandbox.org/permlink/EUpumDXCwCJtVqde 出力結果:https://i.imgur.com/V0ih6wa.png 回路図(初めて書いたので書き方正しいかはわかんない): https://i.imgur.com/YWKVdcs.jpg 商用電源の交流50Hzで点滅してるのが見えてるだけじゃろ 同一ピンでアナログ入力とデジタルアウトを同時に使えるの? >>145 AnalogReadやってるピンの回路を書いてアップして >>146 たしかにそんな気がしなくも…だよ 全然気が付かんかった… >>147 分かんない とりあえずOUTPUTにしてる状態でanalogReadは使えないって話なのん…? 初心者過ぎてほんとごめんなさい… ってか36番ピン単純にLEDつけようとしてもつかなかった pinMode(OUTPUT)効いてない可能性高いのかな? >>148 analogReadしてるピンが36番ピンです… ピン配置確認したら36番ピンはGPIOとADC0って役割があるみたい >>149 全然仕組みが理解出来てない上に検索能力も低い無能だからもし良ければ突っ込みどころ一つ一つ指摘していただけますと幸甚であります…! 何卒…何卒よろしくお願いします… 自分でも気付いた様だけど34〜39はinput専用 >>150 AD変換の使い方もだけど、目的がわからん。どこの電圧を測りたいの?抵抗両端?LED両端? >>152 うへぇ…そんな理由だったのですか… なんという初見殺し… でも今回こっぴどく悩まされたからもうにどと同じ轍は踏まないよね… >>153 とりあえず「わー電圧取れてるすごい!」ってことをやりたかっただけなので意識してなかったけどLEDのとこの電圧取りたいなって思ってます >>145 そのコードで電流求めてるの計算間違ってないか? 直列にLEDがいるんだからそいつの電圧降下も考慮しないと。 あとLXの計算が意味不明。 >>154 インプットとアウトプットを別のピンにして 抵抗の先のとこをインプットに繋いだり、LEDの先のとこをインプットにつないだりしてみ 139です。 >>140 コードは、こんな感じです。 --- #include <Arduino.h> #include <ESP8266WiFi.h> int num_seconds_to_sleep = 5; void setup() { Serial.begin(74880); Serial.println("in setup()"); pinMode(0,WAKEUP_PULLUP); pinMode(16,WAKEUP_PULLUP); } void loop() { Serial.println("in loop()"); // go to sleep, default mode (keep RF active) ESP.deepSleep(num_seconds_to_sleep * 1000000, RF_DISABLED); delay(1000); } --- pinModeとESP.deepSleepのパラメータは色々変えても同じです。 >>141 GPIO0を外部でプルアップしても同じです。 ESP8266って、ディープスリープ後に起動メッセージを出力した後 フリーズというかハードリセット待ちになる仕様みたいですね。 ハードリセットが掛からないとそのまま低消費電流でもない状態が 続くみたいな。 >>157 deepsleep入るときはメッセージでないよ。 >>158 deepsleepに入るときじゃなくて、終わったとき(リセット前)にメッセージが出ます。 >>159 deepsleepのIO16をつないだ時のwakeup動作は、IO16による一時的なプルダウンによるリセットシグナルによるリセット。やってることはリセットボタンを押すのと同じ。wakeupメッセージが出てるってことはスリープ自体からは起きてる。 リセットがかからない場合は5秒たっても何もでないよ。 シリアル送信中の送信割り込み処理中にディープスリープ処理に入ってるからじゃないかね 送信完了を待ってからディープスリープする様にしたらどう? >>157 ESP-01っていろんなバージョンがあって、コネクタピンのresetのはずのところに、 GPIO16が繋がったやつもあった。俺はこれでハマった... https://www.letscontrolit.com/forum/viewtopic.php?t=2780 >>160-162 プログラムを下記のように変えても症状は変わりません。 ”in loop()”の表示と ” ets Jan 8 2013,rst cause:2, boot mode:(3,6)” の表示の間には、間違いなく5秒程度あります。 また、D1miniでGPIO16を接続しない場合も同様のタイミングでした。 >>163 情報ありがとうございます。 この可能性が高そうですが、確認には高度なはんだ付け技術が 必要みたいなので、少し時間が掛かりそうです。 void loop() { Serial.println("in loop()"); delay(1000); <---追加しても同じ // go to sleep, default mode (keep RF active) ESP.deepSleep(num_seconds_to_sleep * 1000000, RF_DISABLED); delay(1000); } コードはどっちかに貼れ、読む気せん。 http://codepad.org/ https://pastebin.com/ てか、テンプレに入れてくれ、いつのことになるかわからんが。 >>164 少なくとも俺のv3は目視でパターンを追えば、確認できた。 というか、deep sleep云々以前に、周辺回路がどうなってるか知らんけど、コネクタの5pinでのリセットはかかる? リセット周りの回路が怪しいかなぁ。プルアップ抵抗とか適切なんかな。 139です。 setupで digitalWrite(16, HIGH); pinMode(16, OUTPUT); とし、ESP.deepSleepの代わりに delay(5000); digitalWrite(16, LOW); とすると、ちゃんとリセットが掛かるので 回路は問題ないと思います。 >>168 deepsleep のパラメータは合ってるのかな? 俺なら -E オプションで マクロの展開させて確認したり、実機で print して確認するが。 M5Stackが時々ネットに繋がらなくなってしまいます そんな時はリセットボタンを押せば復活するのでとりあえずそれで凌いでます 繋がらない原因を調べるのが先だと思うんですが、とりあえずはスケッチの中でリセット出来ればなと思うんですが、リセットする関数ってありますか? あれば、ネットに繋がらない時はリセットをさせる処理をさせたいです あまり気にせず買ったけど、LOLIN32はピン並びが機能別にソートされてて良いな 欲を言えばHSPISSも反対側に移動して欲しかった ESP8266用のTESP8266というライブラリをESP32で使えるようにしたのだが このライブラリはHTTP/1.1でGETやPOSTしてるのだが、チャンクに対応してないので 受け取るデータにチャンクのデータが混入してしまうようだった GETやPOSTのところをHTTP/1.0にしたらうまくいった よく見かける、 >wakeupイベント割り込み(MAC,Host,RTC Timer外部割り込み) のMAC Hostって何の事でしょうか ESP-IDFプログラミングガイド眺めても Interrupt allocation・Power Management・Sleep Modes辺りにその様なワード一切見当たりません WiFi関連、受信時に割り込み発生させたり出来る物でも無いんですかね 8266Arduinoでちょっとはまり。 ボードをバージョンアップしたらおかしくなったのだけど、触ってないソースの再コンパイルって やってくれないのね。 変数のアドレスがおかしくなってたぽいんだけど、ソースにコメント書いて消してコンパイルで 事なきを得た。 >>175 arduinoのIDEだとリビルドとかクリーンとかないから困るね。 m5stickcでLCDをsleepするとタイマーで復帰しない… 液晶とCPUを両方スリーブさせてタイマーで復帰させたいのだが… esp_deep_sleepのみ ok M5.Axp.Sleepとesp_deep_sleep ng M5.Axp.DeepSleep ng ※中でSleepを呼んでる m5stack持ってないけど液晶をスリープてどゆこと M5.begin()で起きるんじゃないの? むしろタイマー以外では起きないはずだけど・・・ >>180 M5StickCはAXP192(のライブラリ)で管理してる。 レスありがとう 節電できて液晶焼けしなければバックライト消灯だけという策でもよいとおもう タイマーで定期的にアップロードする動作をさせるのが主目的なので そもそも液晶を点ける必要がないことに気づいた… ESP-Now試してみたら不通が解消出来ないんだけど、マスターとスレーブどっちに問題があるのか解らん… APSTAモードでOTAも起動してるんだけど、余計な物切るべきだろか APSTAでも使えるんだよね? 多分解った! APSTA時APとSTAは同じチャンネルになるそうで、ルーターの設定確認したら 7chになってたからそれに揃えないと駄目なんだな 同一chで時分割多重でそれぞれの電波出しているんだろう つながりにくくなる場合もあると思われ スリープ復帰時間について質問です。 ESP32-CAM+PIRで動きを検知したら、DeepSleepから復帰して写真を撮ってまたDeepSleepするプログラムです。 https://randomnerdtutorials.com/esp32-cam-pir-motion-detector-photo-capture/ 上手く機能していますが、スリープから復帰して写真を撮影するまで4秒ぐらいかかります。 ESP32は初めてでスリープ復帰後は、またSetupから実行するようですね? 復帰に4秒となるとと、やはり動きを検知して撮影するまでちょっと時間がかかりすぎます。 この4秒はDeepSleep以外のスリープを使わないと短縮できないのでしょうか? よろしくお願いします。 やはりそうですか。PIRの設置位置を工夫して早めに検知させたり、 他のスリープモードを検討してみます。ありがとうございました。 自分もその内それやろうとしてたけど4秒も掛かるのか 4秒て言うとただのセットアップじゃなく、カメラの露出調整とかに掛かる時間の様な気がするけど 諸々マニュアル設定しても駄目かね 後で良いなら普通に撮影してからWiFi設定すりゃ良いんじゃないの スリープ復帰から処理ごとの時間を計測してみました。 プログラムは上記URLから、写真を撮ってLineに送るものに変更していますが、 基本的に同じような処理です。 (秒)(処理) 1.700 起動 1.600 Wifi接続 0.200 Lineトークン設定 0.467 カメラ初期化 1.666 起動 1.667 Wifi接続 0.200 Lineトークン設定 0.467 カメラ初期化 だいたいこんな感じになりました。 カメラの初期化は0.5秒ぐらいでした。思ったより速いです。 「起動」はプログラム先頭、setupの一番上で計測点を置いています。 起動とwifi接続にそれぞれ1.6秒強かかってますね。 自分も気になって今書いてる物の起動ログ眺めてみたら I (242) esp_wifi_set_mode I (242) esp_wifi_set_config - ESP_IF_WIFI_AP I (1092) esp_wifi_set_config - ESP_IF_WIFI_STA I (1092) esp_wifi_start スタートやコネクションじゃなく、APモードのコンフィグ登録で850msも掛かってて何だコレと APとSTAの順番入れ替えてみても変わらずAPが遅くてちまちま確認してたら 850ms ap_config.ap.authmode = WIFI_AUTH_WPA_WPA2_PSK; 10ms ap_config.ap.authmode = WIFI_AUTH_WEP; 10ms ap_config.ap.authmode = WIFI_AUTH_OPEN; 何だろう、暗号化のテーブル的な前準備を登録した時点でやるんだろうか >>192 >>193 wifi接続を後回しにしたら、起動から2秒ぐらいで撮影できました♪ 元旦は、pio+espidfでのOTA導入で潰れた protocol=espotaはArduinoOTA用のUDPだからHTTPd立てるタイプでは使えないて事で cURL導入して、espidfではデフォでOTAのパーテーションが切られて無いて事に 暫く気付かず右往左往してやっと安定した IDFガイドの例には必ず入ってるfactoryパーティションの存在意義が解らず 削ってしまったけど良いのかな nvs, data, nvs, 0x9000, 0x5000, otadata, data, ota, 0xE000, 0x2000, ota_0, 0, ota_0, 0x10000, 0x1E0000, spiffs, data, spiffs, 0x1F0000, 0x20000, ota_1, 0, ota_1, 0x210000, 0x1E0000, phy_init, data, phy, 0x3F0000, 0x1000, プログラム領域広げようとしたらinvalid magic byte/invalid SPI mode/invaild SPI size エラーが延々出続けて試行錯誤してたらこうなった アライメント的な物じゃなく、ota1とota2のオフセット下5桁を揃えないと駄目なのかな >>200 E (106) esp_image: image at 0x1b0000 has invalid magic byte W (112) esp_image: image at 0x1b0000 has invalid SPI mode 246 W (119) esp_image: image at 0x1b0000 has invalid SPI size 10 E (125) boot: OTA app partition slot 1 is not bootable 起動ログにこんなん表示されてOTAが無効になる で必死にota1が無効にならない割り当て探してたら>>199 になった ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる