Pull to refresh

Comments 82

Так и не понял — исходники открыты? И если открыты, то можно ссылку?
Ссылка на загрузку дистрибутива в последнем абзаце статьи.
«Называется эта память «NVS» (Non-volatile storage).»
Можно поподробней? В чем разница, какие особенности, например ограничение на количество циклов записи или максимальное время хранения без внешнего питания.
Я думаю, что какая-то технологическая разница есть (мне она неизвестна), но для нас, как пользователей, это всё та же «флеш-память» в отношении которой (особенно применительно к контроллерам) нужно соблюдать некоторые правила использования, например, не писать в одну и ту же ячейку (переменную) по нескольку раз в секунду. Безопасным считается изменение не чаще раза в час (по возможности), тогда проблем с ячейками не будет на протяжении многих лет.
NVS в esp32 это выделенный раздел на системной флешке куда можно читать писать данные используя высокоуровневые функции. При желании можно изменить размер этого раздела. Также есть API под названием wear levelling через который можно прямо на системной флешке создать FAT раздел и писать/читать оттуда стандартными функциями C. Этот апи учитывает износ ячеек flash памяти и оптимизирует циклы стирания/записи.
… найдёте их в Интернет: ...

в интернете
Спорный вопрос. По поводу того, склоняется ли слово «Интернет» и с какой буквы оно пишется сломано немало копий. Хотелось бы узнать пришли ли лингвисты к какму-нибудь окончательному решению.
не хочу ни на кого давить и навязывать своё, но для себя пользуюсь правилом:
в интернете, но в сети интернет
У этого слова нет оснований не склоняться.
Похоже большинство присутствующих голосует за склонение и написание с маленькой буквы. У кого-нибудь есть альтернативное мнение на этот счёт?
Я привык говорить:
об «интернете», как о различных сайтах, соцсетях, ютубах, прочей развлекаловке и не только
и
о «сети Интернет», как о сети с технической точки зрения (т.е. со всякой трансляцией адресов, доменами, серверами и т.д. и т.п.)
Во-первых, изначально «интернет» — это объединение нескольких локальных сетей — отсюда и «интер»+«нет». Хотя это понятие на практике уже не используется, но тем не менее.

Во-вторых, по правилам русского языка уникальный и единственный в своём роде объект именуется с заглавной буквы — а сеть Интернет бесспорно уникальная и единственная в своём роде.

В-третьих, на практике произошло объединение понятий — «сеть Интернет» и вид связи «интернет», что и вносит путаницу. Как в том анекдоте — «Интернет не работает! — Что весь не работает?»

Поэтому — если имеется в виду именно глобальная сеть, то правильнее писать — «Интернет». Если имеется в виду вид связи — то «интернет». Граница размытая и условная, но есть.

А вот решение Орфографической комиссии РАН — можно и так и так)
Таак… Мнения разделились. :) Тогда получается, что я правильно написал.
А если имеются в виду сайты, то писать «глобальная паутина»?
Которая (WWW) является частью Интернета.
Да, действительно, есть и такое дополнительное значение. Вроде бы технически имеется в виду сеть Интернет, но уже настолько фразы типа «нашёл что-то в интернете» стали понятием относительным, что консистентным выглядит именно написание с маленькой буквы.

То есть, дополняем нашу методичку:

1. Исходя из терминологии компьютерных сетей, интернет — это 2 и более связанные локальные сети. Так что глобальная сеть Интернет — это самый большой интернет в мире. Это техническая основа. Далее уже устоявшиеся разговорные формы.
2. Если акцент в обсуждении именно на сеть Интернет — явно или обсуждение технических подробностей — то с большой буквы. Так как Интернет — это уникальный объект.
3. Если в разговорном языке имеется в виду вид связи — то с маленькой. «Передать что-то по интернету», «Я интернет не оплатил» и т. д. Это уже устоявшиеся формы.
4. Если в разговорном языке имеются в виду «ресурсы в информационной среде» — «нашёл что-то в интернете» — то с маленькой. Однако в официальных текстах, письмах будет уместно написание с большой буквы — «сайт в сети Интернет».

