• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Общие вопросы по Arduino IDE для ESP8266

qwertyhp

New member
Огромное спасибо за подсказку и скриншот - помогло!
Но теперь появилась следующая непонятка: скачал скетч к видео на YouTube по ссылке:
В скетче есть такая строка:
Код:
WiFi.begin(ssid, password);
Что означают переменные - понимаю: но откуда взять конкретные их значения для моей WeMos D1 mini (или как их задать)? Платка новая, только обживаю...
 

qwertyhp

New member
Оригинал кода к видео выглядит так (он же прикреплен к сообщению):
Код:
//http://www.esp8266learning.com/wemos-webserver-example.php

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>

const char* ssid = "name of your wifi network";             //!!!!!!!!!!!!!!!!!!!!! modify this
const char* password = "passwoord of your wifi network";                //!!!!!!!!!!!!!!!!!!!!!modify this
int ledPin = D4;          //connect led pin to d4 and ground
WiFiServer server(80);
void setup() {
  Serial.begin(115200);
  delay(10);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  // Start the server
  server.begin();
  Serial.println("Server started");
  // Print the IP address
  Serial.print("Use this URL : ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
}

void loop() {

  
  
  // Check if a client has connected
  WiFiClient client = server.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("/LED=ON") != -1) {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  }
  if (request.indexOf("/LED=OFF") != -1){
    digitalWrite(ledPin, LOW);
    value = LOW;
  }
  // Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
  client.print("Led pin is now: ");
  if(value == HIGH) {
    client.print("On"); 
  } else {
    client.print("Off");
  }
  client.println("<br><br>");
  client.println("Click <a href=\"/LED=ON\">here</a> turn the LED on pin 4 ON<br>");
  client.println("Click <a href=\"/LED=OFF\">here</a> turn the LED on pin 4 OFF<br>");
  client.println("</html>");
  delay(1);
  Serial.println("Client disconnected");
  Serial.println("");
}
 

Вложения

krepton85

Member
@qwertyhp, 7 и 8 строка заполните данные от вашего роутера, в ковычках то что сотрите, и запишите название сети и пароль в кавычках. Больше ничего не трогайте.
 

qwertyhp

New member
Я вот о чем. В строках
Код:
const char* ssid = "name of your wifi network";             //!!!!!!!!!!!!!!!!!!!!! modify this
const char* password = "passwoord of your wifi network";                //!!!!!!!!!!!!!!!!!!!!!modify this
задается логин/пароль.
Но уже в void setup() идет их проверка:
Код:
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
Если верить видео, то при вызове монитора последовательного порта в нем должен отображаться IP-адрес модуля WeMos. У меня же (пароль/логин "admin/admin)" по экрану ползут точечки. Закрываю монитор, потом открываю - а они ползут. Значит, пароль/логин проверку не проходит.
Потому-то и возник вопрос: откуда взять или как задать эти
const char* ssid = "name of your wifi network";
 

qwertyhp

New member
@krepton85, у меня нет роутера, на компе проводной Домашний интернет БиЛайн, к компу по USB подключена WeMos D1 mini, Arduino IDE 1.6.5.
Вставил логин/пароль от Интернета - снова в мониторе последовательного порта ползут точечки...
 

CodeNameHawk

Moderator
Команда форума
у меня нет роутера,
Тогда договорись с соседом, ясное дело если у него есть роутер, к нему подключишься.

Вторая возможность создать на одной есп дочку доступа (AP) и второй (есп) в режиме станции (STA) подключится к ней.
 

Сергей_Ф

Moderator
Команда форума
@qwertyhp если роутера нет, то никуда esp подключиться не сможет. У неё есть только WiFi. Что Вы сделать то хотите?
 

qwertyhp

New member
Я не понял:
Код:
const char* ssid = "name of your wifi network";             // modify this
const char* password = "passwoord of your wifi network";                //modify this
1. - это логин/пароль от WeMos D1, в которую я залил данный скетч, -
2. - или же это логин/пароль от той сети, к которой WeMos D1 собирается подключиться?
Я сегодня первый день WeMos мучаю, для меня нет очевидных ответов...
...Сейчас залил (из "Образцов") WiFiAccessPoint. Как и было указано в тексте скетча, в мониторе показал IP http://192.168.4.1
При попытке зайти по этому адресу из броузера появилось:
"
Время ожидания соединения истекло
Время ожидания ответа от сервера 192.168.4.1 истекло."
 

Сергей_Ф

Moderator
Команда форума
@qwertyhp как Вы к нему подключиться хотите? С компа, который в проводной сети Билайна? Не получится. Только по WiFi можно, например с ноута или со смартфона, предварительно подключившись к WiFi сети которую esp создала.
Все будет намного проще, если Вы купите какой нибудь роутер с WiFi. Намного проще.
Сейчас сеть вашего компа никак не связана с сетью esp. Роутер их объединит в одну домашнюю сеть.
 

qwertyhp

New member
Итак. Нашел смартфоном незапароленное WiFi-соединение, вставил его имя в приведенный выше (под видео) код, вместо пароля "", получил вот что:
Код:
Connecting to FON_FREE_ssid
..................................
WiFi connected
Server started
Use this URL : http://192.ххх.ххх.хх
Однако при попытке зайти броузером с компьютера (FireFox 35.0) по предложенному URL читаю:
Код:
"Время ожидания соединения истекло
Время ожидания ответа от сервера 192.ххх.ххх.хх истекло."
Перезагружал модуль - все бестолку.
Прогресс в освоении ESP есть, а толку - нет. :)
 
