Reset для esp8266: когда необходим и способы реализации

Сброс параметров (reset) чипа ESP8266 к изначальным настройкам

Большинство пользователей успело уже изучить и прикупить чип ESP8266-12, который был недавно выпущен Espressif. Главным достоинством разработки является её стоимость, в сравнении со стандартными платами Bluetooth-адаптерами.

Но вы не только сэкономите деньги, прикупив такой чип, а и получите плату гораздо меньших габаритов и с широким функционалом, что особенно удобно при проектировании и создании микроконтроллеров и небольших устройств. Однако даже простая плата может выдавать ошибки, лучшим решением в случае поломки будет reset для ESP8266, а в каких случаях и как его делать, мы вам расскажем ниже.

В каких случаях необходим reset для ESP8266

Для начала стоит разобраться, что вообще подразумевается под «reset». В данном случае – это сброс параметров чипа к изначальным настройкам, в том числе и тех, что могли быть изменены пользователем вследствие загрузки кода и программ.

На чип изначально установлена базовая прошивка АТ, позволяющая ему взаимодействовать с другими платами и консолью Ардуино, дабы программист мог лишний раз не морочить голову с написанием вспомогательного ПО на низших языках. Однако некоторые пользователи заходят так далеко в своих манипуляциях, что меняют различные параметры прошивки. Чаще всего это относится к разнообразным таймингам. Не говоря уже о том, что они начинают устанавливать постороннее ПО, заменяя то, что уже хранится на чипе, дабы получить полный контроль над функционалом ESP8266.

Распиновка ESP-12

Вследствие таких манипуляций что-то может поломаться (из-за ошибок программного кода), из-за чего плата просто перестанет отвечать на посылаемые команды. Но или, что происходит намного чаще, человек просто захочет сбросить все настройки и очистить память. И тогда ему пригодится reset и сброс всех изменений. В данном случае это перепрошивка АТ, при которой все команды для изменения параметров, вводимые пользователем ранее, будут забыты.

Новую прошивку следует выбирать с оглядкой на то, к какой плате вы будете подключать чип в дальнейшем. Если речь об ардуино, то хорошим выбором станет «франкенштейн», позволяющий расширить функционал и упростить настройку чипа в дальнейшем.

Дело в том, что данное ПО открывает возможность для обновления микроконтроллера и подгрузки флеш-памяти через TFTP протокол, что может здорово упростить вам жизнь. Однако сначала придётся взяться за паяльник, чтобы стереть уже заложенный в плату софт.

В самой плате нет программируемой памяти, из-за чего многие предпочитают использовать внешнюю на 512 кб. Именно на неё заливается базовая прошивка для распознавания АТ-команд через интерфейс UART.

Именно когда нарушается целостность тестового ПО и приходится заливать в флеш-память своё. Но это далеко не единственная причина для подобных действий. Дело в том, что иногда не хватает функционала, даваемого этой прошивкой, оттого она и называется «тестовой», и необходимо совершить «reset», стерев её, а затем подгрузить на плату уже свою. Но как же это сделать?

Как сделать reset для ESP8266

Прежде чем приступить, учитывайте, что при неправильном обращении плата станет вовсе бесполезной, поэтому лучше закупиться парой штук. Они пригодятся для экспериментов на время вашего обучения. Да и будут полезны, если вы делаете не одно устройство, или, например, несколько каналов связи для умного дома.

В целом, вся ответственность за любые манипуляции с чипом висит лишь на пользователе, учитывайте это, прежде чем лезть к прошивке, которая стоит на плате специально для новичков.

Если вы всё же решились сменить ПО, то для начала нам необходимо освободить память. Сделать это можно одним из двух способов.

Способ 1

Если вы не хотите лишних сложностей, то этот путь для вас. Необходимо перевести чип, при программированном замыкании, с интерфейса GPIO0 на GND, после чего подключить при помощи usb—ttl переходника к вашему ПК, заранее установив на компьютер утилиту XTCOM_UTIL (подойдёт любой её аналог).

Однако здесь могут возникнуть сложности, ведь отцепить GPIO0 от VCC выходит далеко не у всех. В зависимости от обстоятельств, задача может стать практически невыполнимой, но зачастую описанных выше действий будет достаточно, чтобы получить доступ к флеш-памяти и запрограммировать её на своё усмотрение.

