SlideShare a Scribd company logo
1 of 24
NodeMCU/AWS IoT
workshop
nodemcu.readthedocs.io/en/master
NodeMCU development board
Поколение Версия NodeMCU Common name
1 0.9 V1
2 1.0 V2
3 1.0 V3
Цифровые выводы могут быть
настроены на вход или выход, используя
функции pinMode(), digitalWrite(), и
digitalRead()
Выводы работают при напряжении 3,3 В
1 аналоговый разрешением 10 бит
bit.ly/2v0gwnS
sparks.gogo.co.nz/ch340.html
for CP210x USB to serial chip
for CH340 USB to serial chip
драйвера для преобразователей
Интерфейсов USB - UART
https://nodemcu-build.com/
SNTP, MQTT, HTTP
(Wi-Fi, timer, file, GPIO, net, node, UART уже выбраны
по умолчанию).
TLS/SSL support в пункте Miscellaneous options
github.com/marcelstoer/nodemcu-pyflasher/releases
Вариант 2
github.com/nodemcu/nodemcu-firmware
github.com/marcelstoer/docker-nodemcu-build
$ sudo docker pull marcelstoer/nodemcu-build
$ sudo docker run --rm -ti -v 
~/nodemcu-firmware:/opt/nodemcu-firmware 
marcelstoer/nodemcu-build
создаст в ~/nodemcu-firmware/bin файл с прошивкой
Flash firmware
NodeMCU PyFlasher или esptool.py
Install either Python 2.7 or Python >=3.4
$ pip install esptool
$ esptool.py --port <serial-port-of-ESP8266> --baud <baud-rate>
write_flash -fm <flash-mode> 0x00000 <nodemcu-firmware>.bin
<flash-mode> dio для ESP32 и ESP8266 ESP-12
<baud-rate> обычно 115200
http://arduino.esp8266.com/stable/package_esp8266com_index.json
sudo usermod -a -G dialout yourusername
sudo chmod a+rw /dev/ttyUSB0
Blink?
aws.amazon.com/free
slproweb.com/products/Win32OpenSSL.html
openssl x509 -in fcba39194a-certificate.pem.crt -out cert.der -outform
DER
openssl rsa -in fcba39194a-private.pem.key -out private.der -outform DER
openssl x509 -in AmazonRootCA1.pem -out ca.der -outform DER
{ "Version": "2012-10-17", "Statement": [
{ "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [
"arn:aws:iot:eu-west-3:373438728117:topic/outTopic", "arn:aws:iot:eu-
west-3:373438728117:topic/inTopic" ] },
{ "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [
"arn:aws:iot:eu-west-3:373438728117:topicfilter/inTopic" ] },
{ "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [
"arn:aws:iot:eu-west-3:373438728117:client/имя_девайса" ] } ] }
docs.aws.amazon.com/iot/latest/developerguide/example-iot-policies-
elements.html
Для того чтобы сохранить файл в памяти девайса
github.com/esp8266/arduino-esp8266fs-plugin
Необходимо скопировать в директорию tools внутри
директории со скетчами
Пример скетча:
bit.ly/2A9UMOv
PubSubClient library 2.8 (поддержка MQTT)
NTPClient library 3.2 (время с сервера NTP)
docs.aws.amazon.com/iot/latest/developerguide/iot-ddb-rule.html
SELECT * FROM 'outTopic'
Что еще можно добавить?
shadow
MQTT topics
docs.aws.amazon.com/iot/latest/developerguide/device-shadow-mqtt.html
val = analogRead(17); // от 0 до 1024
// перенос из одного диапазона в другой
val = map(val,0,1023,0,100);
// значение строго от 0 до 100
val = constrain(val,0,100);
Алексей Соммер
Thank you!
al@alexalex.ru

More Related Content

What's hot

IoT Meetup 2015: готовимся к хакатону в Москве
IoT Meetup 2015: готовимся к хакатону в МосквеIoT Meetup 2015: готовимся к хакатону в Москве
IoT Meetup 2015: готовимся к хакатону в МосквеIntel® Developer Zone Россия
 
2 х пр-ные серверы hp pro liant dl385
2 х пр-ные серверы hp pro liant dl3852 х пр-ные серверы hp pro liant dl385
2 х пр-ные серверы hp pro liant dl385Mikhail Ostroverkhiy
 
HackIoT: wifi гаджет своими руками
HackIoT: wifi гаджет своими рукамиHackIoT: wifi гаджет своими руками
HackIoT: wifi гаджет своими рукамиSergei Silnov
 
