Esp32 + arduino core + freertos + blynk = дом с зачатками разума

Что такое OTA программирование ESP8266?

OTA программирование позволяет обновлять/загружать новую программу в ESP8266 с помощью Wi-Fi вместо того, чтобы требовать от пользователя подключить ESP8266 к компьютеру через USB.

Функциональность OTA чрезвычайно полезна в случае отсутствия физического доступа к модулю ESP. Это помогает сократить время, затрачиваемое на обновление каждого модуля ESP при технической поддержке.

Одной из важных особенностей OTA является то, что один центральный объект может отправлять обновления нескольким модулям ESP, использующим одну и ту же сеть.

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

Шаг 3. Загрузите новый скетч «по воздуху»

А теперь давайте загрузим новый скетч по воздуху, т.е. через Wi-Fi.

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

В качестве примера мы включим простой скетч Blink в код BasicOTA. Не забудьте изменить переменные SSID и пароля на учетные данные вашей сети.

Изменения в программе BasicOTA выделены номерами строк.

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

Как только вы скопируете приведенный выше скетч в Arduino IDE, выберите Инструменты → Порт, и вы должны увидеть что-то вроде этого: esp8266-xxxxxx at ip_адрес_вашего_esp. Если подобного не будет, возможно, вам придется перезапустить IDE.

Рисунок 6 – Выберите порт OTA в Arduino IDE

Выберите порт и нажмите кнопку «Загрузить». Через несколько секунд новый скетч будет загружен. И вы должны увидеть на плате мигающий светодиод.

Рисунок 7 – Рабта тестового скетча Blink на ESP8266 NodeMCU

Troubleshooting

If you try to upload a new sketch to your ESP8266 and you get this error message “esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header“. It means that your ESP8266 is not in flashing/uploading mode.

Having the right board name and COM port selected, follow these steps:

  • Hold-down the “BOOT/FLASH” button in your ESP8266 development board
  • Press the “Upload” button in the Arduino IDE to upload your sketch:
  • When you see the  “Connecting….” message in your Arduino IDE, release the finger from the “BOOT/FLASH” button
  • After that, you should see the “Done uploading” message

Your ESP8266 should have the new sketch running. Press the “ENABLE/RESET” button to restart the ESP8266 and run the new uploaded sketch.

Как программист читает «Происхождение видов» Дарвина

Во время чтения «Происхождения видов путем естественного отбора» Чарльза Дарвина, меня не покидало стойкое дежавю. Позже я понял, что механизмы, описанные в книге сильно коррелируют с механизмами enterprise разработки в больших компаниях. Где в качестве условий окружающей среды выступают постоянно меняющиеся бизнес-требования и программисты, а в качестве организмов — код.
Для лучшей демонстрации этой идеи, я взял параграф из книги Дарвина и биологические термины заменил на термины из мира разработки. Сами предложения остались оригинальными. Язык немного специфичный, но в целом, думаю, понятный.

Глава V. Законы вариации. Краткий обзор

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

Установка Arduino IDE через Boards Manager

  1. Запустить Arduino IDE, далее Файл — Настройки — в поле Additional Boards Manager URLs вставить ссылку на стабильную версию
    http//arduino.esp8266.com/package_esp8266com_index.jsonили для nightly build
    http//arduino.esp8266.com/staging/package_esp8266com_index.json, нажать OK (В это поле вы можете вводить несколько ссылок, разделенных запятой)
  2. Инструменты — Плата — Boards Manager
  3. В Boards Manager в поле фильтра введите esp8266 или вручную пролистайте список и кликните на ESP8266 by ESP8266 Community Forum
  4. Кликните Install и дождитесь окончания загрузки (около 130 Мегабайт). Если загрузка произошла слишком быстро, возможно, что вы уже устанавливали Arduino IDE для ESP8266 и потребуется почистить кэш Boards Manager, иначе у вас останется установленной старая версия. Нужно сначала деинсталлировать старую версию, а потом необходимо удалить файлы кэша. Для Win7 x64 удалите файлы из папки C:\Users\Пользователь\AppData\Roaming\Arduino15 и повторите все, начиная с п.2
  5. Закройте Boards Manager и в меню Инструменты выберите Плата — Generic ESP8266
  6. Установите частоту вашего модуля 80 или 160Mhz, размер флеш памяти и выберите последовательный порт, к которому подключен ваш USB-TTL адаптер