Способ 2

Если же у вас возникли ожидаемые сложности, то существует более сложный, но при этом полностью рабочий способ зашить в память своё ПО. Необходимо взять в руки припой с паяльником и попросту отсоединить память, а затем уже использовать внешний программатор. Проще всего это сделать с помощью дешёвых китайских комбайнов, наподобие CH341А, стоят они недорого, а со своей задачей справляются на отлично.

Программатор CH341A

Установка прошивки

Неважно, каким способом вы добрались до этого момента, здесь главное – подобрать прошивку, после которой не придётся хоронить чип. Если у вас нет опыта в этом деле, выбирайте Frankenstein, его главным преимуществом является возможность свободного обновления реестров по TFTP соединению и без лишней мороки, пример которой вы можете найти выше.

Если вы всё сделаете правильно, то это был последний раз, когда паяльник лежал у вас в руках при ресете данного микроконтроллера. Найти последние версии прошивок можно на github, там же авторы приложили инструкцию по установке и базовые команды, воспринимаемые ПО.

Заключение

Если вы решите сделать для ESP8266 reset, учитывайте, что при неправильном выборе прошивки и неудачной очистке флеш-памяти микроконтроллер может попросту больше не заработать.

Однако, если процедура проведена с должной осторожностью и по описанной выше инструкции, то на выходе вы получите расширение и без того богатого функционала чипа. Вы сможете в дальнейшем модифицировать его по своему желанию без необходимости использовать паяльник. Особенно интересно это будет автоматизаторам и инженерам-программистам, которые хотят попробовать себя в написании низкоуровневого ПО и прошивок.

Как стереть память esp8266 на windows 10

Недавно хотел загрузить в esp8266 прошивку управления умного дома, для интеграции с Apple Home Kit, но перепробовав много вариантов, ни одна так и не заработала. Причину не мог найти долго, пока не ковырял другой проект, и заметил, что при загрузке прошивки, осталась wi-fi точка от предыдущей прошивки.

Если вы хоть раз загружали готовый проект, то могли заметить, что зачастую прошивка делится на несколько частей и грузится блоками по разным адресам esp8266. Решение пришло в голову быстро – нужно полностью стереть память контроллера, что оказалось на Win10 не такой простой задачей. Для решения проблемы нам понадобиться esptool.py, написанная на питоне.

Сначала пройдём в раздел загрузки питона на windows, и нажмём заветную клавишу загрузки.

Переходим к установке, но с одной важной деталью – отмечаем чекбокс ADD PYTHON 3.7 to PATH

После завершения запускаем командную строку Windows CMD, и простой командой проверяем корректность установки.

Как видите, строка ответила, что у нас установлена версия Python 3.7.4. Теперь нужно установить утилиту esptool, для этого воспользуемся следующей командой

Установка прошла успешно, на будущее нас сразу жёлтым текстом предупреждают, что можно обносить версию pip. Воспользуемся этой возможностью

Теперь подключаем нашу плату ESP8266, и проверяем на каком порту она находится. Сделать это проще всего через диспетчер устройств. У меня это COM3

Теперь подставим в следующую команду номер порта, можно смело запускать процедуру удаления содержимого флэш памяти esp8266

В конце строка должна отписать, что очистка произошла успешно. Теперь можно смело грузить любые проекты, и быть уверенным в их корректной работе.

Работа с ESP8266: Первоначальная настройка, обновление прошивки, связь по Wi-Fi, отправка-получение данных на ПК

На Хабре уже было пару статей о чипе ESP8266 китайской компании Espressif. Статья №1 и Статья №2. Не так давно я получил плату ESP-01 для проведения тестирования. Кому интересно, прошу под кат.

Мной была заказана самая простая плата с ESP8266 — ESP-01, выглядит она так:

В старой ревизии платы на разьем были выведены только VCC, GND, URXD и UTXD.
В последней ревизии добавились RST, GPIO0, GPIO2 и CH_PD.