Android: низкоуровневые мультимедиа API и их применение в реальной жизни
Android: низкоуровневые мультимедиа API и их применение в реальной жизниAndroid: низкоуровневые мультимедиа API и их применение в реальной жизни
Android: низкоуровневые мультимедиа API и их применение в реальной жизниGregory Klyushnikov
 
Special linux distribution for national GRID network connection
Special linux distribution for national GRID network connectionSpecial linux distribution for national GRID network connection
Special linux distribution for national GRID network connectionТранслируем.бел
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...Dmitry Samsonov
 
ХАРДЕНИНГ (Аринов Ильяс (determination))
ХАРДЕНИНГ (Аринов Ильяс (determination))ХАРДЕНИНГ (Аринов Ильяс (determination))
ХАРДЕНИНГ (Аринов Ильяс (determination))Kristina Pomozova
 
BSD и всякая там virtualization
BSD и всякая там virtualizationBSD и всякая там virtualization
BSD и всякая там virtualizationAndrey Fesenko
 
Архитектура ЭВМ
Архитектура ЭВМАрхитектура ЭВМ
Архитектура ЭВМyaevents
 
Conflux: GPGPU для .NET (ADD`2010)
Conflux: GPGPU для .NET (ADD`2010)Conflux: GPGPU для .NET (ADD`2010)
Conflux: GPGPU для .NET (ADD`2010)xenoby
 

What's hot (18)

IoT Meetup 2015: готовимся к хакатону в Москве
IoT Meetup 2015: готовимся к хакатону в МосквеIoT Meetup 2015: готовимся к хакатону в Москве
IoT Meetup 2015: готовимся к хакатону в Москве
 
7812 hid
7812 hid7812 hid
7812 hid
 
Sysoev Freebsd7
Sysoev Freebsd7Sysoev Freebsd7
Sysoev Freebsd7
 
2 х пр-ные серверы hp pro liant dl385
2 х пр-ные серверы hp pro liant dl3852 х пр-ные серверы hp pro liant dl385
2 х пр-ные серверы hp pro liant dl385
 
HackIoT: wifi гаджет своими руками
HackIoT: wifi гаджет своими рукамиHackIoT: wifi гаджет своими руками
HackIoT: wifi гаджет своими руками
 
Android: низкоуровневые мультимедиа API и их применение в реальной жизни
Android: низкоуровневые мультимедиа API и их применение в реальной жизниAndroid: низкоуровневые мультимедиа API и их применение в реальной жизни
Android: низкоуровневые мультимедиа API и их применение в реальной жизни
 
Special linux distribution for national GRID network connection
Special linux distribution for national GRID network connectionSpecial linux distribution for national GRID network connection
Special linux distribution for national GRID network connection
 
Cuda, OpenCL
Cuda, OpenCLCuda, OpenCL
Cuda, OpenCL
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
 
ХАРДЕНИНГ (Аринов Ильяс (determination))
ХАРДЕНИНГ (Аринов Ильяс (determination))ХАРДЕНИНГ (Аринов Ильяс (determination))
ХАРДЕНИНГ (Аринов Ильяс (determination))
 
Python + Raspberry Pi GPIO
Python + Raspberry Pi GPIOPython + Raspberry Pi GPIO
Python + Raspberry Pi GPIO
 
BSD и всякая там virtualization
BSD и всякая там virtualizationBSD и всякая там virtualization
BSD и всякая там virtualization
 
Архитектура ЭВМ
Архитектура ЭВМАрхитектура ЭВМ
Архитектура ЭВМ
 
Storage Bitblaze
Storage BitblazeStorage Bitblaze
Storage Bitblaze
 
Conflux: GPGPU .NET
Conflux: GPGPU .NETConflux: GPGPU .NET
Conflux: GPGPU .NET
 
Chipset
ChipsetChipset
Chipset
 
Conflux: GPGPU для .NET (ADD`2010)
Conflux: GPGPU для .NET (ADD`2010)Conflux: GPGPU для .NET (ADD`2010)
Conflux: GPGPU для .NET (ADD`2010)
 
Am3
Am3Am3
Am3
 

Similar to NodeMCU AWS IoT Workshop

Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистовGetDev.NET
 
Конвергентная транспортная инфраструктура Обзор платформы Cisco NCS 4000
Конвергентная транспортная инфраструктура Обзор платформы Cisco NCS 4000Конвергентная транспортная инфраструктура Обзор платформы Cisco NCS 4000
Конвергентная транспортная инфраструктура Обзор платформы Cisco NCS 4000Cisco Russia
 
Лекция 9. Программирование GPU
Лекция 9. Программирование GPUЛекция 9. Программирование GPU
Лекция 9. Программирование GPUMikhail Kurnosov
 