Последнее редактирование:

qwertyhp

New member
На видео выше (код в тексте и архиве) пользователь заливает скетч в WeMos, описанным способом получает IP-адрес WeMos, вставляет его в строку браузера - и заходит на страничку, генерируемую его WeMos'ом. На страничке он нажимает кнопочки, удаленно заставляя диод на WeMos зажигаться/гаснуть.
Не пойму, почему у него получается достучаться до модуля, а у меня нет. По моему разумению, если WeMos имеет IP-адрес, то нет разницы, как к нему подключаться - с проводного интернета или по Wi-Fi.
Возможно, я что-то упускаю из виду - но что? Если кто-то решил аналогичную задачу - не сочтете ли возможным поделиться рабочим кодом/архивом?
 

Victor

Administrator
Команда форума
нет разницы, как к нему подключаться - с проводного интернета или по Wi-Fi
разница есть. Вам нужно понять, что у любой ESP8266 есть только один сетевой интерфейс - WiFi. По вашему USB кабелю TCP/IP пакеты передать в WeMOS невозможно в принципе - это подключение только для прошивки и отладки, поэтому чтобы достучаться до ESP8266 ваш компьютер с браузером и ESP8266 должны находится в одном сегменте Ethernet сети (т.е. должны быть подключены к одному роутеру). Вы можете подключить ESP8266 к любой открытой WiFi сети и с телефона (подключенного к этой же WiFi сети) браузером зайти на ESP8266. Однако этот способ не гарантирует подключение, т.к. многие современные маршрутизаторы имеет настройку для изолирования WiFi клиентов друг от друга, т.е. в интернет они выйти могут, а между собой соединиться нет. Поэтому пробуйте подключаться к соседям - может вам повезет и там изолирование выключено.
 

Сергей_Ф

Moderator
Команда форума
По моему разумению, если WeMos имеет IP-адрес, то нет разницы, как к нему подключаться - с проводного интернета или по Wi-Fi.
Возможно, я что-то упускаю из виду - но что?
Нет разницы, когда они в одной сети. А у Вас в разных. Что бы сделать одну сеть, нужен роутер. Всё, извините, я больше не могу объяснять азы. Это в школу.
 

Stew890

New member
Код:
#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "YourAuthToken";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";

// Hardware Serial on Mega, Leonardo, Micro...
//#define EspSerial Serial1

// or Software Serial on Uno, Nano...
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(2, 3); // RX, TX

// Your ESP8266 baud rate:
#define ESP8266_BAUD 115200

ESP8266 wifi(&EspSerial);

void setup()
{
  // Set console baud rate
  Serial.begin(9600);
  delay(10);
  // Set ESP8266 baud rate
  EspSerial.begin(ESP8266_BAUD);
  delay(10);

  Blynk.begin(auth, wifi, ssid, pass);
}

void loop()
{
  Blynk.run();
}
Здравствуйте! Есть такой вопрос : пользуюсь я библиотекой blynk для связи с мобилкой модуля (esp-01) , тут есть пример кода в котором модуль как шилд для ардуинки, этот скетч заливать на ардуинку, и все? Или на модуль тоже надо? Если на модуль не надо , то надо чтобы он был пустой? Без прошивки?
 

Victor

Administrator
Команда форума
Или на модуль тоже надо? Если на модуль не надо , то надо чтобы он был пустой? Без прошивки?
Скорее всего, там подразумевается, что в ESP8266 залита AT-based прошивка. В любом случае, ESP8266 вообще без прошивки (можно залить специальную пустую прошивку) работать точно не будет ни с Arduino ни без.
 
Сверху Снизу