格安wifiモジュール「esp8266」「esp32」 2個目 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
今、注目の格安wifiモジュール「esp8266」と「esp32」 前スレ 格安wifiモジュール「esp8266」 http://wc2014.2ch.net/test/read.cgi/denki/1432042649/ うちはもうH8は使っていないけどATmegaはまだまだ現役 つい最近もRS485通信で特定のデータにのみアクションを起こすユニットを作ってくれとオーダーが来て ATmegaを使用した ここにESPが入ってくるのはまだまだ信頼性の観点から先のお話だな >>410 ルネなんとかのマイコンはもう全く使わなくなったなー 営業「このマイコンは割高ですがその引き換えにまだまだ今後10年は余裕なので長期保証の用途にお勧めです」 俺「あ、ほんま?なら前向きに検討させて貰うわ」 一年後 営業「すまん実は作ってる工場が閉鎖でディスコンんごwwwwすまんなwwww」 俺「笑い事じゃない 在庫はどのぐらいもつのか?」 営業「知らんゴwwwwワイもリストラだから後のこと知らんゴwwww」 俺「」 何年も前だけど本当にあった話。本当に吹っ切れてて菓子折り持って笑いながら報告しに来た そして月二回は必ず来ていた彼は本当に来なくなった。 これのおかげで様々なマイコンに触れるきっかけになり ESPにも触れるという趣味の広がる結果に至った訳だけど >>405 試したら書かれている症状が再現された フォーラムでも随分前に報告されている方がいるが serial.ptintを使えとの事 転職やリストラ予定の営業が顔見せに来たことなんて一度もないわ いつの間にか見掛けなくなって、連絡したら知らん奴が担当になってるだけ >>405 試したら本当に送信したのを自分で数バイト受信するな これはなかなかひどいw SerialEvent()ではどんな挙動するの? それもwriteで送信する度に呼び出されてしまうのかな 何処で聞いたら良いか分からんけど、esp8266での話なのでここで聞いてみる。 ESP8266(master)とATmega328PB(slave)をI2Cで通信しようと 色々やってみているんだけど、slave(328pb)からmaster(ESP)への通信でなぜか、受信したデータがなぜか右1シフトされる。 // slave byte send = 4; Wire.write(send); //master byte receive receive = Wire.read(); Serial.print( receive); 抜粋だが、ようするに単純に1byteの送受信で試してるんだけど、上の結果receiveの中身が2に・・・ 11→5,9→4,8→4,5→2,1→0 こんな感じで明らかに受信データがシフトしてる。 ロジアナで通信覗くと、正しい値流れてるからESPの中でシフトされてるんだけど、何が悪いんだろ? ちなみに、逆(master→slave)は正しく送れる。 推奨値ではプルアップが弱くて不安定なので抵抗値を下げたらよくなった経験はある。 >>422 3.3vと5vのロジレベと違いで化けてない? マイコン同士I2C通信させる回路は俺の場合 簡易的ではあるけど前回のバイトと今回のバイトを足した数値を 化けてないかのチェックサムもどきにしてる 今発売のトラ技SPECIAL読んだ つまらなかった お騒がせして申し訳ない。 原因はデバック用のコードが悪さしてたorz 取り除いたらちゃんとデータ出てきたよ、esp疑って悪かった。 なんでデバックしてたかと言えば、328pbからマルチバイトの送信が上手くいかなかったから。 シングルバイトが正しく送れる事が分かったので、 Wireを追っかけて見た。 328pbはMinicore使ってるをだけど、こいつのWireが公式のバグ持ちをベースにしてて、 修正が入って無かった。 最新のコードに置き換えたら、ちゃんと動いたよ。 そんなことより、 >ロジアナで通信覗くと、正しい値流れてる の後の >ロジ穴じゃなくてオシロで見るべし が笑えた。 デジタル通信は、まずオシロで波形品質を確認し、ロジアナで通信内容を確認すべし って俺は思う まあみんながどう考えるかは知らんけど俺はいつもそうしています では >>432 理由がないとあなたの主張は伝わりません >>431 波形のエッジが訛ってないか程度は確認しておきたいねぇ マイコンの使う通信帯域は20MHz程度の3万から買えるオシロで十分だから 持ってない人はあると便利だよ 屁理屈並べてる暇あったらさっさとプローブ当てて波形見てみぃや びっくりするような糞波形なんやでぇ 幾度も出てる話だけど、 ロジアナ8ch+アナログ1chの中華製送料込み4000円程度 ので十分だし、とても重宝しています。 ソフトはPulsViewが使えてもちろん無料。 >>436 もう解決してるの。 もちろん、オシロなんか無関係な原因でね。 >>437 その書き込み以前にも見かけて興味持ったまま忘れてたわ 思い出させてくれてありんこ これってぶっちゃけどんな機器なの? シリアルにセンサ繋いで母艦にすっ飛ばす感じで使われてるの? しかも簡単なプログラミングは出来る的な? >>437 の情報をもとに自分で探せない人はやめとく方がいい その程度のスキルも無いなら素直に数万円出してオシロ買え >>442 そんなにいいもので自慢気に語るなら アラ探してやるから晒してみろよ っていってんのが分かんない? >>443 探して来れない程度のスキルのくせにアラ探しはお得意なんですか。 気長にお待ちしています。 何万円もする高いオシロ使ってる人が、なぜ数千円の中華製に興味持ってんの? それがとても不思議。 デジタル全盛、アナログ衰退、斜陽な日本電々 オーバースペックの機器抱えて活かしどころも無く憤懣やるかたないのでしょう 安い中華測定器は格好の目の敵ってとこ とても喰いつきがいいのですw >>442 メンドイわw 大したこと無い情報を勿体ぶるアホが居るからなあ 少なくともお前が想像力が足り無いオツムだってのは判ったから興味も無くなった 安い測定器か。それこそ ESP32 で作れそうな感じなんだけどなぁ。誰か作ってないかなぁ。 - 波形キャプチャに 8ch の RMT が使えるはずで、80MHz の精度までいける。バッファに使えるメモリもある。 - ADC もスループットだけはかなり高くできそうだ。DMA も使えるし、2 個同時も多分いける。 - PulsViewのドライバ書けば、ソフトもいけそうだ。 >>444 ゴミと分かってる情報を調べる程のバイタリティーは持っていないです。 >>454 ゴミと分かってるのに日をまたいでまで粘着するバイタリティーはあるのね。 >>455 巡回したら噛みついてる野良犬がいてさ ちょっと相手しただけだよ このチップのBTは不安定すぎて使えない オマケレベル。 easy esp megaのNormal IR版が特定の板で起動出来ない dev版やtest版は問題ないんだけども何でやろか? Wemos NodeMCU V3って言う勝手バージョンらしい怪しい板 8266の頃は、リセット、フリーズ、速度が極端に落ちるとか酷かったけど 32になって問題なくなったってきいたぞ もう今は使う理由がないから触って無いが 家のはwifi接続が不安定・・ レギュレーターがかなり熱もってる >>462 電源入れる度に挙動が異なる。 特定のAPIで時間が立つと必ずコールバックが帰って来なくなる。 突然リブートするw >>466 ふうん、で、原因はチップにあり、 自分の回路設計は完璧だって自信があるわけね。 wroom02 20個足らず使ってみて、最初動いていたのがいつの間にかダメになっている、 再プログラムができないのとできるのとあるが、まともにWiFi通信できない というものが10個くらい出てしまった。 標準のプロトコルスタックがBluedroidなんで これをbtstackに変えてみるとどうだろう と雑なアドバイス ESP Easyで赤外線受信使ってるんだけど データの正誤率が半分くらいしかない センサーのデータシート通りに抵抗とコンデンサ入れてるんだけどな センサーの実力だろうか? >>470 受信信号オンオフの時間をシリアル出力とかで確認してる?コードとか使ってるセンサがわからんと答えようが無い >>472 こういう奴に限って偉そうにしてるけどクソみたいな間違いをしてる 間違いを認めない 指摘されても謝らない ハードの製にしているけど、ほんとはプログラムが糞何だろうねww 再現する事象ならデバッグ出力ぐらいは確認しろよとは思う。開発環境にバグがある場合もあるけど。古いバージョンのesp8266arduinoでhttpclientのメモリリークのバグに引っかかったときはコード確認しても原因がわからなくて困った。 Rev0とRev1でも大分挙動が違うし 公開されているエラッタだけではない気はするな。 使う機能にもよるが、正直使いにくい。 再現するに必要な最低限の部分だけでもソースを晒したらいいのに それ出来ないのは、推して知るべしだわなぁ 普通にBLEとかのサンプル実装すれば再現するだろうw サンプルでも落ちると言ってるから待機してるんだけど、まだ? ArduinoIDE でのライブラリはうちでもまだ安定利用できてないけど(centralに使う場合) 明らかにハード関係無いところ(notify コールバック関数の登録とか)でも heap corrupt でリセットかかったりするので ESP32 の問題ではないような気がしている、が調査中 そいえば、めっちゃ disconnect くらうので(BLE_client の sampleでは端折られている) ClientCallback 入れて onDisconnect を厳しく監視してないと 切断後のオブジェクトを接続前提の操作しようとしてエラーからのリセット行きが多かった onDisconnect が来るタイミングは毎回違う=毎回挙動が違ってたが、監視入れて、 registerForNotify を呼ばないようにしたらリセットかかるような死に方はなくなった registerForNotify も通ったり通らなかったりなので調べないとという状況 チップRev何でやってますか? Rev0に耐えかねてモジュールだけ載せ変えたんですが、またもRev0を引き当ててしまって^_^ これは落とし穴から這い上がるのが好きな人には たまらない材料かもしれませんね。 もう小休止してNordic蝉を攻めてますが。 こんなところにメモリリークの原因があるとはあまり思えないが BLEAdvertising.cpp BLEAdvertisementData::setName を1100回ぐらい実行するとおかしくなる。 ちなみに独自に関数を追加して m_payload==""; して毎回m_payloadは空にしている。 今は BLEAdvertisementData::addData でName追加して逃げてる。 >>482 それのどれで落ちるの? テスターなら、最短の再現手順を示すもんだろ ArduinoIDE で複数の処理を同時にやろうとしたら Heap corrupt というのはたくさん報告があるけど うちは同時になにもしてないのになぁ……と思っていたが起動直後に時刻合わせに WiFi 使ってたのを放置してたわ WiFi.disconnect(true); したらBLE 切断ラッシュもなくなり目的のものが完成 無駄電波飛ばさせてた俺がアホってことでおさわがせしました 俺はURL貼った奴では無いけど URLのUARTのやつを、対抗側と只管ずっとループバックで送受信してただけで、リセット、フリーズ体験したぞ arduino ideのスケッチ例にあったやつだから、多分URLのUARTのやつ このクラスの石ならArduinoじゃなくて普通にRTOS使ったらアカンの? 俺はURL貼った奴だけど Rev0チップならどれでも激しく再現する。 Gpio でもバグってるとかゴミw Rev1チップはそれなりに動くが、ライブラリに メモリリークがあったり(apiレベルでは今のところ問題は発見してないが)基本apiのコールバックを確認してからつぎのapiに行くように調停しないと安定しない。だからまー今のところそのまんまサンプル動かしても望んだ結果にはならんと思うよ。 それからおんぶに抱っこもここまでだ^_^ Arduino IDE についてるライブラリやサンプルが腐ってるのを >>460 のように言うから反発くらったんじゃないの?っていう >>491 それでも問題ないよ コンパイラも揃ってるしやって出来なくはない ふつうの頭してたらArduino版のライブラリが腐ってるならESP-IDF版で試そうとするもんだと思うけど 凝った使い方する訳でもなく、サンプルが動かないってところで 環境なりライブラリなり石が問題ってわかるものか? つかARDUINO IDEのサンプルが不安定とか初めて知ったぞ でて随分経つのに今でもなのか? 取っ掛かりArduinoの方がやり易いが 結局問題あるとapiまで行くからどっちでも一緒。 サンプルのままではダメだね。 まー生半可動いてるようには見えるけどw IDF版の .c がコンパイルされて .o を経て .a という拡張子なライブラリファイルになってarduino版でリンクされるので 基本的には挙動はIDF版と同じなんだけど、arduinoのライブラリが更新されないという点がarduino版の問題だと思う。 つまり7月から放置されてるのが諸悪の根源って意味ね ただいま、約1時間でWI-FI Clientがフリーズするバグの試験中。 アプリのアクセス周期が100msで、メモリリークが発生していると推測。 楽しいなESP32 Arduino、、、 キターー フリーズ 1時間2分 変な記号羅列が出たのみで、期待していたレジスター表示無し。 client.read()辺りで吹っ飛んでいるようだ。 ------------------------- Client Disconnected. New Client. { "COMMAND": "READ_IN", "VALUE": "" }<EOF>[D][WiFiClient.cpp:452] connected(): Disconnected: RES: 0, ERR: 128 Client Disconnected. New Client. { "COMMAND": "READ_IN", "VALUE": "" }<EOF>[D][WiFiClient.cpp:452] connected(): Disconnected: RES: 0, ERR: 128 Client Disconnected. New Client. --------------------------------------- void loop() { WiFiClient client = server.available(); // listen for incoming clients if (client) { // if you get a client, #ifdef DEBUG Serial.println("New Client."); // print a message out the serial port #endif String currentLine = ""; // make a String to hold incoming data from the client while (client.connected()) { // loop while the client's connected if (client.available()) { // if there's bytes to read from the client, char c = client.read(); // read a byte, then #ifdef DEBUG Serial.write(c); // print it out the serial monitor #endif >>506 秋月から購入のDev0開発キット。 Dev1キットは未購入 ガベージコレクション発生しないようにいたわってやれよ >>508 ん? String currentLineのようにスタックに切るなという事? >>505 19028回ですた。 -------------------------------------- Client Disconnected. New Client. 19027 { "COMMAND": "READ_IN", "VALUE": "" }<EOF>[D][WiFiClient.cpp:452] connected(): Disconnected: RES: 0, ERR: 128 Client Disconnected. New Client. 19028 { "COMMAND": "READ_IN", "VALUE": "" }<EOF>Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0) Core 0 register dump: void loop() { WiFiClient client = server.available(); // listen for incoming clients if (client) { // if you get a client, #ifdef DEBUG Serial.println("New Client."); // print a message out the serial port static long accesscount = 0; Serial.println(++accesscount); #endif てか、Core0 Panicってどうなってんの? 使ってねぇぞ。 xTaskCreatePinnedToCoreは・・・ ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる