Подключение esp8266 к wi-fi
Не нашел информацию по этому поводу, возможно ли подключить esp8266 к wifi сети с аутентификацией через html страницу( в ней вводится свой пароль и логин). Если да, то как это реализовать.
Дубликаты не найдены
если очень вкратце то с esp надо отправлять http запросы с паролем и логином на страницу с формой. гуглить примерно так «отправка http запросы arduino»
Если чуть подробнее, @deaol:
1. Подключаемся с ПК с браузером хром или лиса к этой точке. Браузером открываем режим разработчика через F12. Открываем вкладку «Сеть».
2. Заходим на страничку авторизации точки. Авторизуемся. Смотрим что браузер при этом отправляет на сервер — GET/POST запросы, cookie, URL. Записываем всё и запоминаем.
3. Очищаем кеш, повторяем. Смотрим не изменилось ли чего.
Без этого дальше нефиг делать. Это самое главное — проанализировать какие параметры и как передаются.
Если тут уже не понятно — то дальше продолжать смысла нет. Если тут получилось понять и разобрать что и как надо передать, и повторить например с ПК через curl — то дальше пишем простой HTTP(S) client для ESP, который повторяет всё тоже самое.
Ну, вам по сути надо будет просто отправить пост или гет запрос с логином паролем.
На это способен даже нано ардуино, а тут целых 256 кб памяти 😀
Другой вопрос, если странички и пароли будут отличаться, но это уже дальнейшее развитие темы.
Спасибо за информацию!
логин админ пароль админ. Хе-хе.
Оперативки у этого чуда едва-едва кот наплакал. Сервер со всеми стеками поднять может и хватит, а вот страница будет только со вводом пароля. На вторую страницу скорее всего уже ресурсов не останется.
Да вот, читаю. 256 кб оперативки и внешняя spi флешка для программ. tcp/ip килобайт 12 отъедает в самом-самом лёгком случае. Но это не wi-fi, с ним поболее будет. Простейшая файловая система + сами файлы, какая-никакая операционка (пусть даже та freertos) да непосредственно пользовательские функции по управлению чем-либо.
Повторюсь, хватить может, но на всего ничего. Смысл такой девайс насиловать веб-мордой?
плохо читаете. недавно постили полноценную вебморду на esp в этом сообществе. больше того, на ардуине с более скромными ресурсами можно поднять веб сервер.
Дело не в количестве ядер, а в количестве сокетов и процессов — сервер делают fork(), новый процесс отдаёт данные клиенту до закрытия сокета, материнский процесс продолжает слушать. Но это всё требует прилично оперативки.
Вы создаёте устройство на базе esp8266 с большим экраном на котором будет отображаться браузер в котором нужно будет вводить логин/пароль для работы esp8266 через различные wifi сети?
С трудом представляю себе задачу которую может выполнять подобное устройство 🙂
Просто любопытно, что за проект такой.
Если я правильно понял, то речь идет о WiFi сети с авторизацией. То есть после подключения к сети у тебя на компе отображается форма ввода дополнительных данных. Например такое можно встретить в публичных точках доступа, когда тебя просят ввести ключ из смс или что-то в этом роде.
Существует wi-fi сеть с большим количеством точек доступа. Идея такая, подключить esp к wi-fi, а после по http запросу esp отправляет на сторонний сервер mac-адрес точки к которой подключен.
А обязательно надо по http и регистрироваться? Там уже есть какое-то ПО? Вы под это подстроиться пытаетесь?
У меня просто UDP пакеты с телеметрией кидает на домашний сервер.
Можно поднять сервер на есп с формой ввода логина и пароля, и их уже использовать при подключении
Как поднятие HTTP сервера на ESP, решит проблему с авторизацией? Учитавая, что для отправки данных формы используется HTTP клиент.
Wi-Fi энергомонитор на PZEM-004t и ESP-12F
Доброго времени суток!
Давно хотел сделать измерение потребления электричества в квартире. Подумывал о разных приспособах, но все они как-то не вызывали доверия.
Датчики вроде ACS712 как-то не вызывали доверия (уж слишком хлипкими выглядели), SCT-013-000 казались громоздкими.
И совершенно случайно мне попалась на глаза замечательная вещь — PZEM-004T:
(Кстати, есть версия с индикацией, подробнее обо всём на буржуйском сайте ).
Возможности модуля (подробнее можно посмотреть в даташите ):
Измеряемое напряжение: 60 — 280 В переменки;
Ток: до 100 А / 22 кВт;
По запросу может выдавать значение напряжения (В), тока (А), активную мощность (Вт), потребленную энергию (Вт*час). Еще можно выставлять сигнализацию на определенную мощность (в кВт), но, похоже, это касается только разновидности с экраном.
Киловатт-часы хранятся до 99 999 Вт*ч, потом идёт сброс в 0.
Есть кнопка сброса значения Вт*ч, ее нужно подержать 5 сек. В этот момент модуль не отвечает по TTL.
Схема подключения проста:
Для получения данных нужно выставить адрес командой в порт «B4 C0 A8 01 01 00 1E», где B4 — собственно команда, C0 A8 01 01 это адрес 192.168.1.1, 00 просто плейсхолдер (используется только при задании значения мощности сигнализации), Е1 — контрольная сумма.
Для получения значения напряжения нужно отправить команду «B0 C0 A8 01 01 00 1A», где В1 — команда, потом опять адрес и контрольная сумма.
Нам придет ответ вида R = A0 00 E6 02 00 00 88, где А0 — метка ответа, Е6 — старший разряд (230 Вольт), 02 — младший (2 Вольта), 88 — контрольная сумма. Напряжение тут R[2] + R[3] = 232 В.
Подробнее в даташите.
Использовал вот эту библиотеку.
Добавляем энергомер в скетч:
PZEM_004T pzem(10,11); // для общения используется SoftwareSerial, т.е. в случае ESP-12F можно использовать пины 0-5 и 12-15
while(!pzem.setAddress(192,168,1,1)); // инициализируем. С любым адресом, лишь бы они отличались, если PZEM-ок несколько.
float V = pzem.getVoltage(); //меряем напряжение
if (V > 0) Serial.println(«V = » + (String)V + » Volts»); // значение «-1» это ошибка получения данных
TTL-логика у PZEM-004T 5 В, вполне можно спалить порт ESP-шки, поэтому я, не выпендриваясь, сделал делитель напряжений на резисторах (рассчитать можно здесь):
Кстати, у меня PZEM +5В не давал, пришлось использовать отдельный БП на 5 В (для PZEM) и понижать до 3.3 В (для ESP) с помощью AMS -1117-3.3 и пары кондёров.
Для удобства решил еще добавить OLED-дисплей SSD1306 разрешением 128 х 64 с I2C:
Если ESP его не видит, попробуйте поменять местами SDA и SCL или прогнать I2C device scanner, иногда заявленный адрес не соответствует фактическому.
Умеет даже в скролл и прогрессбар.
Команды, в принципе, в комментариях не нуждаются
Шрифт любого размера можно сделать тут и добавить в «. \Arduino\libraries\esp8266-oled-ssd1306-master\src\OLEDDisplayFonts.h»
Лично у меня шрифт 50 размера для удобства чтения издалека.
На экран выводится потребление в Вт (999) или в кВт (1.8к), в зависимости от текущей нагрузки.
Чтобы не «гуляли» ноги, заодно приделал термометр Dallas DS18B20.
Ну и куда же, естественно, без IoT?)
Данные с энергомера будем выгружать в https://thingspeak.com/. Как с ним работать, я уже как-то писал.
Все устройство поместилось в корпус на DIN-рейку на две позиции (или как оно называется?).
В тестовом варианте выглядело всё вот так:
ТТ висит на фазе удлинителя где-то за границами фото.
Полная съема выглядит так (да, мне всё еще лень рисовать нормальные схемы. Надеюсь, ничего не забыл)
Традиционным методом ЛУТ сделана (не без косяков) плата (размеры примерно 30*58 мм, с вырезами под болты корпуса)
Слишком тонкая дорожка слева-снизу почти сразу оторвалась.
Полностью собранный, но еще не отмытый счетчик (на том этапе еще показывал напряжения и ток. Что информативней показывать активную мощность, я решил позже):
Готовое устройство на рейке выглядит так (включен комп + свет)
Тут еще добавился чайник (на котором написано 2 кВт).
Комп (i3, 1060, 2 HDD, 20″ TFT-моник) — 89 Вт в без нагрузки, 130 Вт в WoT / Dota 2
Комп в спящем режиме — 10 Вт;
Четыре 5 Вт LED лампы Е14 — 22 Вт;
Пылесос в холостую — 1,37 кВт (мощность 350 Вт / 1800 МАХ);
Комп на ночь выключается из розетки, ночью в темноте потребление около 12 — 15 Вт (не морозящий холодильник, роутер, может, зарядное).
В течении дня напряжение меняется примерно так (данные отсылаются каждые 5 минут). Можно заодно отслеживать качество напряжения в доме.
Программирование ESP8266 в среде Arduino IDE
Программирование по порядку.
В этом скетче модуль пытается подключится к точке доступа и при не удачной попытке сам становится точкой доступа.
21 мысль о “ESP8266 – Шаг №1 * WI-FI подключение”
Здравствуйте. Пример хороший, но работает не полностью. К точке доступа вифи подключается и отключается (т.к. срабатывает режим энергопотребления, т.к. нет данных для передачи) и в итоге свисток переходит в режим точки доступа
описался – режим энергосбережения
Вот этого не понял. Откуда вы взяли, что срабатывает режим энергосбережения? Что вы видите в терминале при загрузке?
Здравствуйте!
Сейчас в модуле уже другая прошивка, поэтому точно сказать не могу, но расскажу на чем основывается мой вывод: после прошивки устройство в зарегистрированных на роутере я не нашел, вифи работа сам в режиме точки доступа. Просмотрев лог файл роутера (у меня RB 2011) я увидел, что устройство подключилось и само разорвало соединение (у меня esp8266-01 с мегабайтной флеш). Почитав в интернете причины такого поведения я понял, что устройство в виду отсутствия данных на передачу для экономии электроэнергии рвет соединение (такое со многими телефонами и планшетами). Загрузив пример веб сервера устройство работает постоянно
Так и не подскажешь, что там у вас происходит. В терминале, что пишет при загрузке?
Выдает ошибку при компиляции:
WIFI:16: error: ‘StartAPMode’ was not declared in this scope
Используем библиотеку ESP8266WiFi версии 1.0 из папки: C:\Users\…\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi
exit status 1
‘WIFIinit’ was not declared in this scope
Либо не правильно установлена arduino ide и поддержка платы. Либо Путь к файлу скетча содержит русские буквы.
На самом деле у меня та же ситуация.
Сделал прошивку, где использовал метод описный Вами. Тоесть есть веб страница, на которой мы задаем адрес и пароль от сети. Когда сохраняем – устройство перезагружается. При перезагрузке есть 7 попыток через секунду подключится к сети с указаными параметрами. Если не подключилось – тогда создает точу доступа с указаными именем и паролем. Все как бы норм работает. Но например когда я оставляю устройство включенным + комп, который подключен к этому же роутеру, потом иду на работу, то приходя с работы – замечаю очень интересную картину:
При подключении телефона к сети – он подключается не к роутеру, а к ЕСП, и получает маску сети (192,168,4,1). Я неделю потратил на то, чтобы понять почему у меня роутер так плохо работает и нет на нем интернета… Потом понял что просто ЕСП сам раздает вайфай с указаными параметрами (выходит что сеть роутера и сеть модуля имеют одинаковые логин/пароль) а телефон подключается к ЕСП (может сеть у него сильнне, так как лежит на столе). Что выдает в компорт не мониторил… Проблему решил простым удалением этого метода.
П.С. Интересно что при этом ЕСпшой можно было управлять из назначеного ей роутером ИП адреса (192,168,1,101 напимер) и ИП ее сети (192,168,4,1) на разных устройствах. Это было очень даже интересно…
Конечно нельзя делать сети с одинаковыми именами и тем более паролями.
Поставьте два роутера рядом и сделайте у них одинаковые настройки. Что случится?
В алгоритме сделано так, чтобы он создавал сеть только тогда, когда не подключается к вайфаю.
Так почему же он ее созадет?
Если алгоритм мой и не исправлен, то такого быть не может (если только не баг). Единственный случай если вы зададите имя AP такое же как вашего роутера и такой же пароль.
та же беда. как решили проблему?
добрый день
помогите пожалуйта
у меня при компеляции выскакивает такая ошибка
C:\Program Files (x86)\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiType.h:26:19: fatal error: queue.h: No such file or directory
Не понимаю один момент.
Не подключается к роутеру, делает попытки они заканчиваются включается AP при живом то роутере, перезагружаю ESP жду соединения- нет – перезагружаю. Где то на третий раз подключается нормально. В чем дело не пойму. Дописал даже счетчик что если включается AP чтоб делал рестарт и только на 6 раз включал и оставлял AP ППц не удобно. Менял задержки в цикле подключения аж до 2000мс. Бестолково все. Хэлп ми))
Добрый день!
Очень хорошие уроки огромное спасибо! У меня возникла проблема, я решил подключить ESP8266 модуль RTC с соответствующей библиотекой, вместо функций GetDate() и GetTime() модуля Time написал свои которые берут время и дату из модуля RTC . Всё вроде как хорошо, инициализация проходит успешно на мониторе СОМ порта видно нормальная дата и время, но, вот если из браузера дернуть команду http://192.168.1.55/Time то монитор отображает какую то ерунду типа “37:165:8
” и “85/165/200” да и время на страничке конфигурации идёт с 0:00:00. Что может быть? Если необходимо, могу прислать код.
А подскажите, в чём хитрость поднимать АР функцией типа bool, а не void?
Конечно можно и void иногда требуется поднять флаг и использовать его дальше в коде, но не в этом случае.
Вы везде пишете, что библиотеки “содержатся в пакете”. Где взять этот пакет?
Для платы вы загружаете ядро(пакет) это стандартный набор библиотек для этой платы. То есть вам не нужно искать и устанавливать эту библиотеку дополнительно.
У меня плата UNO R3 + WIFI. Это как UNO с подключённым модулем ES8266.
Подскажите пожалуйста. Почему модуль не меняет имя и пароль у меня, при использовании вашей проги. И каким способом выбирается ip адресс?
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.










