Pull to refresh

Hellow hubr из esp32 с исползованием Platformio и framework espidf

1 Start


Приветствую %user% в данной статье мы быстро пробежимся о том как собрать и настроить корабль для путешествие в дивный чудный мир iot на esp32 .


1.1 Используемые П.О и устройства


  • Kubunty 18 ->
    Linux x 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  • Текстовый редактор Atom
    Atom: 1.26.1
    Electron: 1.7.11
    Chrome: 58.0.3029.110
    Node: 7.9.0
  • Toolchain разработки PlatformIO
    Home 1.0.6
    Core 3.6.2a2
  • TTGO MINI32 V2.0 ESP32

1.2 Первоначальная настройка


Начнем с установки текстового редактора Atom:


wget -O atom-amd64.deb https://atom.io/download/deb

Gdebi

программа для установки deb пакетов. Преимущество её в том, что она может устанавливать deb пакеты, используя автоматическое разрешение зависимостей (автоматически загружает и устанавливает необходимые пакеты). И ещё не нужно запускать Центр приложений Ubuntu для установки загруженного deb пакета в графическом режиме, а для этой цели используется легковесный конкретный инструмент.


Далее установим gdebi которую мы будем использовать для установки ранее загруженного пакета Atom. А также clang.


sudo apt install gdebi-core clang 

Используем gdebi для установки пакета с зависимостями .


sudo gdebi atom-amd64.deb 

Проверим на работоспособность командой atom в консоле


Platformio настройка


1.Для начала устоновим нужные пакеты в атом для этого
надо перейти Menu: Edit > Preferences > Install
2.Провести поиск пакета platformio-ide
3.Установить кликнув install .


Ещё один способ установки ввести в командную строку


 apm install platformio-ide 

Также можно посмотреть, установилось ли или нет командой :


 apm list 
 apm list | grep platformio 

мой список пакетов

Built-in Atom Packages (92)
├── atom-dark-syntax@0.29.0
├── atom-dark-ui@0.53.2
├── atom-light-syntax@0.29.0
├── atom-light-ui@0.46.2
├── base16-tomorrow-dark-theme@1.5.0
├── base16-tomorrow-light-theme@1.5.0
├── one-dark-ui@1.11.0
├── one-light-ui@1.11.0
├── one-dark-syntax@1.8.2
├── one-light-syntax@1.8.2
├── solarized-dark-syntax@1.1.4
├── solarized-light-syntax@1.1.4
├── about@1.8.0
├── archive-view@0.64.3
├── autocomplete-atom-api@0.10.7
├── autocomplete-css@0.17.5
├── autocomplete-html@0.8.4
├── autocomplete-plus@2.40.5
├── autocomplete-snippets@1.12.0
├── autoflow@0.29.3
├── autosave@0.24.6
├── background-tips@0.28.0
├── bookmarks@0.45.1
├── bracket-matcher@0.89.1
├── command-palette@0.43.5
├── dalek@0.2.2
├── deprecation-cop@0.56.9
├── dev-live-reload@0.48.1
├── encoding-selector@0.23.8
├── exception-reporting@0.43.1
├── find-and-replace@0.215.5
├── fuzzy-finder@1.8.1
├── github@0.12.0
├── git-diff@1.3.9
├── go-to-line@0.33.0
├── grammar-selector@0.50.0
├── image-view@0.62.4
├── incompatible-packages@0.27.3
├── keybinding-resolver@0.38.1
├── line-ending-selector@0.7.5
├── link@0.31.4
├── markdown-preview@0.159.20
├── metrics@1.2.6
├── notifications@0.70.5
├── open-on-github@1.3.1
├── package-generator@1.3.0
├── settings-view@0.254.2
├── snippets@1.3.3
├── spell-check@0.73.4
├── status-bar@1.8.15
├── styleguide@0.49.10
├── symbols-view@0.118.2
├── tabs@0.109.1
├── timecop@0.36.2
├── tree-view@0.221.3
├── update-package-dependencies@0.13.1
├── welcome@0.36.6
├── whitespace@0.37.5
├── wrap-guide@0.40.3
├── language-c@0.59.3
├── language-clojure@0.22.7
├── language-coffee-script@0.49.3
├── language-csharp@1.0.1
├── language-css@0.42.10
├── language-gfm@0.90.3
├── language-git@0.19.1
├── language-go@0.45.3
├── language-html@0.49.0
├── language-hyperlink@0.16.3
├── language-java@0.29.0
├── language-javascript@0.128.5
├── language-json@0.19.1
├── language-less@0.34.2
├── language-make@0.22.3
├── language-mustache@0.14.5
├── language-objective-c@0.15.1
├── language-perl@0.38.1
├── language-php@0.43.2
├── language-property-list@0.9.1
├── language-python@0.49.4
├── language-ruby@0.71.4
├── language-ruby-on-rails@0.25.3
├── language-sass@0.61.4
├── language-shellscript@0.26.3
├── language-source@0.9.0
├── language-sql@0.25.10
├── language-text@0.7.4
├── language-todo@0.29.4
├── language-toml@0.18.2
├── language-typescript@0.3.3
├── language-xml@0.35.2
└── language-yaml@0.32.0


