void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.print("\nConnecting to "); Serial.println(ssid);
uint8_t i = 0;
while (WiFi.status() != WL_CONNECTED && i++ < 20) {
delay(500);
}
if (i == 21) {
Serial.print(“Could not connect to”); Serial.println(ssid);
while (1) {
delay(500);
}
}
//start UART and the server
Serial.begin(115200);
server.begin();
server.setNoDelay(true);
Serial.print(“Ready! Use ‘telnet “);
Serial.print(WiFi.localIP());
Serial.println(” 23’ to connect”);
}
void loop() {
uint8_t i;
//check if there are any new clients
if (server.hasClient()) {
for (i = 0; i < MAX_SRV_CLIENTS; i++) {
//find free/disconnected spot
if (!serverClients[i] || !serverClients[i].connected()) {
if (serverClients[i]) {
serverClients[i].stop();
}
serverClients[i] = server.available();
Serial.print("New client: "); Serial.print(i);
break;
}
}
//no free/disconnected spot so reject
if (i == MAX_SRV_CLIENTS) {
WiFiClient serverClient = server.available();
serverClient.stop();
Serial.println("Connection rejected ");
}
}
//check clients for data
for (i = 0; i < MAX_SRV_CLIENTS; i++) {
if (serverClients[i] && serverClients[i].connected()) {
if (serverClients[i].available()) {
//get data from the telnet client and push it to the UART
while (serverClients[i].available()) {
Serial.write(serverClients[i].read());
}
}
}
}
//check UART for data
if (Serial.available()) {
size_t len = Serial.available();
uint8_t sbuf[len];
Serial.readBytes(sbuf, len);
//push UART data to all connected telnet clients
for (i = 0; i < MAX_SRV_CLIENTS; i++) {
if (serverClients[i] && serverClients[i].connected()) {
serverClients[i].write(sbuf, len);
delay(1);
}
}
}
}`
Совсем наглеть не стал( про толерантность в 5 в) потому собрал с делителем.
Всё замечательно заработало на соплях. Решил в кое веки доделать ко конечного устройства с правильным питанием и преобразователей уровней. Т.к. это делается для CNC, то и плату переходника мы естественно… делать не будем , а соберём всё навесным монтажом. Конвертеры готовые(полевики с резисторами по 4-е на плате), питание 3.35в(1117 adj в sot223), Esp таже.
По итогу во время тестов заметил, что Esp нездорово греется, явно больше 40, вплоть до 50 градусов. “Это норма”(с) или искать причину?
Сложно сказать Учитывая, что я перестраховщик(сиречь параноик), естественно сильный бы нагрев заметил бы, но Долго я не гонял, в работу не запускал, так подвигал оси повключал светодиодик. Тестовая Уна на шилде с движками от СД. Плюс линейник был на 3 вольта, и в корпусе то-220, и отдельно от ESp, а теперь так
Начал грешить на конвертер. Всё всегда советуют, сам такой, а в реале использовал буквально первый раз. Тупо только запитал никуда не подключая - греется, начал мерить: со стороны ESP tx -четкие 3.4 вольта, а rx - непонятные 0.6в. Удивился подключил к станку запустил программу и на tx опять норм сигнал, а на rx - ограничение на двух вольтах. Бум думать. т.к хрен теперь разберёшь енто
Шо я имею сказать, - “Это не норма”(с). RX модуля тупо звонится на землю на 750 Ом Хоть ток и небольшой, однакож видать ещё где-то тянет. Раскопал для надёжности Esp12 и там всё норм: и RX, и TX в мегаомах. Грустненько и непонятненько. Вот тебе и толерантность с перестраховкой, где блин, когда!? Заодно понял что Esp12 практически в тех же габаритах, но зато с защитой и платка потолще - лишний теплоотвод. Нда!
ESP-01 - это древнее наследие тех времен, когда только появившиеся esp8266 использовали исключительно как средство связи для атмеги и управлялись AT-командами
Цепляй к ней ws2811 на один пин, а на другой общий от кнопок. Мы рассматривали схему как то. После ws2811 можно подключить адресную ленту ws2812. Получится и кнопки, и релюхи, и светодиоды.
Не даёть мне покоя ентот порт подбитый. Даже в собранной на делителе я автоматом поставил в разрыв 100 Ом, а на готовых конвертерах нет(итернеты ж не вруть). А ведь даже на самой ардуине есть килоомники между конвертером USB-TTL и микроконтроллером. Может тут собака порылась или опять перестраховываюсь?