В сухом остатке — технически правильно писать именно «Интернет». Однако это понятие стало настолько общеупотребительным, что в разговорной речи уже стало относительным и пишется с маленькой буквы. Технически неправильно, но таковы законы языка)
Можно и так и так — ошибки не будет.
Хорошо, тут конкретный вопрос: в статье напимано «найдёте их в Интернет», многие категорически считают, что это неправильно. Ваше мнение по этому конкретному случаю?
Конечно неправильно, названия склоняются.
В магазине Ашан, в Ашане.
В сети Интернет, в Интернете.
Как выше уже ответили, разумеется, и «Интернет» и «интернет» склоняются как обычно и одинаково.
Думаю, что пока в этих чипах не появится защита прошивки от чтения, коммерческой популярности им не видать. Подобные решения уже давно есть среди GSM модулей, однако отсутствие защиты от чтения вынуждает разработчиков ставить рядом микроконтроллер и общаться с GSM модулем через UART.
Смотря для какого применения, для «умного дома» этот чип и его предок ESP8266 то, что надо.
Для некоммерческих самоделок — да. А для чего-то более серьёзного этот чип не подойдет, как не подходил ESP8266. У того так вообще прошивка в отдельной микросхеме хранилась.
У того так вообще прошивка в отдельной микросхеме хранилась.

За 2 доллара? Пусть хоть на магнитных сердечниках хранит :)
Esp32 существует в нескольких версиях, те модули которые сейчас на рынке используют для хранения прошивки отдельную SPI флешку. Но уже появились esp32 чипы с встроенным 2mb flash.
Для коммерческих единичных продуктов на заказ — подходит.
Для массового производства… мало кому, но может подойти.
В esp32 есть два механизма защиты: secure boot — вы можете подписать свою прошивку ключом который хранится внутри чипа, тогда esp32 не будут загружать неподписанный код. И flash encryption — позволяет зашифровать код алгоритмом aes а ключ сохранить также во внутреннем хранилище чипа (efuses) http://esp-idf.readthedocs.io/en/latest/security/flash-encryption.html
У ESP32 есть средства для защиты от чтения — шифрование флеша. Описано в документации.
Спасибо за статью! Но стоило бы отметить, что в настоящий момент основным фреймворком для разработки под esp32 является esp-idf, основанный на FreeRTOS. Именно под него выпущены все драйвера для переферийных модулей ESP32.
Из плюсов нового esp еще стоит отметить возможность отладки через стандартный jtag и возможность расширения оперативной памяти до 4 мегабайт с помощью внешнего SPI PSRAM чипа производства espressif подключающегося параллельно SPI флешке с прошивкой. Правда модулей с этим чипом отдельно от более дорого комплекта разработки еще пока нет в свободной продаже, но как мы знаем, китайские станки работают быстро ;)
Естественно, на более низком уровне с соответсвующими инструментами можно сделать гораздо больше. Но дело в том, что порог входа в Ардуино значительно ниже и, соответственно, количество людей для которых это доступно значительно больше. Я думаю два эти уровня могут сосуществовать в полном мире и гармонии.
Чем этот модуль принципиально лучше какого-нибудь Raspberry / Orange Pi? Например, в сравнении с Orange Pi One? Цена с периферией сопоставима, если не выше, а на малинке / апельсине возможностей в разы больше, нет?
На мой взгляд это разные вещи, которые хороши каждая для своей области применения. Например, ESP32 имеет небольшие размеры, множество аналоговых пинов на борту, потребляет всего 130 мА, умеет засыпать и т.д и т. п.
Из недостатков стоит отметить крайне высокое энергопотребление с вкюченным радио ВайФай и БлюТус БЛЕ(!). Можно «обжечся» об чип.
Пока что в АПИ отсутствуют функции по неглубкому усыплению системы и БлюТуса с просыпанием по пррерыванию.
Это ограничивет применение только системами с блоком питания. Для батареечных поделок пока не подходит.

Почему-то не сказали про двухядерность. Вообще такая мощ за такие деньги впечатляет. Разобрабрались-бы с радио балуном и было бы классно.
Нас на уровне Ардуино и на данном этапе многоядерность не очень интересует. Мощь процессора такова, что индикатор загрузки в АМС всё время показывает загрузку «0», что бы мы не делали. Сейчас всё только начинается — скоро доделают драйвера и библиотеки и всё постепенно будет.
UFO just landed and posted this here
Дело в том, что веб обслуживается мощными серверами, а здесь речь идёт об устройсве размером с почтовую марку, которое потребляет 130 мА, поддерживает Wi-Fi соединение, делает кучу работы по обслуживанию сенсоров и актуаторов и при этом отдаёт страницу полную графики и скриптов за секунду с небольшим.
130мА это довольно много для того, чтобы обслуживать сенсоры и передавать данные.
Хорошо если рядом есть розетка. А если это какая-нибудь метеостанция, которой батарейку меняют раз в несколько месяцев?
Мне как-то не понятно почему другие BLE устройства (Nordic, TI, Mediatek и др...) расходуют 6-8мА для работы по BLE, а ESP в 20 раз больше?
Интересно, это какой-то недочет на уровне железа или АПИ/прошивка? Т.е. есть-ли надежда, что исправят?
В экосистеме АМС Ethernet и Wi-Fi сервера занимаются межконтроллерным «станционным» взаимодействием и это предполагает наличие питания. Задачи типа батарейных долгоживущих сенсоров «метеостанций» выполняют «спящие» Pro Mini с nRF24 интерфейсом на короткие дистанции и Lora на длинные.
Причем тут «полную графики и скриптов»? Веб сервер ничего не знает про графику и клиентские скрипты.
А секунда с небольшим — это _очень_ много, тем более для столь мощного контроллера, как ESP32.

Вот здесь например, посмотрите веб-сервер на ESP8266 отдает страницы за миллисекунды, обслуживая одновременно сотни запросов.
Подождите секундочку, как это веб сервер ничего не знает про графику и клиентские скрипты? А кто их тогда передаёт?
Сервер отдает файлы. Он ничего не знает про их содержимое. Он не имеет никакого отношения к рендерингу графики и исполнению клиентских скриптов. Ему абсолютно без разницы, картинку он отдал по запросу клиента или текст или исполняемый файл.
Единственное на что может отразиться содержимое, это на сжимаемость данных, если сервер на лету жмет отдаваемые файлы gzip'ом. Упомянутый мною сервер жмет. И при этом отдает файлы на 2-3 порядка быстрее вашего.
Как вы это объясните?
Не, не, не, так дело не пойдёт. Существуют объективные показатели. Скриншот с замерами скорости в статье видите? Там видно, что файл размером 63 КБ передаётся около 350 мс (зелёная часть линии). На 3 порядка быстрее это 0,35 миллисекунды. Вы хотите сказать, что тот (уважаемый) сервер умудряется отдавать на ESP файлы в 63 КБ с флеша за 0,35 миллисекунды? Это невозможно физически и подобные заявления нужно сопровождать объективными замерами и скриншотами в студию.
По приведенной мной ссылке есть и замеры и графики.
Клиентский скрипт выполняется на клиенте, для сервера это просто жалкие килобайты, должны улететь мигом. Графика — это проверка сквозной скорости ввода-вывода, не более того. Ну и опять же — пара мегабайт на страницу, не более. Две секунды — как-то многовато заучит. Вот если бы какой-нибудь хитрый php с динамической генерацией страниц — это другое дело. Но на таком железе такие фокусы стараются не делать.
Так в АМС и работает динамическая генерация страниц и называется эта технология AMS Matrix Engine. Сервер на лету собирает страницы из кусков на диске (аналог include), макросных вставок и динамической генерации кода прямо из скетча Ардуино. Это и позволяет как угодно манипулировать содержимым страниц и создавать сайты на контроллерах с различным содержимым, различным дизайном и различной топологией. В дистрибутиве таких сайтов аж 7 штук.
UFO just landed and posted this here
Там проблем и мест для оптимизации на всех уровнях огромное количество. Безусловно время загрузки страницы и реакции сервера можно значительно сократить, тут нет никаких сомнений.

