質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

2回答

871閲覧

Wifiモジュールを使いたいがうまく動作しない(Arduino,PHP)

yamase

総合スコア12

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2018/12/27 06:06

前提・実現したいこと

http://nn-hokuson.hatenablog.com/entry/2017/04/09/091148
ESP-WROOM-02(ESP8266)を使って無線通信しようとしています
上記のURLと全く一緒なことをしようとしています

発生している問題・エラーメッセージ

ESP8266の速度を9600にしたりライブラリを入れたりなど設定はしっかりできていると思います
しかしデータが送信されず、テキストファイルに書き加えられず、ブラウザも更新されません

該当のソースコード

Arduino

1#include "ESP8266.h" 2#include <SoftwareSerial.h> 3 4#define SSID "AirMacTimeCapsuleKO" 5#define PASSWORD "basestation" 6#define HOST_NAME "localhost:8080" 7#define FILE_NAME "ESP.php" 8 9int n = 0; 10 11SoftwareSerial mySerial(2, 3); //RX, TX 12ESP8266 wifi(mySerial); 13 14/** 15 * 初期設定 16 */ 17void setup(void) 18{ 19 Serial.begin(9600); 20 21 if (wifi.setOprToStationSoftAP()) { 22 Serial.println("to station ok"); 23 } else { 24 Serial.println("to station error"); 25 } 26 27 if (wifi.joinAP(SSID, PASSWORD)) { 28 Serial.println("connect success"); 29 } else { 30 Serial.println("connect error"); 31 } 32 33 if (wifi.disableMUX()) { 34 Serial.println("disable mux success"); 35 } else { 36 Serial.println("disable mux error"); 37 } 38} 39 40void loop(void) 41{ 42 n++; 43 44 // TCPで接続 45 wifi.createTCP(HOST_NAME, 8080); 46 47 // サーバーへ渡す情報 48 char sendStr[128]; 49 sprintf(sendStr, "GET /%s?data=%d HTTP/1.0\r\nHost: %s\r\nUser-Agent: arduino\r\n\r\n", FILE_NAME, n, HOST_NAME); 50 wifi.send((const uint8_t*)sendStr, strlen(sendStr)); 51 52 Serial.println(n); 53 54 delay(100); 55 }

PHP

1<?php 2$data = $_GET['data']; 3$filename = "data.txt"; 4if($data=='a'){ 5 $fp = fopen("data.txt", "r"); 6 $contents = fread($fp, filesize($filename)); 7 print($contents); 8 fclose($fp); 9} 10else 11{ 12 $fp = fopen("data.txt", 'w'); 13 fwrite($fp, $data); 14 fclose($fp); 15} 16?> 17

補足情報(FW/ツールのバージョンなど)

サーバーはPC上でXamppでApacheを用いてサーバーを立てています

ホスト名とポート番号は
ServerName localhost:8080
Listen 8080

ディレクトリのパスは
DocumentRoot "C:/xampp/htdocs/changeroot"
<Directory "C:/xampp/htdocs/changeroot">

というように設定ファイルは書き換えました

以下Arduinoのシリアルモニタの画像です
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

まず、サーバのホスト名はlocalhostではないです
サーバ側のIPアドレスを調べてそれを指定しましょう

ましかし、こういう工作はハードウエア的なミス(早い話が配線ミス)の可能性も高いため、コードや設定だけをいくらいじってもだめな場合もあります。
ハードウエア的なスカを見つけるためには、それなりの知識と、テスターやオシロなどの測定器を揃える必要があります

投稿2018/12/27 06:23

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamase

2018/12/27 06:30

最初はIPアドレスにしてたんですけどそのままでよかったんですね! ハードウェア的な問題かもですよね... とりあえずテスターとオシロは揃えておきます
y_waiwai

2018/12/27 06:39

HOST_NAMEの後ろのポート番号もいらないんじゃないかと
yamase

2018/12/27 06:41

ポート番号無しでIPアドレスに書き換えました!
guest

0

#define HOST_NAME "localhost:8080" // サーバーのPCのIPアドレス、ポート抜き

投稿2018/12/27 06:19

ozwk

総合スコア13512

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamase

2018/12/27 06:29

そこはIPアドレスでよかったんですね... 最初はIPアドレスにしてたんですけどうまくいかなかったんで変更してました しかしIPアドレスの場合でもうまくいかないんですよね... ハードウェア的な問題になるんですかね...
ozwk

2018/12/27 06:41 編集

wifi.~~系メソッドが正常終了しているんでESP8266は生きてそうですけどね。 コケているのが受け取る側なのか送る側なのか調べるため サーバー側でパケットキャプチャして通信来ているか確認してみてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問