Skocz do zawartości

ptakpl

Użytkownicy
  • Zawartość

    9
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O ptakpl

  • Ranga
    2/10
  1. Przyjacielu, po co te nerwy. Wiem co to URL, potrzebuję w chacie mieć realizowaną jedną funkcję, więc myślałem, że tutaj znajdę szybko pomoc skoro to takie trywialne. Czyli tyle ile chcę wywołać getów, tyle muszę mieć różnych begin? I w begin definiuje URL, a get go wywołuje? http.begin("http://192.168.1.188/ledOn"); Serial.print("[HTTP] GET...\n"); int httpCode = http.GET();
  2. /** BasicHTTPClient.ino Created on: 24.05.2015 */ #include <Arduino.h> #include <ESP8266WiFi.h> #include <ESP8266WiFiMulti.h> #include <ESP8266HTTPClient.h> #include <WiFiClient.h> ESP8266WiFiMulti WiFiMulti; void setup() { Serial.begin(115200); // Serial.setDebugOutput(true); Serial.println(); Serial.println(); Serial.println(); for (uint8_t t = 4; t > 0; t--) { Serial.printf("[SETUP] WAIT %d...\n", t); Serial.flush(); delay(1000); } WiFi.mode(WIFI_STA); WiFiMulti.addAP("SSID", "PASSWORD"); } void loop() { // wait for WiFi connection if ((WiFiMulti.run() == WL_CONNECTED)) { WiFiClient client; HTTPClient http; Serial.print("[HTTP] begin...\n"); if (http.begin(client, "http://jigsaw.w3.org/HTTP/connection.html")) { // HTTP Serial.print("[HTTP] GET...\n"); // start connection and send HTTP header int httpCode = http.GET(); // httpCode will be negative on error if (httpCode > 0) { // HTTP header has been send and Server response header has been handled Serial.printf("[HTTP] GET... code: %d\n", httpCode); // file found at server if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) { String payload = http.getString(); Serial.println(payload); } } else { Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str()); } http.end(); } else { Serial.printf("[HTTP} Unable to connect\n"); } } delay(10000); } Żeby nie było niejasności, mówimy o tym kodzie? I która komenda wywoła mi konkretny adres IP? Mam nadzieję, że nie begin? Chyba, że w begin ustawie konkretny adres ip 192.168.1.188, a gdzieś niżej w get dodam /ledOn i /ledOff?
  3. nie mam problemu z połączeniem się z routerem, tą część mam opanowaną. Nie mam problemu z wejściem na adres ESP i wywołaniem komend http://adresIP/ledOn i http://adresIP/ledOff. Nie wiem tylko jak z jednego ESP wywołać reakcję na drugim bez wchodzenia w przeglądarkę, tylko wykorzystując get.
  4. No przykłady mam, ale bez get i wywołania jakiś adresów. post jest, begin jest, ale get nie widze...
  5. Ja się nie znam wcale więc pytam. Z bibliotek, które przeglądałem nie mogę znaleźć po prostu funkcji get... a jak użyję client.begin to tylko realizuje to i nic więcej. Rozumiem, że na necie lata sporo wersji, ale pytanie, czy ktoś może mi podrzucić bibliotekę, która jest sprawdzona i ktoś realizował tym podobne funkcje? Byłbym wdzięczny. Nie potrzebuję tego robić bez zwłoki po UDP, więc przyjmijmy, że będzie po TCP - tylko jak...
  6. Dziękuję za wypowiedzi, pytanie, czy do opisanej przez Was metody w dalszym ciągu mogę użyć arduino? Jeśli tak, to z której biblioteki skorzystać? Nie upieram się też, żeby to robić po sieci, ale mam kilka wemosów, esp, więc szkoda by było niewykorzystać wemosa i wejść cyfrowych w połączeniu z centralą alarmową satel. Podpowiecie jeszcze coś?
  7. nikt nic? podrzuci ktoś bibliotekę, gdzie mogę wykorzystać kilka razy GET?
  8. Cześć, czy ktoś mógłby mi podpowiedzieć, jakiej komendy użyć, aby wysyłać polecenia z jednego ESP na drugie? Mam zaprogramowane ESP8266 przez adruino za pomocą Konwerter USB - UART ESP01, w kodzie stały adres IP, żeby identyfikować zaprogramowane ESP bez problemu. Do każdego z nich wchodzę wpisując adres IP przeglądarce i odpowiednio dodając za adresem /RELAYON lub RELAYOFF załączam lub wyłączam przekaźnik. Kolejnym krokiem chciałbym, aby było sprawdzanie stanów na jednym ESP (wysoki,niski) i wysyłanie reakcji na inne ESP wykorzystując IP np. z ESP o adresie 192.168.1.123, który czyta stany i czeka na stan wysoki wysłać komendę na 192.168.1.200/RELAYON. Czy ktoś mógłby mi podpowiedzieć co nieco? Cały kod: #include <ESP8266WiFi.h> const char* ssid = "SSID";//type your ssid const char* password = "PASSWORD";//type your password int relayPin = 2; // GPIO2 of ESP8266 WiFiServer ESPserver(80);//Service Port void setup() { Serial.begin(115200); pinMode(relayPin, OUTPUT); digitalWrite(relayPin, HIGH); Serial.println(); Serial.println(); Serial.print("Connecting to: "); Serial.println(ssid); WiFi.begin(ssid, password); delay(5000); /* The following four line of the code will assign a Static IP Address to the ESP Module. If you do not want this, comment out the following four lines. */ IPAddress ip(192,168,1,254); IPAddress gateway(192,168,1,1); IPAddress subnet(255,255,255,0); WiFi.config(ip, gateway, subnet); delay(5000); while (WiFi.status() != WL_CONNECTED) { delay(100); Serial.print("*"); } Serial.println(""); Serial.println("WiFi connected"); // Start the server ESPserver.begin(); Serial.println("Server started"); // Print the IP address Serial.print("The URL to control ESP8266: "); Serial.print("http://"); Serial.print(WiFi.localIP()); } void loop() { // Check if a client has connected WiFiClient client = ESPserver.available(); if (!client) { return; } // Wait until the client sends some data Serial.println("New Client"); while(!client.available()) { delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); // Match the request int value = LOW; if (request.indexOf("/RELAYON") != -1) { Serial.println("LAMP is ON"); digitalWrite(relayPin, LOW); value = LOW; } if (request.indexOf("/RELAYOFF") != -1) { Serial.println("LAMP is OFF"); digitalWrite(relayPin, HIGH); value = HIGH; } // Return the response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // IMPORTANT client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.print("Status of the Lamp: "); if(value == LOW) { client.print("ON"); } else { client.print("OFF"); } delay(1); //client.stop(); Serial.println("Client disconnected"); Serial.println(""); }
×
×
  • Utwórz nowe...