Всего есть 11 модификаций плат, различающихся количеством выводов и вариантом исполнения:
ESP-01: PCB antenna, after matching the distance to do about the open 400 meters, easy to use.
ESP-02: SMD package for submission limit, the antenna can be drawn with the IPX header casing.
ESP-03: SMD package, the built-in ceramic antenna technology, all available IO leads.
ESP-04: SMD package, customers can customize the antenna types, flexible design, all the IO leads.
ESP-05: SMD package, only leads to serial and RST pin, small external antenna.
ESP-06: bottom mount technology, leads all the IO ports, with metal shielding shell, can be had FCC CEcertification, recommended.
ESP-07: Semi-hole chip technology, all the IO leads, with metal shielding shell, can be had FCC CE certifiedIPX external antenna, can also be built-in ceramic antenna.
ESP-08: with the ESP-07, except that the antenna is in the form of customers can define their own.
ESP-09: Ultra-small size package, only 10 * 10 mm, four-layer board technology 1M bytes.
ESP-10: SMD interface, narrow-body design, 10 mm wide, suitable for light with controller.
ESP-11: SMD interface, ceramic antenna, small volume.

Распиновка разъёма ESP-01:

Назначение выводов платы ESP-01 такое:
VCC, GND — питание платы (+3.3В);
URXD,UTXD — выводы RS232 толерантны к 3.3В
RST — Аппаратный сброс (reset)
GPIO0, GPIO2 — выводы GPIO
CH_PD — Chip enable, для работы должен быть подключен к +3.3В.

Для переключения в режим обновления прошивки нужно подать низкий уровень на GPIO0 и высокий на CH_PD.

Для подключения платы ESP-01 к ПК я использовал USB-to-RS232 преобразователь на FT232R с выходами TTL 3.3В, можно использовать например такой.
Питание ESP-01 нужно строго 3.3В, поэтому пришлось воспользоваться DC-DC преобразователем, можно использовать такой.

С базовой прошивкой плата ESP-01 управляется AT командами, поэтому нам потребуется программа-терминал, я использовал CoolTerm.

Возможно 2 варианта использования модуля:
1. Использование платы ESP-01 совместно с доп.микроконтроллером, который будет управлять модулем по UART.
2. Написание собственной прошивки для чипа ESP8266 и его использование как самодостаточного устройства.

Естественно более выгодным является 2-й вариант, тем более потенциал чипа ESP8266 достаточно велик.

Для начала мы попробуем вариант №1, то есть управлять платой ESP-01 через RS232.

Схема подключения очень простая:
Вывод VCC — питание платы (+3.3В);
Вывод GND — общий;
Выводы URXD,UTXD — подключаем к конвертеру USB-to-RS232 (в режиме 3.3В)
Вывод CH_PD — подключаем к питанию платы (+3.3В);

В терминале (CoolTerm) устанавливаем скорость COM-порта 57600. Установить нужно именно такую скорость, т.к. если в чипе ESP8266 стоит старая прошивка (а скорее всего это так и есть), то он будет работать только с такой скоростью порта.

Жмем Connect, вводим команду AT, в ответ должно прийти OK. Если все так, то плата работает, можно двигаться дальше.

Процедура обновления прошивки

Вводим команду AT+GMR — проверка версии AT и SDK, в ответ выдает 0016000902, где 0016 — версия SDK, 0901 — версия AT

На текущий момент (06.11.2014) уже доступна прошивка 0018000902 (Версия SDK — 0018, в версия AT — 0902)

Теперь можно и нужно обновить прошивку:
1. Качаем утилиту XTCOM отсюда.
2. Качаем прошивку ESP_8266_v0.9.2.2 AT Firmware.bin отсюда
3. Отключаем питание платы, вывод GPIO0 соединяем с общим проводом, включаем питание.
4. Запускаем XTCOM_UTIL.exe, переходим в Tools -> Config Device, выбираем COM-порт к которому подключена плата, ставим скорость порта 57600, жмем Open, потом Connect, программа должна сказать «Connect with target OK!», закрываем окно настроек. Переходим в меню API TEST, выбираем (4) Flash Image Download, указываем путь к файлу «ESP_8266_v0.9.2.2 AT Firmware.bin», адрес оставляем 0x00000, жмем DownLoad. Должна начаться загрузка прошивки, по окончании будет выдано сообщение.
5. Отключаем питание платы, вывод GPIO0 отсоединяем от общего провода, включаем питание, запускаем терминал (ВНИМАНИЕ! Меняем скорость порта на 9600), проверяем готовность платы командой AT и версию прошивки командой AT+GMR.

После обновления до версии 0018000902 изменится дефолтная скорость COM-порта с 57600 на 9600, но эту скорость в новой прошивке теперь можно задать командой AT+CIOBAUD. Смотрим AT+CIOBAUD=? доступные скорости и ставим командой AT+CIOBAUD=115200 скорость 115200, в ответ должно выдать ОК. Даем команду на рестарт: AT+RST. Меняем скорость порта в программе-терминал на 115200.

Настройка подключения к Wi-Fi

Теперь попробуем подключить нашу плату ESP-01 к Wi-Fi точке доступа.
Выполняем следующие команды:
1. Устанавливаем режим работы Wi-Fi командой: Доступны следующие режимы: 1 — STA, 2 — AP, 3 — BOTH
Пример:
2. Смотрим список точек доступа командой: AT+CWLAP
Пример
В скобках указывается: SECURITY, SSID, RSSI, BSSID, CHANNEL
SECURITY может принимать значения:
0 — OPEN, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK)
3. Подключаемся в нашей AP командой: Пример:
Подключение длится 2-5 секунд, после чего в случае успешного выполнения появится OK.
3. Посмотрим какой IP адрес получила наша плата командой: AT+CIFSR
Отключение от точки доступа делается командой AT+CWQAP.
Адрес получен, можно двигаться дальше.

Плата ESP-01 может выступать в качестве Soft-AP, для включения этого режима выполняем следующие команды:
1. Отключаемся от точки доступа: AT+CWQAP.
2. Меняем режим работы Wi-Fi командой: AT+CWMODE=2
3. Создаем свою AP командой: Пример:
4. Пробуем подключиться в нашей AP с компьютера. Посмотрим результат:

Как видно на картинке скорость только 54Мбит/с и еще меня смущают адреса DNS серверов, думаю они явно китайские, поставить свои через AT-команды нельзя.
Адрес AP можно узнать командой: AT+CIFSR
Пример:
Список клиентов нашей AP можно посмотреть командой: AT+CWLIF
Пример:

Настройка режима TCP-сервер

На плате ESP-01 можно запустить TCP-сервер для приема-отправки данных или она может выступать TCP-клиентом для приема-отправки данных на сервер.
Для запуска TCP-сервера выполним следующие команды:
1. Устанавливаем режим передачи командой mode = 0 — not data mode (сервер может отправлять данные клиенту и может принимать данные от клиента)
mode = 1 — data mode (сервер не может отправлять данные клиенту, но может принимать данные от клиента)
Пример:
2. Устанавливаем возможность множественных соединений: mode 0 — single connection
mode 1 — multiple connection
Проверить режим соединений можно командой AT+CIPMUX?
Пример:
3. Запускаем сервер на порту 8888: mode 0 — to close server
mode 1 — to open server
Пример:

Теперь можно подключиться к ESP-01 и отправить-принять какие-нибудь данные. Для подключения будем использовать утилиту SocketTest
Запускаем java -jar SocketTest.jar, на вкладке Client вводим адрес и порт ESP-01, жмем Connect. Если подключение будет успешным, то в терминале появится сообщение Link и в SocketTest станет активной строка Message и кнопка Send.
Посмотреть список активных подключений к ESP-01 можно командой AT+CIPSTATUS
Пример:
Закрыть активное соединение можно командой или все соединения AT+CIPCLOSE без параметров.
Пример:
4. Отправляем данные с ESP-01 на ПК
Для режима Single connection (+CIPMUX=0) отправка идет так: Для режима Multiple connection (+CIPMUX=1) отправка идет так: После выполнения AT+CIPSEND нужно ввести текст, завершение ввода и отправка осуществляется по Enter.
Пример:
5. Отправляем тестовое сообщение с ПК:

В терминале появляется строка Сообщение принято.
Формат принятых данных такой:
Для режима Single Connection (CIPMUX=0): Для режима Multiple Connection (CIPMUX=1):

Настройка режима TCP-клиента

Теперь поменяем роли, ПК — сервер, ESP-01 — клиент, пробуем:
1. Рестартуем плату AT+RST
2. Устанавливаем режим передачи командой mode = 0 — not data mode (клиент может отправлять данные серверу и может принимать данные от сервера)
mode = 1 — data mode (клиент не может отправлять данные серверу, но может принимать данные от сервера)
Пример:
3. Режим соединений ставим Multiple connection: AT+CIPMUX=1
4. На ПК в SocketTest запускаем сервер на порту 8888
5. Запускаем клиента на ESP-01
Для режима Single connection (+CIPMUX=0) формат такой Для режима Multiple connection (+CIPMUX=1) формат такой Возможные значения параметров:
> type = TCP/UDP
addr = IP адрес
port= порт
Пример:
6. Отправляем данные с ESP-01 на ПК
Для режима Single connection (+CIPMUX=0) отправка идет так: Для режима Multiple connection (+CIPMUX=1) отправка идет так: После выполнения AT+CIPSEND нужно ввести текст, завершение ввода и отправка осуществляется по Enter.
Пример:

Пример отправки и получения данных:

Как мы видим, плата успешно справляется с поставленными задачами, а именно — подключение к Wi-Fi в качестве клиента, может выступать в роли Soft-AP, на плате можно поднять TCP-сервер для приема-отправки данных, а можно быть TCP-клиентом.
В данной статье мы рассмотрели работу с платой ESP-01 через RS232, в качестве управляющего контроллера выступал ПК, можно без проблем подключить плату Arduino или любой микроконтроллер с UART и выполнять отправку-прием данных через Wi-Fi сеть между контроллерами или ПК.

В следующей статье (как позволит карма) я попробую рассказать о принципах написания собственных прошивок для чипа ESP8266, тем самым плата ESP-01 будет полностью автономной, ей будет не нужен доп.контроллер для управления всеми параметрами. Мы попробуем подключить к плате различные периферийные устройства.

Буду рад ответить на вопросы, хотя до конца я еще не узучил плату ESP-01.

Reset для esp8266: когда необходим и способы реализации

Всем привет, в этой статье поговорим об уже надоевшей всем теме – “Метеостанция”. Каждый пытается сделать что-то свое, вот и я не стал исключением и попытался материализовать свои эротические фантазии на контроллере ESP8266. Тема задумывалась уже давно как некое обновление для предыдущего проекта этой тематики, но из-за своей неспешности переросла в нечто самостоятельное.

