• Система автоматизации с открытым исходным кодом на базе 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 ни без.
 
Сверху Снизу