#!/bin/bash if read -p "Подключите плату к USB и нажмите ENTER: " start; then line=$(dmesg | grep 'ttyUSB' | tail -1) if [[ $line == *"attached"* ]]; then port=`echo "$line" | sed 's/.*ttyUSB\(.\)$/\1/'` else printf '\033[91mУстройство не найдено!\033[0m\n' exit 0 fi printf '\033[92mУстройство найдено на порту: '$port'\033[0m\n' fi if read -p "Для начала прошивки нажмите ENTER: " start; then cd Firmware firmware=($(find -name '*.bin')) if [[ $firmware == *"nodemcu"* ]]; then printf '\033[92mНайдена прошивка: '$firmware'\033[0m\n\n' printf '\n\033[92mСтираем существующую прошивку:\033[0m\n\n' python3 -m esptool --port /dev/ttyUSB$port erase_flash if [ $? -ne 0 ]; then printf '\033[91mОшибка устройства!\033[0m\n' exit 0 fi printf '\n\033[92mЗаливаем прошивку nodemcu для Lua:\033[0m\n\n' python3 -m esptool --port /dev/ttyUSB$port write_flash -fm dio 0x00000 $firmware if [ $? -ne 0 ]; then printf '\033[91mОшибка устройства!\033[0m\n' exit 0 fi else printf '\033[91mПрошивка не найдена!\033[0m\n' exit 0 fi fi cd ../ if read -p "Для начала заливки скетча нажмите ENTER: " start; then echo 'Заливаем Lua скетч:' python2 luatool.py --port /dev/ttyUSB$port --src init.lua --dest init.lua --verbose --restart --baud 115200 if [ $? -ne 0 ]; then printf '\033[91mОшибка заливки скетча!\033[0m\n' exit 0 fi fi printf '\n\033[92mЖдем перезагрузки устройства:\033[0m\n\n' sleep 5 mac=$(python3 -m esptool --port /dev/ttyUSB$port read_mac) if [ $? -ne 0 ]; then printf '\033[91mОшибка чтения из устройства!\033[0m\n' exit 0 fi guid=`echo "$mac" | grep -m 1 MAC | sed 's/\://g' | sed 's/MAC //g'` echo 'GUID устройства: '$guid first_byte=${guid:0:2} new_byte=$((16#$first_byte + 2 | bc)) new_first_byte=`echo "ibase=10; obase=16; ${new_byte}" | bc | sed 's/[A-Z]/\L&/g'` if (( ${#new_first_byte} == 1 )); then new_first_byte='0'$new_first_byte fi guid=`echo "$guid" | sed 's/^'$first_byte'/'$new_first_byte'/'` printf '\033[92mОпределен guid устройства: '$guid' \033[0m\n' printf '\033[92mУстановка успешно завершена, ID устройства: \033[0m'$guid'\n'