Comments 50
Я видел такое, что вам, людям, и не снилось. Атакующие корабли, пылающие над Орионом; Лучи Си, разрезающие мрак у ворот Тангейзера. Все эти мгновения затеряются во времени, как... слёзы в дожде... Пришло время умирать.
Восемь лет назад, чтобы не "зашквариться" об Ардуино, я собирал под линуксом компилятор GGC с патчами для Tensilica Xtensa. Оптимизировал нашу прошивку, чтобы она полностью из RAM выполнялась, а не с флешки. Воевал с WiFi стеком, который цельнотянут с BSD. Эх, были времена...
Как поднять Wi-Fi на ESP8266 и не зашквариться об Arduino
Использовать замечательный родной SDK на бвзе FreeRTOS
Если АТ-команду существуют, должен же ими кто-то пользоваться
Обычно ими пользуются те, кто работает с такими железками как SIM900 и иже с ними. Ну или с железными диалап-модемами.
Или если так уже устроена и спроектирована система в которую внедряется "модем". В новых заработках не вижу особого смысла в сей абстракции, если только оно не должно отвечать каким-то строгим требованиям.
Это если зашквариться об Ардуино. Шутка. Для модемов типа sim800 есть замечательный компонент в esp-idf, который реализует PPP over serial. В Arduino ide, вроде, тоже можно использовать.
Понятно, что под ESP нашлось, но есп относительно молодая платформа, в то же время можно спаять простейший преобразователь уровня и воткнуть sim900 в com-порт 80486 компа и пообщаться в консоли. Даже смски отправлять. Или с AVR-а \PIC условного. Большинство сигнализаций (для зданий и помещений) именно так и устроены (те, которые ставят ЧОПы всякие).
не зашквариться об Arduino
Как говорится, вечер в хату, господа программисты. Кофе-брейк в радость, печенька в сладость.
а что не так с arduino ?
Зашквар для профи))
Подозреваю, что в средние века переписчики книг в таком же духе о печатном станке отзывались. "Это что же теперь все кто хочешь книги читать смогу и грамоте учиться. Действительно, что же это делается!"
Мне нравится ваша аналогия. Действительно. Рукописные книги это - крутые иллюстрации (или нет, но все же), это - занятие для многих монахов, занятие прибыльное условному монастырю, опять же переписчика надо учить, и на выходе получаем каллиграфиста и художника в одном лице (или двух) - кроме переписи книг эти люди становятся грамотными специалистами. А станок - херак и в продакшн.
Но аналогия эта ложная. Ардуино - это как представьте дать людям из средневековья возможности самых навороченных сегодняшних или даже будущих LLM. Все, и картинки, сюжет и тексты будет генерировать она. А тебе достаточно скормить ей нужный промт. Возможно "заклинания" - это прообраз промта мечтателей того времени. "Эх, был бы я писателем, написал бы вот такую книгу, там вот это и вот то, а потом вот так, ух!". И вот заклинания такие люди ищут, собирают в сборники, пишут с их помощью книги...А потом удивляются, почему даже при самом навороченном промте их книги совершенно не хотят читать.
---передал вышенаписанное локальной нейронке "как ты видишь развитие этой истории дальше?"----
Затем нашелся упоротый чел, который настолько хотел стать писателем и написать книгу своей мечты, что писал промт 2 года. Но когда он его дописал, он не стал его отправлять LLM, а просто оформил в виде книги. И это стало бестселлером!
Нет эта аналогия работает не так. Раньше для книги отдельный специалист делал пергамент, переписчик каллиграфически писал текст, художник рисовал миниатюры, а переплетчик все это оформлял в красивый переплет из человеческой кожи. Все эти специалисты потратили годы на освоение своих ремесел, а на выходе получался предмет престижного потребления, который может себе заказать герцог или барон из тех, кто по богаче. А тут, кто-то взял и сделал дешевый букварь для крестьян так, что они теперь своими немытыми руками смеют кривенькие буквы на бересте царапать в меру своего разумения и так как им удобно в их конкретных условиях, а некоторые даже умудряются этот навык монетизировать. Разумеется, это вызывает раздражение у тех, кто чувствовал себя частью интеллектуальной элиты и кто видит, что оказывается не нужно тратить годы для того, что бы сделать, что-то подобное обычному результату их работы.
Лапша из if не читаема. Воспользовались бы switch-case вариантом.
Велосипедов полон код. Особенно доставило ваше "!0".
С комментариями переборщили, следует писать код так чтобы он был понятен с минимумом комментариев.
"Магических" констант в коде не должно быть, ваша переменная SostWiFi постоянно сравнивается с этими "магическими" константами.
Лапша из if не читаема. Воспользовались бы switch-case вариантом.
Не читаема? ну и не читайте! Я бы воспользовался switch-case, но мне нужен if.
Велосипедов полон код. Особенно доставило ваше "!0".
Некоторые пишут false-true, я предпочитаю 0 и !0, Меньше букв, больше смысла. В первом стандарте Си они и были так определены, привычка.
С комментариями переборщили, следует писать код так чтобы он был понятен с минимумом комментариев.
Кому следует? Последствия многократного код ревью и рефакторинга
"Магических" констант в коде не должно быть, ваша переменная SostWiFi постоянно сравнивается с этими "магическими" константами.
Это вы программистам на бейсике скажите, там в каждой строке магическая константа.
Вы очень болезненно отреагировали на мой комментарий. Я тоже на критику болезненно реагировал сразу после вуза.)
Если вы пишете для себя то пишите как вам удобно и как вам красиво. А если пишете для других людей, а опубликованная статья подразумевает, что вы написали этот код не только для себя, то пишите код так, чтобы другим людям было приятно его читать. А то получится, что вы "изобрели вечный двигатель открытого типа", но никто не смог в документации разобраться как он работает.
Касательно комментирования кода. Многие имена переменных совершенно ни о чем не говорят при первом взгляде, когда в голове еще нет контекста. Я бы даже предложил провести минификацию исходного кода, и меньше объема занимать будет, и читаемость не ухудшится.)
О магических константах - 42. Вы сразу же должны понять что это за константа такая.)
если бы у рыбы была шерсть..
Если есть устройство, умеющее в команды модема..
в заголовке же сказано, чтоб не зашкварится.
Зачем мне осваивать Ардуино?
У меня в стеке освоенные МК, с кучей наработок.
Лепить на ардуино сервер, лепить какой-то протокол для обмена данными между основным МК и ESP... Плодить слои абстракций, привязанных к конкретному устройству...
Уж лучше возьму готовое устройство WiFi-модем, напишу универсальную библиотеку и подключу к своей системе, в последствии и к другим системам. И буду счастлив.
Имхо, паять на плату модуль питания с Aliexpres это кратно больший "зашквар", чем Arduino.
Ни разу нет. Они там вылизаны, как яйца леопарда, если брать в местах с хорошими отзывами и долгим акком. А оптом вообще любое качество заранее заказать можно, от мусора до отличного.
Сделать свой дизайн питалова с первого раза без ошибок, даже по дш - это задача уровня "сеньор проектирования". Если человек по этой ветке работает в крупной компании и качает скилы, да, ему некошерно использовать модуль: экономика против, да и в целом это тупость. Если же это любитель или "китайский подвальчик" - бери модуль, если хочешь сделать красиво. Ну или скопируй его 1 в 1, если предполагается полностью автоматическая сборка. Не надо ходить по граблям.
Прекрасно. Мы увидели возможности ESP-шки. Но у меня остался один вопрос: ЗАЧЕМ?... Вот я сейчас достану из коробки одну из кучки 8266, подключу ее к своей рабочей системе... Чтобы ЧТО? Я, конечно, могу вспомнить AT-команды, которыми мучал свой старенький Zyxel, но этот Зухель уже давным давно в своем кремниевом раю...
А давайте на базе ESP-шки соберем Спектрум и будем в него шпилить с осознанием высоты своего величия... Или вернемся к DOS, телефонным модемам на 2400 и FIDO. Развернем эволюцию вспять и посрамим дедушку Дарвина!
Извините. Вырвалось прямо на клавиатуру.
Когда возился с этим ESP, то насколько помню, то там была куча примеров с помощью которых запустил все что мне надо минут за 5...
Зачем эта портянка тут? Кто-то будет это использовать? Не думаю...
Емнип esp01 искаропки прошита как модем. т.е. если нужен модем с АТ командами - можно просто взять готовый. Где должен запускаться предложенный автором веб-сервер - на модеме, или на внешнем контроллере, я что-то не очень понял.
У автора веб-сервер крутится на внешнем контроллере, ESP используется как WiFi модуль, управляется АТ командами.
Мной таким же образом сделан MQTT клиент, с двумя вариантами беспроводной сети GSM или WiFi
Зашкварился AT командами
2024 год - уже как 11 лет "професионналы" продложают хоронить Arduino.
...to be continued
Почему писать в Arduino IDE - зашквар (сам в свое время поднабравшись опыта перешел на AVR Studio и чистый C) - но это же просто набор макросов, а под капотом тот же avr-gcc? И что, всех кто пытается делать минимальные реализации Python/JS делать для AVR - сразу "под шконку и в петушиную масть"?
Ардуино это не зашквар. Это суперклей и синяя изолента мира железа/программирования. Вот прямо сейчас парой килобайт своего кода я завел связку ESP32 + EINK 7' - оно подписывается на mqtt топики устройств умного дома и показывает результат. Что-то считает. Сколько я такое делал бы без ардуино и модулей? Полгода? А с ардуино два вечера вместе с печатью корпуса. Да, бинарь весит полтора метра, а не пять килобайт, как хотелось бы гуру - но модули ESP32 настолько дешевые и мощные, что как бы пофиг на эту неоптимальность. Стабильность? Собрал весь умный дом на этих самых модулях - на многих аптайм уже по полгода... Разве что никаких болтающихся проводков, все паяю, прикручиваю, или заливаю пластиком, если нельзя закрепить нормально.
Так что всему свое место. Иногда нужно делать что-то дендрофекальным способом, и ничего плохого в этом нет. Лишь бы было понимание, где так можно, а где нет.
Чет дорогие штуки
на алике за 9k рублей за 7 цветов в 7 дюймов и драйвером в комплекте - дорого?
Главное чтобы старый планшет прожил эти полгода ;) Как у него с деградацией батареи и дисплея?
А хобби-:проект и не должен окупаться.
Висит леново и самсунг, уже больше года - полет нормальный. Брал их уже столетними б\у, смотрел только на внешний вид и версию андроида. Самсунг олед, но ничего за год не выгорело... Батарею вообще можно снять, заменив подходящим ионистором, чтобы при мигании света планшет не вырубался.
7 дюймов, черно-красные. На авито накопал дохлые электронные ценники из какого-то супермаркета, но экраны в них живые. Плюс экраны ровно те, которые подходят под либу для esp32. Повезло.
Старые планшеты 2 штуки использую как пульты управления, тоже взял по тыще каждый, перешил на AOSP, сделал лончером openhab и повесил на стену - уже год как идеально. Но в спальню, например, вешать планшет плохая идея - он светит сильно очень. Там для показометра eink идеально подходит.
Спасибо за статью и за код.
Грешен. Занимался такой же херью. Чтобы не связываться с ардуиной.
Изгалялся с AT командами и отловом состояния неонки внутре родной прошивки от Экспресиф. Исплевался.
А потом перешел на framework = arduino в platformio. И забыл как страшный сон и AT гемморой, и заморочки Arduino ide
Сначала подумал что у меня в новостях всплыл какой то старенький проект пяти - семи летней давности. Потом смотрю на дату...)) Ну хз, по мне так AT команды избыточны да и теряется тонкая настройка модулей.
Потом на те же модулях можно например поднять модбас - разгрузив основной модуль или еще какой протокол обмена. Да и при желании на весь проект можно использовать одну ESP-ху без посредников.
Что по статье - в целом не плохо, но немного устарело.))
Как поднять Wi-Fi на ESP8266 и не зашквариться об Arduino