Эх, с такой мощью, интересно, хватит ли ему мощности кодировать/декодировать звук gsm 711 a/u кодек ом для sip телефонии? Можно было бы дешёвые sip -систему оповещения делать на коленке..

Модуль интернет-радио появился недавно в прошивке wifi-iot.com для ESP32 — т.е. с половиной задачи вроде как справляется.
Хотя почему с половиной — система оповещения штука односторонняя в отличии от интеркома.
Так что похоже все шансы есть — осталось SIP-стек под ESP32 найти ;-)
А зачем? Используйте тот же twilio, вам каждое оповещение обойдется в пару центов и хоть с pica вызывайте.

Спасибо за статью. Сразу себе один заказал для своего кошачьего корм диспенсера :)

О, это интересно! Напишите пожалуйста про корм диспенсер. Более всего интересует механическая часть.

пока хотя бы nodeMCU не появится для это штуки — нафиг надо

Тоже повелся на рекламу и обжегся, в буквальном смысле.Греется жутко в закрытом корпусе использовать нереально, энергопотребление как у телефона на зарядке. Лучше бы я две ESP8266 взял за те же деньги.
Спасибо за статью. И все же причин платить в три раза больше не нашел. В той же esp8266 есть енерго-независимая память, а количество пинов — проблема которая решаеться подключением какого нить pcf8574 по I2C.
Сделал недавно очиститель воздуха из воздушного фильтра для газели и вентилятора. Теперь хочу управлять им по w-fi и расписание настроить. Как думаете стоит ли покупать ESP32 или обойтись 8266?
ESP8266 никто не снимал со счетов, если ТТХ этого модуля подходят для вашего конкретного проекта, то нет никаких причин не использовать его. ESP32 хорош для продвинутых проектов и как пособие для экспериментов и ознакомления с современными технологиями.
В ESP8266 сделан ряд грубых программных ошибок, в том числе архитектурных и исправлять их никто не будет, клепаются только заплатки на найденные ошибки. Поэтому ESP8266 никто их производителей не использует в серьезных проектах, наверно единственный массовый продукт на ESP8266 — это ITEAD Sonoff, больше я не видел, всякие китайские поделки с Али не в счет.

Хочется верить, что с ESP32 такого не будет.
Модули Sonoff прекрасно работают. Как вы справедливо заметили, это массовый коммерческий продукт и он был бы невозможен, если бы модули «глючили». Если это работает у Sonoff, то почему это нельзя использовать в DIY? Мой личный опыт тестирования АМС на ESP8266 говорит о многомесячной беспроблемной работе, о том же говорят отзывы пользователей АМС и я не вижу никаких причин, чтобы не использовать ESP8266.
>>Если это работает у Sonoff, то почему это нельзя использовать в DIY

Можно, почему же нельзя.
Ниша ESP8266 — это как раз DIY, дальше этого он не ушел, я про это говорю.

А можете рассказать про эти ошибки или показать где почитать?

Про эти ошибки очень много написано на форуме esp8266.ru, там есть пользователь pvvx, который собственно их и раскопал
Многие недоработки конечно исправили, но исправили не путем переписывания неправильно организованной архитектуры, а путем написания заплаток.
у меня этот мегасервер не взлетел, штука интересная, но по установке очень бесявая, напоминает линукс 20ти летней давности. Была тут статья о том какая версия IDE нужна и что куда закнуть, условий на пару страниц текста. Убил на неё вечер, запорол IDE всей этой канителью с прописыванием путей, чуть не потерял все свои скетчи и пришел к выводу что нуегонафиг.
Вы правы, у новичка процесс первого запуска может вызвать проблемы. Там мног важных и неочевидных моментов. Но на сайте есть подробная документаци. В крайнем случае есть емейл лаборатории и все, кто обращался за помощью сумели запустить АМС.

У ESP8266 есть ограничение режима DeepSleep до, примерно, 30 минут. Как дела обстоят у ESP32? Можно увеличить время сна до нескольких часов?

