ESP8266(NodeMCU)からGoogle Apps Script(GAS)へHTTP通信を行う際に「シリアルモニタで-1が返る」「接続に失敗する」といった問題は、初学者だけでなく開発経験者でもよく遭遇する典型的なトラブルです。本記事では、GAS連携ができているにもかかわらずHTTP接続が失敗する原因と、その実践的な対処方法について整理します。
HTTPエラー-1の意味とは
ESP8266で表示される「-1」は、多くの場合HTTPリクエストがサーバーに到達する前に失敗している状態を示します。
つまり、GAS側の問題ではなく、ESP8266側のネットワーク接続・リクエスト形式・証明書・URL設定などのどこかで失敗している可能性が高いです。
まずは「通信以前の段階で止まっている」という認識が重要です。
GAS接続でよくある失敗原因
ESP8266とGASの通信で特に多い原因は以下の通りです。
①httpsとhttpの混同(ESP8266はHTTPSで失敗しやすい)
②GASのURLが間違っている(/execではなく/devなど)
③Webアプリの公開設定ミス(全員アクセス可能になっていない)
④Wi-Fi未接続または不安定な状態
GAS側の設定確認ポイント
GASをESP8266から呼び出す場合、必ず「ウェブアプリとしてデプロイ」が必要です。
アクセス権は「全員(匿名含む)」に設定しないとESPからアクセスできません。
また、最新のデプロイURL(/exec)を使用しているかも必ず確認してください。
ESP8266側の実装で確認すべき点
ESP8266ではWiFiClientやHTTPClientを使用しますが、URLや接続方法のミスが非常に多いです。
特に「http.begin()のURLミス」「http.POSTとGETの不一致」に注意が必要です。
また、Wi-Fi接続後に接続完了を待たずにリクエストを送ると失敗することがあります。
HTTPS利用時の注意点
GASのURLは基本的にHTTPSですが、ESP8266は証明書検証で失敗しやすい特徴があります。
そのため、開発段階ではWiFiClientSecureの証明書検証を無効化する方法が使われることがあります。
ただしセキュリティ的には推奨されないため、用途に応じて慎重に判断する必要があります。
動作確認のための切り分け方法
問題を切り分けるために、まずはブラウザでGASのURLに直接アクセスしてみます。
正常にレスポンスが返る場合はGAS側は正常であり、ESP8266側の問題に絞れます。
次にシンプルなHTTPテストサーバーにアクセスしてESPの通信自体を確認する方法も有効です。
まとめ
ESP8266でHTTPエラー-1が出る場合、多くはGASではなく通信前段階の問題です。
URL、公開設定、HTTPS対応、Wi-Fi接続状態を順に確認することで原因を特定できます。
特にGASのデプロイ設定とESP側のHTTP実装の不一致が最も多い原因となるため、そこを重点的に見直すことが重要です。


コメント