При всей привлекательности микроконтроллера ESP8266 с его большим объемом памяти, железной поддержкой Wi-Fi и массой разных плюшек, он не лишен недостатков. Самый основной – ограниченное количество поддерживаемых одновременных TCP соединений равное 5. Если превысить этот лимит, то контроллер потеряет связь с окружающим миром, при этом watchdog будет думать, что все в порядке, а следовательно, даже не попытается нам помочь. Будем стараться это помнить!
Стоит начать с концепции
Доступ к данным метеостанции нужно получать без установки внешних приложений и под любой операционной системой. Для этих целей подойдет практически любой современный браузер. Меня всем устраивает Chrome. Раз уж за основу взят HTTP протокол, стоит озаботиться экономией трафика и ограничением числа TCP соединений. Хорошим тоном будет передача всего необходимого для формирования страницы контента только при первом обращении, а все последующие операции, такие как отображение показаний с датчиков или настройку контроллера, производить через API. В этом нам поможет JQuery. А вот, чтобы ослабить болевые ощущения от передачи файлов с SPI Flash в браузер, стоит предусмотреть систему кэширования, например, Etag. Это позволит отдавать тяжелый контент единожды, а при последующих загрузках страницы просто подтверждать его актуальность на уровне Web сервера микроконтроллера и кэш браузера вступит в игру, неимоверно уменьшив время загрузки страницы! “Вы были правы в одном, Мастер: переговоры были недолгими.” © Звездные войны. Эпизод 1 Из-за того, что метеостанция с датчиками и контроллером должна располагаться на улице, жизненно необходимо предусмотреть возможность обновлять прошивку ESP через Web интерфейс. Аналогичным образом должны обновляться файлы Web сервера расположенные на SPI Flash. Этот и предыдущий пункт вкупе позволят обновлять функционал микроконтроллера из домашней сети или из интернета, если конечно в этом возникнет острая необходимость. Чтобы никто посторонний не могу вмешаться в работу устройства или изменить файлы Web сервера, последний должен хотя бы как-то себя защищать. Пускать в панель управления только после авторизации, блокировать доступ при попытках брутфорса пароля. В конце концов, контроллер обязан самостоятельно генерировать ключи (salt) для авторизации, дабы сделать алгоритм непредсказуемым и исключить потенциальный взлом, в случае если злодей завладеет исходниками проекта. Понятно, что кому она там нужна, эта метеостанция, если её не завязывать с умным домом, если только из-за спортивного интереса, но как говориться “Береженого Бог бережет”. Датчики стоит расположить по уму – в метеобудке, а вот контроллер в сухом и закрытом боксе. Объединить их между собой, как мне кажется, удобнее по I2C шине – минимум проводов, максимум удобства. Практически на всех вариантах плат ESP-xx имеется штатный светодиод, можно воспользоваться им как для индикации режимов и состояния микроконтроллера, так и для вывода какой-либо промежуточной информации. Что касаемо режимов работы ESP8266, как ни странно, но он должен находить домашнюю Wi-Fi сеть и подключаться к ней. Если вдруг звезды не были к нам благосклонны, и домашняя беспроводная сеть приказала долго жить, контроллер обязан перейти в режим точки доступа (AP) дабы к нему можно было подключиться с какого-либо устройства и перенастроить его на другую сеть. А вот пока последнее не произошло, ESP должен периодически сканировать эфир в поисках долгожданной домашней точки доступа и, если боги были к нам милосердны, и домашняя сеть появилась в эфире, незамедлительно переключиться в режим клиента (STA) и в пылу страсти воссоединиться с ней. Ну и естественно, как же без отправки данных на внешние ресурсы, сейчас без этого не обходится ни одна уважающая себя кофеварка, не говоря уже о метеостанции. Думаю, что основным блюдом станет протокол MQTT, это уже облегчает возможность интеграции с умным домом, стулом или той же кофеваркой. Ну а на закуску добавим поддержку “ThingSpeak” и “Народного мониторинга”. При желании можно нарастить функционал, благо памяти у микроконтроллера еще много. Как я себе это представляю
Учтите, что на видео, данные с датчиков, эмитируются самим микроконтроллером, это нужно для наглядности. В жизни метеорологическая обстановка намного спокойнее слава Богу.
Перейдем к физической сборки устройства
Как по мне, так самый оптимальный вариант, это воспользоваться отладочной платой NodeMCU V3 и базой для неё. Таким образом, мы получим отличный комплект с разведенной на его борту всей необходимой обвязкой и возможностью питать устройство от 5 до 24 Вольт.

Отладочная плата на базе, и смотрится хорошо, и удобства хоть отбавляй.

Заливаем прошивку, образ SPI Flash и подключаем четырьмя проводами датчики. Справится даже ребенок.
Ссылки:
Базовая плата для NodeMCU V3 с преобразователем питания 5-24V в 5V Отладочная плата ESP8266 от NodeMCU Естественно никто не запрещает Вам развести свою плату. Если Вы это сделаете, скиньте нам свое творение, возможно мы перейдем на него. В идеале, все должно размещаться в метеобудке.
Датчики взятые за основу
Теперь настал момент озаботиться, где описанные выше ребята будут жить. В прошлый раз мы использовали для этих целей, найденную в подножном корме, электрическую распределительную коробку. Кроме дешевизны в этом решении нет ничего положительного.
В этот раз мы воспользуемся более серьезным вариантом – “Метеорологическая будка Стивенсона”. Она способна защитить датчики от прямых воздействий окружающей среды, но при этом имеет открытую структуру со стенками в виде жалюзи. Удобно, красиво и самое главное – правильно!
Будка печатается на 3D принтере по эскизам опубликованным на Thingiverse неким kowomike, спасибо добрый человек! Архив с эскизами можно будет скачать в конце поста.

Фото готовой будки

Шпилька М8 крепится через зажимной хомут к мачте уличной антенны.
Примерка. Шпилька практически не укорачивалась, чтобы не закрывать будку параболической Wi-Fi антенной.
Хотя в моем случае все это сделано не правильно т.к это солнечная сторона дома. Доступа на теневую сторону дома у меня нет, поэтому приходиться довольствоваться тем, что имеем. По прошлой метеостанции мне говорили “на солнечной стороне все эти измерения – сферический конь в вакууме, слепи %описание-многА-букАв% и закрепи на теневой стороне дома”.
Я пока живу в панельном многоквартирном доме, как и не малая часть нашей страны. Доступ к теневой стороне дома (а для меня, по факту, это окна в подъезде) – прямой вызов всем гопникам района трущимся рядом, любопытным соседям с бегающими глазками и всей элите человечества скрашивающей фоном мою унылую и слишком простую, по их мнению, жизнь. Думаю, что мысль я донес.

Датчики располагаются на разных уровнях. В основании находится датчик освещенности BH1750 и смотрит ровно вниз. Мне кажется, так он будет меньше пачкаться и покрываться пылью и при этом смотреть наружу сквозь минимальное количество препятствий для солнечного света. Вообще размещение этого датчика, это целая головная боль. Как не крути, все будет не то. Оставил так, ведь по сути важны не сами показания, а тенденция изменения. Хотя кого я пытаюсь обмануть, точность важна всегда! Предлагайте свои варианты.
Намного проще обстоят дела с датчиком атмосферного давления BMP180 и влажности SI7021, кстати, с последнего мы также будем забирать данные о температуре. Их размещаем в оставшемся свободном пространстве будки, благо его там с избытком, но не в конусе т.к пространство в нем менее проветриваемое.

Все хозяйство подключается между собой следующим образом
NodeMCU | ESP 07/12 | Датчики —————————– D2 | GPIO 4 | SDA D1 | GPIO 5 | SCL 3.3V | 3.3V | 3.3V GND | GND | GND ВАЖНО: при финальном монтаже устройства на его место службы, обязательно установите перемычку между пинами GPIO 0 (D3) и питанием 3.3 Вольта. Причины её установки описаны в закрепленном сообщении с описание обновления от 12.08.2017.
Сам микроконтроллер будет спрятан в уже знаменитую распределительную коробку, закрепленную на шпильке, чуть ниже будки Стивенсона. У меня все находится на стадии неторопливой сборки с попутным поиском более удачных идей.
Плата расширения, на которой будет установлена плата NodeMCU, закреплена через ножки для крепления компьютерных материнских плат в корпусах.

Разъемы для подключения внешних датчиков и питающей линии установил на местах где была пара штатных заглушек. Закрепил все через переходную пластину, выпиленную из куска фольгированного текстолита. Естественно, предварительно пластина была протравлена, а вся медь искоренена, ибо в этом случае она нам не друг.
Также была предусмотрена проставка из полиэтиленового поролона (используется в качестве упаковочного материала при транспортировке грузов) между текстолитом и корпусом, общей толщиной 5мм, а после затяжки крепежных винтов, его толщина не превышает 1мм. Это было сделано из-за опыта эксплуатации предыдущего (временного) бокса для этой метеостанции. Без проставки влага быстро найдет путь вовнутрь, и срок службы устройства снизится.
Производим примерку.
При окончательном монтаже обязательно необходимо удалить все не плотно прилегающие части полиэтиленового поролона, то есть те части, которые располагаются снаружи и не сдавлены крепежной текстолитовой пластиной. Это необходимо сделать для препятствования накоплению влаги в доступных для неё полостях. Также пришлось увеличить число крепежных болтов для более надежного прилегания текстолита, в противном случае он может выгибаться.
Все самое сложное позади, остается только вывести на один разъем шину i2c с питание 3.3 Вольта, а на другой подвести пины питания платы расширения. Но т.к у меня валялся “хвост” отрезанный когда-то от не рабочего блока питания маршрутизатора, и я не побрезговал им воспользоваться по прямому назначению.

Далее останется все подравнять, проверить качество монтажа, возможность замены платы NodeMCU, если это будет необходимо при эксплуатации и самое главное, дважды проверить, что и куда припаяно. Мои кривые руки и невнимательность уже наказывали меня, а т.к ждать новые запчасти долго, повторять не хочется.

Общий вид получился таким
А вот как все выглядит в боевых условиях. Кстати, могу предложить идею с помещением в бокс мешочка содержащий впитывающий влагу гель, они часто встречаются в коробках с обувью. Если все герметично, то он впитает остатки влаги, а если нет, то лишним уж точно не будет.

Источники:

http://wreckage.ru/how-to-erase-esp8266-memory-on-windows-10/

http://habr.com/post/362623/

http://it4it.club/topic/45-nastroyka-arduino-ide-i-podklyuchenie-esp8266-bez-knopok-reset-i-prog/

http://arduinoplus.ru/xiaomi-redmi-3/

Ссылка на основную публикацию