Версии

  • 1.0.0
  • 1.1.0
    • Восстановлена совместимость с некоторыми библиотеками (макросы pinToMask)
    • Добавлен выбор частоты в меню (поддержка 16/8 МГц плат с корректнным временем и портом)
  • 1.2.0
  • 1.3.0
  • 1.4.0
  • 1.5.0
    • Облегчён analogRead
    • Чуть исправлена инициализация watchdog
  • 1.6.0
    • Пофикшен INPUT_PULLUP
    • Добавлена расширенная подсветка синтаксиса (регистры и байты)
    • Убрана поддержка ATmega168
    • Изменена логика выбора платы
    • Добавлена поддержка тактирования от внутреннего генератора:
      • 8 МГц
      • 1 МГц (только для without bootloader)
      • 128 кГц (только для without bootloader)
  • 1.7.0
    • Облегчена сборка
    • Добавлено корректное время (millis/delay) для частоты 128 кГц
    • Функции millis() и micros() вырезаны при отключении таймера 0 (через меню выбора платы)
    • Функции delay() и delayMicroseconds() работают при отключении таймера 0 (через меню выбора платы)
    • Вывод в порт корректно работает при отключении таймера 0 (через меню выбора платы)
    • Ускорен uart (обычный буфер заменён на циклический) — чтение быстрее в 2 раза!
    • Добавлена настройка BOD (через меню выбора платы)
    • Добавлен Clock Out — вывод тактирования на пин D8 (через меню выбора платы)
    • Добавлена настройка Save EEPROM (через меню выбора платы)
    • Добавлена настройка Initialization отключить инициализацию периферии при старте скетча (через меню выбора платы)
    • Огромное спасибо Pasha13666 за помощь в доработке!
  • 1.7.1
    • Поправлены баги с I/O
    • Улучшен uart
  • 1.7.2
  • 1.7.3
    • Сокращён аналогРид
    • Убран расширенный ШИМ
    • Убран сброс WDT (не работал)
    • Пофикшены различные баги
    • Убран lightInit
    • Добавлен загрузчик optiBoot v8
  • 1.7.4
    • Поправлены баги с Serial
    • И не только с Serial
    • Оптимизированы прерывания
  • 1.8
    • Поправлена критическая ошибка с таймером
    • Исправлена куча багов
    • Дописан keywords
    • Всё протестировано на всех загрузчиках (спасибо Egor!)
  • 1.8.1
    • Пофикшен вывод float в uart
    • В uart добавлен вывод с базисом числа
  • 1.8.2
    • uart обёрнут в класс
    • Добавлена возможность заменить вызовы Serial на uart (через меню выбора платы)
  • 1.8.3
  • 1.8.4
    • Убраны дублирующиеся программаторы
    • Ещё чуть ускорен uart
  • 1.9.0
  • 1.10.0
    • Расширена подсветка синтаксиса
    • Пофикшен tone
    • Пофикшен pulseIn (но выдаёт разрешение 4 мкс)
    • Добавлен avr-gcc v8 под Win32 и Linux
    • Ускорен IO
  • 1.10.1
  • 1.10.2
    • Пара багфиксов с IO
    • Вернули заголовочные для WiFi
  • 2.0
    • Убраны все дополнительные функции кроме analogPrescaler и digitalToggle. Все «приколы» переезжают в отдельную либу GyverHacks
    • Почищены и отформатированы файлы
    • Исправлен конфликт с IP
    • Подкорректировано меню платы
    • Исправлена уязвимость в pinMode
    • Cнижен вес
    • Повышена скорость некоторых функций
    • Исправлены ошибки в пустых загрузчиках
  • 2.0.1
    • Исправлена ошибка с delayMicroseconds
    • Исправлено предупреждение файла у «без загрузчика»
  • 2.0.2
    • Ускорен digitalToggle
    • Обновлён uart
    • Чуть ускорен analogRead
    • Добавлена поддержка клока 20 МГц

Добавление Digispark в список плат IDE Arduino

Программирование Digispark осуществляется из среды IDE Arduino, для этого в нее должен быть добавлен пакет Digistump. Это делается через Менеджер плат, который появился в версии IDE 1.6.4. Для начала скопируйте в буфер обмена следующую строку:http://digistump.com/package_digistump_index.json

Файл > Настройки

Следующий шаг — установка файлов для поддержки Digispark. Переходим в меню Инструменты > Плата > Менеджер плат… Чтобы не искать в списке интересующий нас пакет, отфильтруем его, введя в текстовом поле слово digispark. Выбираем пакет Digistump AVR Boards и нажимаем установить. После выполнения установки закрываем окно Менеджера плат:

Arduino IDE для ESP8266: быстрый старт

1. Подключить USB-TTL к USB

2. Подключить ESP8266 к USB-TTL как обычно. Если вы подключили ESP8266 по схеме без поддержки автозагрузки прошивки (не подключены DTR и RTS), то вручную соедините GPIO0 с землей, передерните питание модуля — все готово для  прошивки

3. Запускаем Arduino IDE

4. В меню Инструменты — Плата — Generic ESP8266 board (в самом низу)