Networks in the cloud on OpenStask: problems we face and their solution
Networks in the cloud on OpenStask: problems we face and their solutionNetworks in the cloud on OpenStask: problems we face and their solution
Networks in the cloud on OpenStask: problems we face and their solutionVadim Ponomarev
 
Базовая настройка Ipecs e mg80
Базовая настройка Ipecs e mg80Базовая настройка Ipecs e mg80
Базовая настройка Ipecs e mg80Eugene Yakhno
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)Smolensk Computer Science Club
 
Лекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDAЛекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDAMikhail Kurnosov
 
Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Сергей Рыжиков, Александр Сербул (1С-Битрикс)Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Сергей Рыжиков, Александр Сербул (1С-Битрикс)Ontico
 
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel EdisonInternet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel EdisonCodeFest
 
Обновление продуктовой линейки Juniper Networks. Маршрутизация. Коммутация. Б...
Обновление продуктовой линейки Juniper Networks. Маршрутизация. Коммутация. Б...Обновление продуктовой линейки Juniper Networks. Маршрутизация. Коммутация. Б...
Обновление продуктовой линейки Juniper Networks. Маршрутизация. Коммутация. Б...TERMILAB. Интернет - лаборатория
 
Основные уязвимости и методы защиты оборудования и ПО видеоконференцсвязи
Основные уязвимости и методы защиты оборудования и ПО видеоконференцсвязиОсновные уязвимости и методы защиты оборудования и ПО видеоконференцсвязи
Основные уязвимости и методы защиты оборудования и ПО видеоконференцсвязиCisco Russia
 
Сетевое оборудование Cisco в индустриальном исполнении
Сетевое оборудование Cisco в индустриальном исполненииСетевое оборудование Cisco в индустриальном исполнении
Сетевое оборудование Cisco в индустриальном исполненииCisco Russia
 
Tarantool Modules, Tarantool Meetup 2016-08-25
Tarantool Modules, Tarantool Meetup 2016-08-25Tarantool Modules, Tarantool Meetup 2016-08-25
Tarantool Modules, Tarantool Meetup 2016-08-25Roman Tsisyk
 
Развитие семейства коммутаторов для ЦОД Cisco Nexus 7000
Развитие семейства коммутаторов для ЦОД Cisco Nexus 7000 Развитие семейства коммутаторов для ЦОД Cisco Nexus 7000
Развитие семейства коммутаторов для ЦОД Cisco Nexus 7000 Cisco Russia
 
CUDA Course 2010 at MSU
CUDA Course 2010 at MSUCUDA Course 2010 at MSU
CUDA Course 2010 at MSUlarhat
 
Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)Mikhail Kurnosov
 
вебинар «новые решения Moxa n port»
вебинар «новые решения Moxa n port»вебинар «новые решения Moxa n port»
вебинар «новые решения Moxa n port»Виталий Бош
 

Similar to NodeMCU AWS IoT Workshop (20)

Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистов
 
Конвергентная транспортная инфраструктура Обзор платформы Cisco NCS 4000
Конвергентная транспортная инфраструктура Обзор платформы Cisco NCS 4000Конвергентная транспортная инфраструктура Обзор платформы Cisco NCS 4000
Конвергентная транспортная инфраструктура Обзор платформы Cisco NCS 4000
 
Лекция 9. Программирование GPU
Лекция 9. Программирование GPUЛекция 9. Программирование GPU
Лекция 9. Программирование GPU
 
Networks in the cloud on OpenStask: problems we face and their solution
Networks in the cloud on OpenStask: problems we face and their solutionNetworks in the cloud on OpenStask: problems we face and their solution
Networks in the cloud on OpenStask: problems we face and their solution
 
Базовая настройка Ipecs e mg80
Базовая настройка Ipecs e mg80Базовая настройка Ipecs e mg80
Базовая настройка Ipecs e mg80
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)
 
Iot meetup 07.10.15
Iot meetup 07.10.15Iot meetup 07.10.15
Iot meetup 07.10.15
 
Лекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDAЛекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDA
 
введение в Gpu
введение в Gpuвведение в Gpu
введение в Gpu
 
Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Сергей Рыжиков, Александр Сербул (1С-Битрикс)Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Сергей Рыжиков, Александр Сербул (1С-Битрикс)
 
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel EdisonInternet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
 
Обновление продуктовой линейки Juniper Networks. Маршрутизация. Коммутация. Б...
Обновление продуктовой линейки Juniper Networks. Маршрутизация. Коммутация. Б...Обновление продуктовой линейки Juniper Networks. Маршрутизация. Коммутация. Б...
Обновление продуктовой линейки Juniper Networks. Маршрутизация. Коммутация. Б...
 
Основные уязвимости и методы защиты оборудования и ПО видеоконференцсвязи
Основные уязвимости и методы защиты оборудования и ПО видеоконференцсвязиОсновные уязвимости и методы защиты оборудования и ПО видеоконференцсвязи
Основные уязвимости и методы защиты оборудования и ПО видеоконференцсвязи
 
Сетевое оборудование Cisco в индустриальном исполнении
Сетевое оборудование Cisco в индустриальном исполненииСетевое оборудование Cisco в индустриальном исполнении
Сетевое оборудование Cisco в индустриальном исполнении
 
Tarantool Modules, Tarantool Meetup 2016-08-25
Tarantool Modules, Tarantool Meetup 2016-08-25Tarantool Modules, Tarantool Meetup 2016-08-25
Tarantool Modules, Tarantool Meetup 2016-08-25
 
Развитие семейства коммутаторов для ЦОД Cisco Nexus 7000
Развитие семейства коммутаторов для ЦОД Cisco Nexus 7000 Развитие семейства коммутаторов для ЦОД Cisco Nexus 7000
Развитие семейства коммутаторов для ЦОД Cisco Nexus 7000
 
CUDA Course 2010 at MSU
CUDA Course 2010 at MSUCUDA Course 2010 at MSU
CUDA Course 2010 at MSU
 
Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)
 
вебинар «новые решения Moxa n port»
вебинар «новые решения Moxa n port»вебинар «новые решения Moxa n port»
вебинар «новые решения Moxa n port»
 
Hpvc
HpvcHpvc
Hpvc
 

NodeMCU AWS IoT Workshop

Editor's Notes

  1. Недорогие альтернативы WeMos D1, RTL8710 development board, ESP32 https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf
  2. The ESP8266 has 17 GPIO pins (0-16), however, you can only use 11 of them, because 6 pins (GPIO 6 - 11) are used to connect the flash memory chip.  Основные производители Amica, DOIT/SmartArduino и LoLin/WeMos https://frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/#v3
  3. Номер аналогового – 17 или 0 или A0 Onboard LED (2 items) Sketch Pin Numbers 16, D0, LED_BUILTIN, BUILTIN_LED and 2, D4 #define LED_BUILTIN 2 https://lowvoltage.github.io/2017/07/09/Onboard-LEDs-NodeMCU-Got-Two
  4. USB to UART Bridge Virtual COM Port (VCP) drivers silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
  5. Ссылка с образами придет на почту На плате имеется отдельная кнопка FLASH. Ее нажатие и держание и нажатия reset переводит девайс в режим bootloader. Если вдруг в твоей модификации платы такой кнопки нет, то перед прошивкой нужно соединить GPIO0 с GND и нажать reset (этот способ подходит для ESP-12).
  6. Credits: https://thingsboard.io/docs/samples/nodemcu/temperature/#firmware-download Detailed instructions available in the image's README. As for available config options check the documentation and study the comments in app/include/user_config.h. nodemcu.readthedocs.io/en/master/build
  7. https://github.com/marcelstoer/nodemcu-pyflasher https://nodemcu.readthedocs.io/en/master/getting-started/ Номер порта можно посмотреть в Arduino IDE
  8. ESPlorer в качестве альтернативы. или NodeMCU-Tool
  9. Для пользователей Linux. Что можно попробовать сделать если у вас нет доступа к порту Добавить пользователя к группе dialout Дать права всем пользователям a+ на чтение и запись
  10. LED_BUILTIN или 2 https://lowvoltage.github.io/2017/07/09/Onboard-LEDs-NodeMCU-Got-Two
  11. https://aws.amazon.com/free/
  12. Используйте команду openssl version –a Чтобы проверить версию и убедиться, что openssl установлен
  13. Вместо имя_девайса вставьте имя девайса которое будете использовать в коде https://docs.aws.amazon.com/iot/latest/developerguide/example-iot-policies-elements.html
  14. Скачать последний релиз. Создать директорию tools в директории со скетчами если она там отсутствует
  15. delay(100); // wait for a second – небольшая ошибка Отформатировать snprintf (msg, 75, "{\"key\":\"%d\", \"message\": \"hello world #%ld\"}", timeClient.getEpochTime(), value);
  16. Если что-то пойдет не так, то можно попробовать вести лог: https://docs.aws.amazon.com/iot/latest/developerguide/configure-logging.html
  17. map – перемещает значение из одного диапазона в другой constrain – если значение больше 100, то 100. Если меньше 0, то 0
  18. A0 принимает значение от 0 - 1.0V 5 кОм и ниже – сильная подтяжка 10 – золотая середина 20 кОм и больше – слабая