123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
-
- #include <ESP8266WiFi.h>
- #include <WiFiClient.h>
- #include <ESP8266WebServer.h>
- #include "config.h" // if this file doesn't exist, copy config.h.example to it and edit
-
- IPAddress local_IP(192, 168, 115, 23);
- IPAddress gateway(192, 168, 115, 1); // bogus
- IPAddress subnet(255, 255, 255, 0);
-
-
- /* Set these to your desired credentials. */
- const char *ssid = APSSID;
- const char *password = APPSK;
-
- ESP8266WebServer server(80);
-
- const int trigPin = 12;
- const int echoPin = 13;
-
-
- unsigned long measureDistance() {
- digitalWrite(trigPin, LOW);
- delayMicroseconds(2);
- digitalWrite(trigPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(trigPin, LOW);
- unsigned long duration = pulseIn(echoPin, HIGH);
- return (duration * 343) / 2000; // speed of sound is 0.343 mm/microsec (halve because 2 way)
- }
-
- void handleRoot() {
- struct station_info *stat_info;
- stat_info = wifi_softap_get_station_info();
- uint8_t client_count = wifi_softap_get_station_num();
- u32_t address;
- String str = "Number of clients = ";
- str += String(client_count);
- str += "<br/>\r\nList of clients : <br/>\r\n";
- int i = 1;
- while (stat_info != NULL) {
- str += "Station #";
- str += String(i);
- str += " : ";
- str += String(stat_info->bssid[0], HEX);
- str += ":";
- str += String(stat_info->bssid[1], HEX);
- str += ":";
- str += String(stat_info->bssid[2], HEX);
- str += ":";
- str += String(stat_info->bssid[3], HEX);
- str += ":";
- str += String(stat_info->bssid[4], HEX);
- str += ":";
- str += String(stat_info->bssid[5], HEX);
- str += " ";
- address = (&stat_info->ip)->addr;
- str += ((unsigned char*)&address)[0];
- str += ".";
- str += ((unsigned char*)&address)[1];
- str += ".";
- str += ((unsigned char*)&address)[2];
- str += ".";
- str += ((unsigned char*)&address)[3];
- str += "<br/>\r\n";
- i++;
- stat_info = STAILQ_NEXT(stat_info, next);
- }
- str += "<a target=\"_blank\" href=\"d\">Distance</a><br/>\r\n";
- server.send(200, "text/html", str);
- }
-
- void handleDistance() {
- unsigned long distance = measureDistance();
- // Serial.println(distance);
- String str = "{\"distance\":" + String(distance, DEC) + "}";
- server.send(200, "application/json", str);
- }
-
- void setup() {
- pinMode(trigPin, OUTPUT);
- pinMode(echoPin, INPUT);
- delay(1000);
- Serial.begin(115200);
- Serial.println();
- Serial.print("Configuring access point...");
- /* You can remove the password parameter if you want the AP to be open. */
- Serial.print("Setting soft-AP configuration ... ");
- Serial.println(WiFi.softAPConfig(local_IP, gateway, subnet) ? "Ready" : "Failed!");
-
- WiFi.softAP(ssid, password);
-
- IPAddress myIP = WiFi.softAPIP();
- Serial.print("AP IP address: ");
- Serial.println(myIP);
- server.on("/", handleRoot);
- server.on("/d", handleDistance);
- server.begin();
- Serial.println("HTTP server started");
- }
-
- void loop() {
- server.handleClient();
- }
|