5. В меню Инструменты выбираем порт, к которому подключен наш USB-TTL

6. В меню Инструменты — выбираете частоту, размер флеш памяти вашего модуля

7. В меню Файл — Примеры (Образцы) — ESP8266WiFi — WiFiWebServer

8. В скетче заполняете SSID и пароль вашей WiFi сети

9. Жмем кнопку компиляции и загрузки скетча

10. Ждем окончании процесса прошивки. После прошивки, если модуль подключен по схеме без поддержки автопрошивки, отсоедините GPIO0 от земли и передерните питание модуля без отключения USB-TTL от питания

11. В меню Инструменты — Монитор последовательного порта

12. Выбираем скорость 115200

13. Смотрим что происходит в терминале

14. Когда модуль подключится к сети, то появятся надписи в мониторе «WiFi connected» и «Server started»

15. Ниже будет IP адрес вашего модуля ESP8266, например 192.168.1.248

16. Открываете любой браузер, в строке адреса вбиваете «http://192.168.1.248/gpio/1»

17. Смотрите монитор последовательно порта и если к ESP8266 к GPIO2 у вас подключен светодиод (через резистор, разумеется), то он включится.

18. Profit!

Автором этого проекта адаптации Arduino IDE для ESP8266 является наш соотечественник из Санкт-Петербурга Иван Грохотков.

Задать вопросы автору проекта Ивану Грохоткову aka igrr или сообщить об ошибке в Arduino IDE для ESP8266 можно в специальном разделе на нашем форуме.

Большая роль «маленького разговора»

О чем вы обычно думаете, когда встречаете кого-то впервые на работе / в лифте или когда вам предстоит сложный телефонный разговор с недовольным клиентом? Большинство носителей английского языка ответили бы: small talk. Как говорится, “Good beginning is half the battle!” (Хорошее начало – половина дела)

Почему же иностранцы уделяют в общении такое большое внимание ненавязчивому и ни к чему не обязывающему разговору?
Мое неравнодушие к small talk зародилось очень давно. Проводя годы жизни в стажировках заграницей, я привыкала к стандартам общения, принятых в тех странах, да и изучение английского зыка (а потом и методов его преподавания) в качестве профессии просто не оставляло шансов не впитать все тонкости нативного общения

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

Step 1: INSTALLING DRIVERS & Softwares

By default drivers for CP210X , which is a USB to UART converter mounted on the board is automatically installed when you plugin the board, if it doesn’t,

File downloaded from this zip file will have, drivers for both 32-bit and 64-bit OS, you will find two «.exe» files in this folder, Install-1) CP210xVCPInstaller_x64 — If you have 64-Bit OS2) CP210xVCPInstaller_x86 — If you have 32-Bit OS

Once the drivers are properly installed the caution symbol will disappear, and you will be able to see your board at COM port greater than 2,If it is still on COM port less than or equal to 2, then try changing the USB port you are plugging the board into.

Как прошить Digispark ATtiny 85.

Зальем в плату тестовый скетч, с помощью которого плата будет мигать встроенным светодиодом.

Для этого понадобятся:

1. Приложение Arduino IDE

2. Ссылка для менеджера плат

3. Добавить платы Digispark в приложение Arduino IDE

4. Установить драйверы для Digispark ATtiny 85.

Ознакомиться с приложение Arduino IDE http://kolotushkin.com

Запустите приложение Arduino IDE, зайдите во вкладку Файл/Настройки и в Дополнительные ссылки для
Менеджера плат: добавьте ссылку http://digistump.com /package_digistump_index.json и нажмите «ОК» (удалите пробел после .com).

Затем откройте вкладку Инструменты /Выбор платы /Менеджер плат

В открывшемся списке выбираем пункт “Digistump AVR Boards” и нажмите “Установить”.

Чтобы быстрее найти, впишите в окно поиска слово “Digistump” или просто “digi”.

Осталось скачать и установить драйверы.

Откройте архив Digistump.Drivers.zip и извлеките из него папку с драйверами Digistump Drivers. Это можно сделать простым перетаскиванием папки Digistump Drivers из архива в удобную для вас папку.

Затем подключите плату Digispark к компьютеру. Откройте Пуск/Панель управления/Диспетчер устройств. Найдите в списке устройство помеченное желтым треугольником (у вас может отобразиться как «Неизвестное устройство»), кликните на него правой кнопкой мышки и в открывшемся окне кликните обновить драйверы.

Затем выберите пункт «Выполнить поиск драйверов на этом компьютере»

Укажите путь к той папке, которую вы извлекли из архива. Нажмите кнопку далее. После обновления нажмите закрыть.

Если теперь устройство определено как Digispark Bootoalder без желтой отметки, значит все готово!

Теперь откройте скетч Blink, который находится во вкладке “Файл/Примеры/Basics/Blink”.

Так как скетч расcчитан для платы Arduino на которой светодиод подключен к 13 пину, то необходимо
заменить значение “13” на “1” потому как на плате Digispark светодиод подключен к 1 пину!

Затем в менеджере плат выберите плату Digispark (Default — 16,5mhz)

Нажимаете “Загрузить”. После чего произойдет компиляция и снизу появится сообщение (will timeout in 60
seconds), и вот только тогда в течении 60 секунд нужно подключить плату к USB порту для загрузки скетча!

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

Видео версия обзора платы Digispark ATTiny85. «Как прошить Digispark ATTiny85. Обзор платы Digispark ATTiny85»

Новое поколение разработчиков. Чем они отличаются и почему это нормально

Существует мнение, что незаметно в IT произошла революция. Для того чтобы стать разработчиком, сейчас не обязательно иметь профильное высшее образование. Многие вузы во всех странах стараются внедрять новые методики обучения, но система образования очень «неповоротлива», любые изменения занимают большое количество времени, а рынок ждать не будет.
Именно эту реальность мы учли в «Школе 21», где обучение построено на способностях человека находить информацию. Здесь используются методики без учителей, лекций и оценок, и это работает. Среди участников и те, кто никогда не программировал, и те, у кого есть какой-то опыт и техническое образование.
Одна из проблем в процессе обучения — предложения о работе, которые получают большое количество участников, ещё не пройдя даже половины пути. Из-за высокого спроса на разработчиков профессия программиста стала доступна практически всем.
Мы решили обсудить плюсы и минусы такого положения дел с руководителем IT-департамента, тимлидом и двумя участниками «Школы 21».

Uploading the Sketch

Uploading the Sketch to the ESP-12E

If you’re using an ESP-12E NodeMCU Kit, uploading the sketch is very simple, since it has built-in programmer. Plug your board to your computer. Make sure you have the right board selected:

You also need to select the Port:

Then, copy the code provided:

Click the “Upload” button in the Arduino IDE and wait a few seconds until you see the message “Done uploading.” in the bottom left corner.

Uploading the Sketch to the ESP-01

Uploading code to the ESP-01 requires establishing a serial communication between your ESP8266 and a FTDI Programmer as shown in the schematic diagram below.

The following table shows the connections you need to make between the ESP8266 and the FTDI programmer.

ESP8266 FTDI programmer
RX TX
TX RX
CH_PD 3.3V
GPIO 0 GND
VCC 3.3V
GND GND

If you have a brand new FTDI Programmer and you need to install your FTDI drivers on Windows PC, visit this website for the official drivers: http://www.ftdichip.com/Drivers/VCP.htm.

Then, you just need to connect the FTDI programmer to your computer, and upload the sketch to your ESP8266 board. You should see the “Done Uploading” message after a few seconds.

Install ESP8266 Add-on in Arduino IDE

To install the ESP8266 board in your Arduino IDE, follow these next instructions:

  1. In your Arduino IDE, go to File> Preferences

  2. Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into the “Additional Boards Manager URLs” field as shown in the figure below. Then, click the “OK” button:

    Note: if you already have the ESP32 boards URL, you can separate the URLs with a comma as follows:

  3. Open the Boards Manager. Go to Tools > Board > Boards Manager…

  4. Search for ESP8266 and press install button for the “ESP8266 by ESP8266 Community“:

  5. That’s it. It should be installed after a few seconds.

Introduction: Esp8266 12e With Arduino IDE With Solution+Examples

By pspranav7Pranav SharmaFollow

More by the author:

About: I am a hardcore IoT developer, i develop IoT based projects as a hobbyist as well as professionally as my source of earning. Software part such as Android Apps or Website and Hardware both are designed by me…

More About pspranav7 »

ABOUT- NodeMCU is an open source IoT platform. It uses the Lua scripting language, BUT this development board is now compatible to be programmed with Arduino IDE

esp8266 12e is a great way to achieve IoT with anything in a very cost effective manner, The ESP8266 is like an Arduino with a builtin WiFI.

FEATURES ==> —10 GPIOs D0-D10 & ADC A0

—PWM functionality

—Communicaiton = I2C , SPI , 1-Wire

Note:- IT IS PREFERABLE TO USE THE LATEST VERSION OF ARDUINO IDE OR AT LEAST GREATER THAN v1.5, TO AVOID ANY POSSIBLE ERRORS THAT MIGHT COME WITH OLDER VERSIONS

NOTE :- IF YOU ARE LOOKING FOR SOLUTION ON «Board nodemcuv2 (platform esp8266, package esp8266) is unknown» PROBLEM, THEN YOU CAN DIRECTLY SKIP TO STEP 5.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *