Sonoff Basic R2 държи своята популярност изключително на цената си. За 4.7 американски долара (3.99 на промоция) получавате завършен продукт. Кутия, захранване, WiFi модул, процесор с рам памет и силово реле. Остава да инсталирате апликацията
eWeLink и от прозволна точка на света през интернет, да управлявате Sonoff Basic R2.
Това е героя на обзора, но защо е показан два пъти?
Днес Sonoff Basic R2 тихо затихва изместван от наследника R3. За времето на своето съществуване R2 претърпя няколко модификации за които реших да споделя и спестя бъдещи ваши терзания. Измененията лежат под капака и е въпрос на лотария, какво ще ви изпрати китайския продавач.
Вляво изпълнение под процесор
ESP8266EX, а вдясно под
ESP8285. Схемотехниката на двата брата силно се отличава, макар по замисъл на ITEAD Studio вършат една и съща работа.
Внимателен оглед на двете платки относно импулсното захранване определя модела с ESP8285 за победител. Добавен е филтров мрежов X-кондензатор и Y-кондензатор между страните на трансформатора. Физически предпазител на входа на импулсното захранване. ШИМ контролерът е различен.
Не разбирам, защо в версията c ESP8266 вместо обикновен предпазител са сложили резистор
10R:1W:D4L12V. При скок на напрежението варисторът изменя своето поведение. Той дава на късо входа. Силата на тока рязко тръгва нагоре и предпазителят сработва. Импулсното захранване се обезточва и прекратява работа вследствие на анормално входно напрежение. Тази идея е върната при модела с ESP8285.
Sonoff Basic R2 под процесор ESP8266EX претърпя две ревизии. В началото се използваше флаш памет
W25Q80BV дело на Windbond. Тази памет с лекота се префлашва с разработки от трети лица. На свой ред ITEAD Studio направи завой и замени любимата Windbond на капризната
P25Q80H продукт на Puya Semiconductor.
Пинове. Кой каква роля играе. Гребенче няма и при нужда вие го запоявяте.
Добрата новина е че можете да разкарате паметта на Puya и да върнете W25Q80BV или може да минете от 1MB на 4MB. Изборът е ваш.
Лошата новина идва с поредната новост в лицето на ESP8285. Китайците решават да сложат процесора и флаш паметта в един чип и сбогом Гринго на мечтите. Флаш памета е закотвена на 1MB и никакви ugrade-и.
Малката лоша новина е че са затрили пин GPIO14 нужен за закачане на датчици: влажност, осветеност, температура и т.н. Възможен хак е чрез импровизация, да се запои директно на крачето на чипа, а без микроскоп влизате в приключение.
Пинове. Кой каква роля играе.
Нисковолтовата част на импулсния токоизправител се състои от две вериги.
Първата е стабилизирана, чрез ценеров диод на +5V, нужна за управление на релето, което комутира силовата верига от ~230V / 10A. Съответно захранва веригата на +3.3V.
Процесорът и прилежащата му периферия работи под напрежение 3.3V. Долен праг 2.7V и максимум 3.6V. При нива над това напрежение дефектира безвъзвратно. Що се касае ток - пикът достига до 340mA, поради което реших да направя специално за целта стабилизиран токоизправител на база AMS1117, гарантиращ 850mA сила на тока.
Мерки за безопасност
Изключваме Sonoff Basic R2 от градската мрежа при манипулации като: четене, записване, обновяване на съдържанието на флаша му. При традиционен вариант на токоизправител, чрез трансформатор, е гарантиран разрива на галваническата връзка с градската мрежа .
Външният токоизточник трябва да е стабилен, а това не е валидно за
китайските USB-UART адаптери. Отделно, защо да тормозим USB-порта на компютъра с неговия лимит от 500mA за версия 2. За фаворит избрах PL2003, не че CG340G по нещо отстъпва.
На практика повтарям самото захранване реализирано в Sonoff Basic R2. Там стои AMS1117, обезпечаващ работно напрежение от +3.3V.
AMS1117 или нейните аналози използвани в компютърната схемотехника ви гарантират 1% толеранс, а това е повече от идеално, затова не бързайте да утилизирате старите дънни платки, видеокарти, твърди дискове.
Положителният стабилизатор на напрежение набавих от донор. В моя случай платка от твърд диск Samsung 80GB.
Схема на стабилизирания токоизправител
Трансформаторът дойде от изоставен адаптер на притежаван diskman Sony. Традиционен токоизправител на 6V. Плюс няколко кондензатора, светодиод за индикация, ключ, поялник и вложено лично време.
Съединението между адаптера и интерфейса на Sonoff Basic R2 се осъществява на кръст.
- общ <---> общ
- RX <---> TX
- TX <---> RX
Бъдете внимателни с +3.3V от външния токоизправител. При обърнати полюси модулът дефектира.
Момент на съединение между поредния Sonoff Basic R2 и работния ми компютър.
И след като хардуера е наличен и свързан следва внимание върху софтуера. Нещата протичат под OS-ма Ubuntu 16.04 и утилита
esptool.py.
Инсталация:
sudo apt install python-pip
pip install esptool
pip install --upgrade pip
Проблемът е, че ITEAD Studio прави firmware-a уникален за всеки свой модул. Да речем, че решите да флашнете Sonoff с друга разработка, а след време отново да се върнете към eWeLink. Ако не е оргиналния backup, то не очаквайте добре дошли отново.
Команда:
sudo esptool.py chip_id
информира за много неща, но най-вече за ID и MAC адреса. Предполагам, те са уникалния ключ на всеки модул.
Процедура
Нещо като ритуал е изпълнението на всяка команда. Изключвате захранването. Натискате и задържате бутон GPIO. Включвате захранването. Отпускате бутон GPIO. Светодиодът не свети е знак, че модула е преведен в режим работа с флаш паметта. Стартитате командата. Следва изпълнение и край на сеанса. За поредна команда всичко отначало.
Проба с ESP8266 и CG340G.
Проба с ESP8266 и PL2003.
Информацията се повтаря. Разлика е само в номера на виртуалния сериен порт. /dev/ttuUSB4 e превключен на /dev/ttuUSB2.
Как стоят нещата около ESP8285.
Проба с ESP8285 и CG340G.
Проба с ESP8285 и PL2003.
Команда:
sudo esptool.py flash_id
информира за размера на флаш паметта. Картината се повтаря и при двата модула - скромно 1MB.
Команда за Firmware Backup:
sudo esptool.py read_flash 0x00000 0x100000 ./sonoff/8266_image.bin
sudo esptool.py read_flash 0x00000 0x100000 ./sonoff/8285_image.bin
Имената и пътищата са индивидуални, което обяснява отличията между приведените команди и съдържанието на снимките.
Важно е да се зададе границата на сегмента откъде до къде да чете (0x00000 0x100000), а това зависи единствено от размера на флаш паметта.
Linux нюанси
От приведените снимки горе прави впечатление, че работата с esptool.py изисква администраторски привилегии. Инсталацията на esptool.py създава в системата нова група
dialout без членове. Това може да се упрости при желание.
Проверка за наличие на група dialout в системата.
Команда:
compgen -g | grep dialout
getent group | cut -d: -f1 | grep dialout
В коя група е добавен потребителя -
$USER.
Команда:
id $USER
Добавяне на потребителя в група dialout и проверка.
Команда:
sudo adduser profruit dialout
getent group dialout
Потребител
profruit e добавен в група
dialout и не се нуждае повече от root-права по време на своя сеанс. Командата стана по-лаконична и по-лесно възпринимаема.
Допълнения
Според рутера на моя мрежа IP-адресите и MAC-адресите на клиенти Sonoff Basic R2 се четат така. Името след дефиса се формира от последните три разряда на MAC-адреса към константа ESP.
Снифер към модула, чрез
nmap.
Проби за връзка извън рамките на eWeLink
Обръщение, чрез браузър към устройството - нищо.
Обръщение, чрез ftp към устройството - нищо.
Обръщение, чрез telnet към устройството - нищо.
Обръщение, чрез SSH към устройството - нищо.
Обръщение, чрез Arduino към устройството - нищо.
Става ясно, че оригиналния firmware е повече от спартански. Без HTTP, без АТ-интерпретатор, без LUA-интерпретатор, без MQTT-сървър и т.н. От проведените проби утилита
nc отвърна с "ръкостискане".
blackice icecap е огнена стена създадена от
www.iss.net, а порт 8081 се ползва от
ice-cap.
Финални думи
При старт Sonoff Basic R2 консумира около 1.3W от градската мрежа.
При включено реле Sonoff Basic R2 консумира около 1W от градската мрежа.
При изключено реле Sonoff Basic R2 консумира около 0.4W от градската мрежа.
Регистрацията на eWeLink извършвайте единствено през акаунт на Yahoo. Чрез номера на телефона е мазохизъм.
10А комутация е китайски мит. Съпротивлението на силовите писти умножено на тока на квадрат (10А) указва, че самите писти ще разсейват до 10W мощност. Не залагайте повече от 500W на консуматор. При налични +5V добавяте твърдотелно реле и успешно командвате киловати консумация.