| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- #include <ArduinoJson.h>
- #include <AsyncEventSource.h>
- #include <AsyncJson.h>
- #include <AsyncWebSocket.h>
- #include <AsyncWebSynchronization.h>
- #include <ESPAsyncWebServer.h>
- #include <StringArray.h>
- #include <WebAuthentication.h>
- #include <WebHandlerImpl.h>
- #include <WebResponseImpl.h>
- #include <AsyncEventSource.h>
- #include <AsyncJson.h>
- #include <AsyncWebSocket.h>
- #include <AsyncWebSynchronization.h>
- #include <ESPAsyncWebServer.h>
- #include <StringArray.h>
- #include <WebAuthentication.h>
- #include <WebHandlerImpl.h>
- #include <WebResponseImpl.h>
- #include <ArduinoWiFiServer.h>
- #include <BearSSLHelpers.h>
- #include <CertStoreBearSSL.h>
- #include <ESP8266WiFi.h>
- #include <ESP8266WiFiAP.h>
- #include <ESP8266WiFiGeneric.h>
- #include <ESP8266WiFiGratuitous.h>
- #include <ESP8266WiFiMulti.h>
- #include <ESP8266WiFiScan.h>
- #include <ESP8266WiFiSTA.h>
- #include <ESP8266WiFiType.h>
- #include <WiFiClient.h>
- #include <WiFiClientSecure.h>
- #include <WiFiClientSecureBearSSL.h>
- #include <WiFiServer.h>
- #include <WiFiServerSecure.h>
- #include <WiFiServerSecureBearSSL.h>
- #include <WiFiUdp.h>
- static const uint8_t D1 = 5;
- static const uint8_t D2 = 4;
- static const char* ssid = "MINOLTA_REMOTE_CONTROL";
- static const char* password = "12345678";
- bool isFocusPressed = false;
- IPAddress local_IP(192,168,1,200);
- IPAddress gateway(192,168,1,1);
- IPAddress subnet(255,255,255,0);
- AsyncWebServer server(80);
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(115200);
- pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output
- pinMode(D1, OUTPUT);
- pinMode(D2, OUTPUT);
- digitalWrite(LED_BUILTIN, LOW);
- digitalWrite(D1, LOW);
- digitalWrite(D2, LOW);
- if (!WiFi.softAPConfig (local_IP, gateway, subnet))
- {
- Serial.println("Failed to config IP");
- }
- WiFi.softAP(ssid, password);
- Serial.println(WiFi.softAPIP());
- Serial.println("Waiting for connect");
- /*while(WiFi.status() != WL_CONNECTED)
- {
- digitalWrite(LED_BUILTIN, HIGH);
- delay(500);
- Serial.print(".");
- Serial.print(WiFi.status());
- digitalWrite(LED_BUILTIN, LOW);
- }*/
- Serial.println("Client connected");
- server.on("/api/focus",HTTP_GET, [](AsyncWebServerRequest *request)
- {
- Serial.println("api/focus");
- digitalWrite(LED_BUILTIN, HIGH);
- halfPress();
- digitalWrite(LED_BUILTIN, LOW);
- request->send(200,"application/json","{\"result\":\"true\"}");
- });
- server.on("/api/takePhoto",HTTP_GET, [](AsyncWebServerRequest *request)
- {
- Serial.println("api/takePhoto");
- digitalWrite(LED_BUILTIN, HIGH);
- if (request->hasParam("msec"))
- {
- int ms = request->getParam("msec")->value().toInt();
- }
- else
- {
- pressFullWithDelay(1000);
- }
- digitalWrite(LED_BUILTIN, LOW);
- request->send(200,"application/json","{\"result\":\"true\"}");
- });
- server.on("/api/reset",HTTP_GET, [](AsyncWebServerRequest *request)
- {
- Serial.println("api/reset");
- digitalWrite(LED_BUILTIN, HIGH);
- unPress();
- digitalWrite(LED_BUILTIN, LOW);
- request->send(200,"application/json","{\"result\":\"true\"}");
- });
- server.on("/api/multiple",HTTP_GET, [](AsyncWebServerRequest *request)
- {
- Serial.println("api/multiple");
- digitalWrite(LED_BUILTIN, HIGH);
- if (request->hasParam("count") && request->hasParam("delay"))
- {
- int ms = 1000;
- int count = request->getParam("count")->value().toInt();
- int delayMs = request->getParam("delay")->value().toInt();
- if (request->hasParam("msec"))
- {
- ms = request->getParam("msec")->value().toInt();
- }
- if (!isFocusPressed)
- {
- halfPress();
- delay(1000);
- }
- while (count>0)
- {
- fullPress();
- delay(ms);
- digitalWrite(D2, LOW);
- count--;
- delay(delayMs);
- }
- }
- digitalWrite(LED_BUILTIN, LOW);
- request->send(200,"application/json","{\"result\":\"true\"}");
- });
- server.on("/get", HTTP_GET, [](AsyncWebServerRequest *request){ request->send(200, "text/plain", "Is working"); });
- server.begin();
- }
- void halfPress()
- {
- digitalWrite(D1, HIGH);
- isFocusPressed = true;
- }
- void fullPress()
- {
- if (!isFocusPressed)
- {
- halfPress();
- delay(1000);
- }
-
- digitalWrite(D2, HIGH);
- }
- void pressFullWithDelay(int ms)
- {
- fullPress();
- delay(ms);
- unPress();
- }
- void unPress()
- {
- digitalWrite(D2, LOW);
- digitalWrite(D1, LOW);
- isFocusPressed = false;
- }
- void multipleShoot(int ms, int count, int delayMs)
- {
- if (!isFocusPressed)
- {
- halfPress();
- delay(1000);
- }
- while (count>0)
- {
- fullPress();
- delay(ms);
- digitalWrite(D2, LOW);
- count--;
- delay(delayMs);
- }
- }
- void loop() {
- // put your main code here, to run repeatedly:
- }
|