Community Packages (16) ~/.atom/packages
├── Hydrogen@2.6.0
├── atom-beautify@0.33.4
├── autocomplete-clang@0.11.5
├── build@0.70.0
├── busy-signal@1.4.3
├── file-icons@2.1.26
├── intentions@1.1.5
├── language-ini@1.20.0
├── linter@2.2.0
├── linter-gcc@0.7.1
├── linter-ui-default@1.7.1
├── minimap@4.29.9
├── platformio-ide@2.2.4
├── platformio-ide-debugger@1.2.6
├── platformio-ide-terminal@2.8.4
└── tool-bar@1.1.10


Последнее этого перезапускам atom


Настройка проекта


Сначала добавте в .bash.rc это очень упрощяет жизнь:


livehack
 alias mt1p11="pio device monitor --port /dev/ttyUSB1 --baud 115200" 
 alias mt1p9="pio device monitor --port /dev/ttyUSB1 --baud 9600" 
 alias mt0p11="pio device monitor --port /dev/ttyUSB0 --baud 115200" 
 alias mt0p9="pio device monitor --port /dev/ttyUSB0 --baud 9600" 
 alias pir="pio run --target upload" 
 alias pir0="pir  --upload-port /dev/ttyUSB0" 
 alias pir1="pir  --upload-port /dev/ttyUSB1" 

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


Давайте создадим первый проект


  • Зайдите в ’домик’
  • Нажмите New project
  • В борд введите esp выбирете любую, если не нашли вашу
  • Framework ESP-IDF
  • FINISH
    После этого выберете фаил в деректории Platformio.ini и вставте, но в board можете сохранить свою платку если есть. :

Platformio.ini
[ env:esp32 ]
platform = espressif32
board = featheresp32
framework = espidf
monitor_baud = 115200
upload_speed= 115200

Ну вот и мы подготовили основу для проекта, теперь осталось написать проект.
-нажмите A и введите /scr/main.c или наведите на scr и создайте файл main.c
Вставте:


main.c
 #include <stdio.h> 
        #include "freertos/FreeRTOS.h" 
        #include "freertos/task.h" 
        #include "driver/gpio.h" 
        #include "sdkconfig.h" 

        void app_main() 
        {while(1){ 
        printf("Helow habr\n"); 
        } 
        } 

! если интересно можете изучить примеры на git
-вставте код и сохранит в main.c .


  • Подключить вашу esp32
    Ну вот и всё осталось только скомпилировать. Для этого существует несколько способов:
    1. На тулбаре Platformio нажмите buld затем upload (галочка и стрелочка) .
    2. В меню атома выбрать PlatformioIO-> Terminal -> New terminal;
      В появившемся терминале вписать ( я лично в bash.rc прописал путь к бинарникам платформио и использую его в обычном терминале )
      pio run --target build
      pio run --target upload

      Или воспользоватся псевдонимами pir0 или pir2
      Также для команды pio есть доп опции которые можно посмотреть тык



Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.