Я пока не разбирался с этим вопросом. Как я уже отмечал выше, в экосистеме АМС проводные и Wi-Fi контроллеры это что-то вроде информационных хабов, которые работают постоянно и требуют соответствующего питания. Все «спящие» и «батарейные» задачи выполняют Pro Mini с nRF24 или Lora интерфейсом и связываются они как раз с такими хабами, которые маршрутизируют данные и команды по распределённой сети до места назначения. Это очень гибкая архитектура, причём каждый хаб относительно недорогой, потребляет всего около 100 мА, имеет собственный веб-сервер и множество сайтов и может содержать до 32 ГБ информации, графики, скриптов, 3D моделей, визуализаций, баз данных и т. д. и т. п.
А вы как я погляжу весьма упорны в своём нежелании вести разработку на GitHub, уже 2 года держитесь однако.
Никто не «держится», GitHub это инструмент, а не религия и если мне будет удобнее использовать в работе GitHub — я буду его использовать.
и если мне будет удобнее использовать в работе GitHub — я буду его использовать

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

Да работайте как угодно, хоть на Commodore код пишите, мне то что.

И всё это я прекрасно понимаю

То есть вы сознательно сильно ограничиваете количество пользователей и разработчиков своего проекта?
Зачем?

Получается немного странная ситуация — у вас в профиле нет ни одного проекта и ни одной статьи и вы с упорством пытаетесь указать автору десятка дистрибутивов для десятка платформ


Понимаете, не нужно быть поваром чтобы сказать что в супе плавает муха.

Просто ГитХаб это стандарт если вы хотите чтобы у проекта было больше 2 разработчиков.
Так же ГитХаб значит большую видимость проекта для потенциальных пользователей и большее доверие к проекту с их стороны.
Сделать что-нибудь общественно-полезное кроме словоблудия не планируете?
Планирую:
Выложите проект на гитхаб.
Это и было бы общественно-полезным
Проект выложен на Гитхабе два года назад энтузиастами — каждый желающий может развивать его или сделать свой форк и развивать как хочет.
Проект выложен на Гитхабе два года назад энтузиастами

Я в курсе.

каждый желающий может развивать его или сделать свой форк и развивать как хочет.

Итого несколько проектов повторяющих друг-друга.
В проекте X будет решён баг а в проекте Y будет добавлена фича, какой выбрать?
Энтропия — во.
Меньше словоблудия, больше дела — выбирайте любой и переходите к обшественно-полезному делу, как планировали.
Я попробовал ESP32 модуль. У меня возникла с ним проблема организации AP с WPA2 шифрованием. Не удалось корректно сконфигурировать. А поскольку все параметры зашиты глубоко в библиотеке, то для моих проектов ESP32 не годится.
Не совсем понятно про какой «бутерброд на Мегу» вы говорите, на ESP32 существует большой выбор плат (dev board) со всей обвязкой и встроенным USB – UART интефейсом, полностью готовых для работы и прототипирования. В Китае от 500 рублей, в России дороже.
Я имею ввиду совместимую по формфактору с Ардуино плату как на данном примере с ESP8266 (все в одном).
Вы меня извините, но у ESP32 настолько удобный родной SDK на базе FreeRTOS (ESP-IDF), что никакая ардуина с допотопной super loop архитектурой не нужна. Тем более, что Arduino для ESP32 всё равно работает поверх родного SDK. Для ESP6266 SDK был кривоват.
Забавный комментарий. Забавен он тем, что с этим постулатом никто не спорит. Само особой, что быть богатым и здоровым лучше, чем бедным и больным. Про Arduino речь идёт только по одной причине — потому, что для большинства людей Arduino доступно для понимания и есть шанс разобраться с ним и использовать в своих целях ещё в этой жизни, в отличие от голого C++, SDK и FreeRTOS. Собственно популярность Arduino говорит сама за себя и в адвокатах не нуждается.
На сайте разработка замерзла в 2017-18…
Sign up to leave a comment.

Articles

Change theme settings