• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Помогите с компиляцией прошивки ESP8266 NodeMcu V3

CMK0001

New member
Добрый день, уважаемые форумчане.
У меня проблема в которой я сам не могу разобраться, в силу того, что не хватает опыта в работе с компиляторами и платами.

Цель:
Скомпилировать прошивку в расширении *.bin.

Описание:
У меня имеется плата ESP8266 NodeMcu V3 на 4mb, на которую спокойно могу установить прошивку для работы с платой на MicroPython (это важно, хочу вести разработку на этом языке).
Прошивку беру от сюда (MicroPython), прошиваю программной Thonny. У меня описан метод отправки почты (ну естественно и подключение к интернету), но возникла проблема, при отправке почты ругается что буфер переполнен и выпадает в ошибку. TLS buffer overflow, record size: 8263 (+5) . Почитав исходники (Взял от сюда) я подправил код и сделал буфер больше. Собственно проблема в том что не как не могу скомпилировать эти исходники в *.bin файл что бы прошить плату. Работаю на Windows. Пробовал даже ставить linux и там прошивать.

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

Заранее благодарю, готов к обоснованной критики =)
 

fps

Active member
TSL на ESP8266 в микропитоне работать не будет - мало памяти у неё. На ESP32 - работает.
 

CMK0001

New member
TSL на ESP8266 в микропитоне работать не будет - мало памяти у неё. На ESP32 - работает.
Спасибо , но я читал статьи, что прошивкой проблема решается. Просто больше места выделяешь под буфер и все. Вроде людям помогало. И притом что через "СИ" обычную прошивку ардуинки все работает .
 

fps

Active member
Не знаю какая у вас там "Такая же история =* " - вы же свой код в секрете держите.

Сейчас попробовал на ESP32C3 - TLS1.2 работает "изкаробки" хотя у нее памяти вдвое меньше чем в ESP32S*

Python:
# MicroPython v1.24.0 on 2024-10-25; ESP32C3 module with ESP32C3

import requests

q=requests.get("https://mail.ru/")
while True:
    part=q.raw.read(20000)
    if not part: break
    print(part)
 

CMK0001

New member
Не знаю какая у вас там "Такая же история =* " - вы же свой код в секрете держите.

Сейчас попробовал на ESP32C3 - TLS1.2 работает "изкаробки" хотя у нее памяти вдвое меньше чем в ESP32S*

Python:
# MicroPython v1.24.0 on 2024-10-25; ESP32C3 module with ESP32C3

import requests

q=requests.get("https://mail.ru/")
while True:
    part=q.raw.read(20000)
    if not part: break
    print(part)
1000 извинений =)

собственно код:

def __init__(self, host, port, ssl=False, username=None, password=None):
import ssl
self.username = username
addr = socket.getaddrinfo(host, port)[0][-1]
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(DEFAULT_TIMEOUT)
sock.connect(addr)
if ssl:
sock = ssl.wrap_socket(sock) ---------------------------- тут ошибка
code = int(sock.read(3))
sock.readline()
assert code==220, 'cant connect to server %d, %s' % (code, resp)
self._sock = sock

ESP32 Ошибка такова :
OSError: (-29184, 'MBEDTLS_ERR_SSL_INVALID_RECORD')
 

CMK0001

New member
Используйте штатный модуль requests вместо этого всего.
Может я путаю , но вы получаете страницу mail, а мне надо почту отправить в outlook

Имя SMTP-сервераsmtp-mail.outlook.com
Порт SMTP587
Порт SMTP587
Если не сложно отправьте свой код по отправке почты .

Спасибо
 

fps

Active member
но вы получаете страницу mail, а мне надо почту отправить в outlook
Однако об этом вы упомянули впервые. Все должны были конечно догадаться сами сразу.

Если не сложно отправьте свой код по отправке почты .
Вот например https://github.com/shawwwn/uMail
 
Сверху Снизу