Говноточка пойдет?
Не, гинза минимум
Или палкин
Mezzo Lab
Не, гинза минимум
Сука я вчера хлопнул в ладоши и у меня синяк
Угадай кто я
Нужен код в котором при нажатии кнопки (D4_-_GND) будет отправляться hex код на ИК передатчик
Mezzo Lab
Не, гинза минимум
Спасибо что напомнил Надо заказать
Говноточка пойдет?
Там руки не моют
Mezzo Lab
Не, гинза минимум
В гинзу позвонил
Это на науки?
Mezzo Lab
Торчки сраные
Я там спал как-то
Mezzo Lab
Это на науки?
Это общий телефон
Сцук я лег поспать так мне плед принесли
Даж не выгнали
Mezzo Lab
Даж не выгнали
Сук они тупые три раза звонил. Первый раз сказали что ничего не могут. Второй раз начали говорить что у них корпоративы. Третий раз мне уже пришлось представиться как полагается барину, и выяснилось, что в этом году у них недоступны внезапно только 2 дня.
Glamtie
Вы че там в одной фирме трудитесь или в разных по соседству?
Misha
парни привет. Подскажите плиз, chipId у esp8266 по идее уникальный? Я использую nodemcu и там можно его получить. В инете вроде пишут что уникальный, но хотелось бы услышать, что ктото его юзает как для уникального идентификатора устройства) Или надо чтото своё придумывать...?
Возьми мак адрес
Glamtie
Да хз кто я чат открыл и нихуя н понял)
Да хз кто я чат открыл и нихуя н понял)
А о чем ты вообще? Или пятница вечер опять у тебя?
Glamtie
А о чем ты вообще? Или пятница вечер опять у тебя?
Так точно. Ну ладно не буду мешать. Просто в тему не вьехал.
Угадай кто я
#include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #include <IRremoteESP8266.h> #include <IRrecv.h> #include <IRsend.h> #include <LittleFS.h> // если WEMOS const uint8_t PIN_IR_TX = 4;//ножка подключения ИК-диода (GPIO4 (D2)-WEMOS D1 R1/GPIO14 -TIWE3S) const uint8_t PIN_IR_RX = 5; //ножка подключения Фотодиода (GPIO13 (D7)-WEMOS D1 R1/GPIO5 -TIWE3S) const uint8_t LED_BUILT = 2; //ножка подключения светодиода (GPIO2 (на плате)-WEMOS D1 R1/GPIO4 -TIWE3S) const uint16_t CAPTURE_BUFFER_SIZE = 256; const uint8_t TIMEOUT = 45; // 15 static const char irTypes[][14] PROGMEM = { "UNKNOWN", "UNUSED", "RC5", "RC6", "NEC", "SONY", "PANASONIC", "JVC", "SAMSUNG", "WHYNTER", "AIWA_RC_T501", "LG", "SANYO", "MITSUBISHI", "DISH", "SHARP", "COOLIX", "DAIKIN", "DENON", "KELVINATOR", "SHERWOOD", "MITSUBISHI_AC", "RCMM", "SANYO_LC7461", "RC5X", "GREE", "PRONTO", "NEC_LIKE", "ARGO", "TROTEC" }; // Установить имя своей сети - SSID и пароль const char* ssid = "MTS838FT_486C53"; // Имя wifi сети const char* password = "40159989"; //пароль в wifi сети роутера IPAddress local_IP(192, 168, 10, 1); // IP-адрес устройства в wifi сети роутера (это адрес первого приемо-передатчика) IPAddress gateway(192, 168, 10, 1); IPAddress subnet(255, 255, 255, 0); ESP8266WebServer server(80); IRrecv irRX(PIN_IR_RX, CAPTURE_BUFFER_SIZE, TIMEOUT, true); IRsend irTX(PIN_IR_TX); decode_results results; String code1 { "ИНФРОКРАСНЫЙ" }; String code2 { " ПУЛЬТ" }; String kn[] { "1000000001", "2000000002","3000000003","4000000004","5000000005","6000000006","7000000007","8000000008","9000000009"}; // массив кодов кнопок String mem {"000"}; // номер кнопки при присвоения кода String strRead = "pointer-events: none;color: #FF9033;"; // строка блокирования кнопки "СЧИТАТЬ КОД" String strIzm = ""; // строка блокирования кнопки "ИЗМЕНИТЬ" String strWrite = "pointer-events: none;color: #000;"; // строка блокирования кнопки "СОХРАНИТЬ В ПУЛЬТЕ" //******************************** void setup() { Serial.begin(115200); delay(100); pinMode(PIN_IR_TX, OUTPUT); pinMode(PIN_IR_RX, INPUT); pinMode(LED_BUILT, OUTPUT); digitalWrite(LED_BUILT, HIGH); irRX.enableIRIn(); irTX.begin(); // создаем точку доступа Wi-Fi сети WiFi.mode(WIFI_AP); WiFi.softAPConfig(local_IP, gateway, subnet); WiFi.softAP(ssid, password); IPAddress myIP = WiFi.softAPIP(); Serial.print("AP IP address: "); Serial.println(myIP); server.on("/", handle_OnConnect);//исполнить handle_OnConnect при пустом запросе server.on("/command", handle_command);//исполнить handle_command при запросе command server.on("/read", handle_read);//исполнить handle_read при запросе read server.on("/remem", handle_remem);//исполнить handle_remem при запросе remem server.on("/change", handle_change);//исполнить handle_change при запросе remem server.onNotFound(handle_NotFound);//исполнить handle_NotFound при неизвестном запросе server.begin(); Serial.println("HTTP server started"); if(!LittleFS.begin()){ Serial.println("An Error has occurred while mounting SPIFFS"); return; } File file = LittleFS.open("/d.txt", "r"); if(!file){ Serial.println("Failed to open file for reading"); return; } else { //Serial.println(file.size()); int ii = 0; // для определения конца чтения while(ii < 9){ file.seek(ii*12); kn[ii] = file.readString(); //Serial.println(kn[ii]); ii++; } file.close(); } }
Угадай кто я
//******************************************************* void loop() { server.handleClient();//приём http запросов } //******************************* void handle_OnConnect(){ server.send(200, "text/html", SendHTML()); } //******************************* void handle_change() { strRead = ""; strIzm = "pointer-events: none;color: #3368FF;"; strWrite = ""; server.send(200, "text/html", SendHTML()); } //******************************* void handle_command() { irRX.disableIRIn(); char charBuf[14]; mem = server.arg(0); // запоминаем номер кнопки для которой надо внести код server.arg(1).toCharArray(charBuf, 14); irTX.sendNEC(strtoul(charBuf,NULL,16),32); irRX.enableIRIn(); server.send(200, "text/html", SendHTML()); } //******************************* void handle_read() { digitalWrite(LED_BUILT,LOW); // зажигаем светодиод Serial.print("\n read IR_code"); int i=0; while ((!irRX.decode(&results))&&i<40)// ждем сигнала с пульта 20 секунд { delay(500); Serial.print("."); i = i+1; } if(i<40){ code1 = String(FPSTR(irTypes[results.decode_type - UNKNOWN])); code2 = String((uint32_t)results.value,HEX); if(mem =="kn1") kn[0] = code2; // заносим код в соответствующую ячейку-кнопку else if(mem == "kn2") kn[1] = code2; else if(mem == "kn3") kn[2] = code2; else if(mem == "kn4") kn[3] = code2; else if(mem == "kn5") kn[4] = code2; else if(mem == "kn6") kn[5] = code2; else if(mem == "kn7") kn[6] = code2; else if(mem == "kn8") kn[7] = code2; else if(mem == "kn9") kn[8] = code2; } else { irRX.resume(); code1 = "UNKNOWN"; code2 = "0"; } server.send(200, "text/html", SendHTML()); digitalWrite(LED_BUILT,HIGH); // гасим светодиод } //******************************* void handle_remem() { digitalWrite(LED_BUILT,LOW); // зажигаем светодиод Serial.print("\n remem IR_code"); File file = LittleFS.open("/d.txt", "w"); if(!file){ Serial.println("Failed to open file for writing"); return; } int ii = 0; while(ii < 9){ file.write((char *)kn[ii].c_str(),12); ii++; } file.close(); strRead = "pointer-events: none;color: #FF9033;"; // блокируем кнопку "СЧИТАТЬ КОД" strIzm = ""; // активируем кнопку "ИЗМЕНИТЬ" strWrite = "pointer-events: none;color: #000;"; // блокируем кнопку "СОХРАНИТЬ В ПУЛЬТЕ" server.send(200, "text/html", SendHTML()); digitalWrite(LED_BUILT,HIGH); // гасим светодиод } //********************************** void handle_NotFound(){ server.send(404, "text/plain", "Not found"); } //********************************** String SendHTML(){ String ptr = "<!DOCTYPE html> <html>\n"; ptr +="<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n"; ptr +="<title>IR pult</title>\n"; ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n"; ptr +=".table {width: 90%; height: 100%; border: 2px solid #000;margin: auto;}\n"; ptr +=".button {display: block;width: auto; height: auto; background-color: #1abc9c;border: none;color: white;padding: 50px 50px;text-align: center;text-decoration: none;font-size: 35px;margin: 15px auto 15px;cursor: pointer;border-radius: 24px;}\n"; ptr +=".button:active {background-color: #2c3e50;}\n"; ptr +="</style>\n"; ptr +="</head>\n"; ptr +="<body>\n"; ptr +="<h1>" + code1 + "|" + code2 + "</h1>\n"; ptr +="<h3 style=\"font-size: 12px;\">Для запоминания кнопки пульта телевизора - нажать кнопку ИЗМЕНИТЬ. Затем нажать одну из 9-ти кнопок на экране смартфона, затем нажать СЧИТАТЬ КОД. Когда загориться светодиод, поднести пульт телевизора к контроллеру, нажать на нём кнопку. Посде появления кода на экране, можно проверить работу запрограмированной кнопки на смартфоне. Повторить считывание кодов для всех 9-ти кнопок на смартфоне. В конце нажать СОХРАНИТЬ В ПУЛЬТЕ - все коды сохраняться в контроллере.</h3>\n"; ptr +="<table class=\"table\"><tr><td>\n";
Угадай кто я
ptr +="<a class=\"button\" style=\"background-color: #FF9033;" + strRead + "\" href=\"/read\">СЧИТАТЬ КОД</a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn1&code=" + kn[0] + "\">НАСТРОЙКА</a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn4&code=" + kn[3] + "\">ЗВУК - </a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn7&code=" + kn[6] + "\">ОК</a>\n"; ptr +="</td><td>\n"; ptr +="<a class=\"button\" style=\"background-color: #3368FF;" + strIzm + "\" href=\"/change\">ИЗМЕНИТЬ КОДЫ</a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn2&code=" + kn[1] + "\">КАНАЛ + </a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn5&code=" + kn[4] + "\">ВКЛ.</a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn8&code=" + kn[7] + "\">КАНАЛ - </a>\n"; ptr +="</td><td>\n"; ptr +="<a class=\"button\" style=\"background-color: #000;" + strWrite + "\" href=\"/remem\">СОХРАНИТЬ В ПУЛЬТЕ</a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn3&code=" + kn[2] + "\">ВВЕРХ</a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn6&code=" + kn[5] + "\">ЗВУК + </a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn9&code=" + kn[8] + "\">ВНИЗ</a>\n"; ptr +="</td></tr></table>\n"; ptr +="</body>\n"; ptr +="</html>\n"; return ptr; }
Mezzo Lab
#include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #include <IRremoteESP8266.h> #include <IRrecv.h> #include <IRsend.h> #include <LittleFS.h> // если WEMOS const uint8_t PIN_IR_TX = 4;//ножка подключения ИК-диода (GPIO4 (D2)-WEMOS D1 R1/GPIO14 -TIWE3S) const uint8_t PIN_IR_RX = 5; //ножка подключения Фотодиода (GPIO13 (D7)-WEMOS D1 R1/GPIO5 -TIWE3S) const uint8_t LED_BUILT = 2; //ножка подключения светодиода (GPIO2 (на плате)-WEMOS D1 R1/GPIO4 -TIWE3S) const uint16_t CAPTURE_BUFFER_SIZE = 256; const uint8_t TIMEOUT = 45; // 15 static const char irTypes[][14] PROGMEM = { "UNKNOWN", "UNUSED", "RC5", "RC6", "NEC", "SONY", "PANASONIC", "JVC", "SAMSUNG", "WHYNTER", "AIWA_RC_T501", "LG", "SANYO", "MITSUBISHI", "DISH", "SHARP", "COOLIX", "DAIKIN", "DENON", "KELVINATOR", "SHERWOOD", "MITSUBISHI_AC", "RCMM", "SANYO_LC7461", "RC5X", "GREE", "PRONTO", "NEC_LIKE", "ARGO", "TROTEC" }; // Установить имя своей сети - SSID и пароль const char* ssid = "MTS838FT_486C53"; // Имя wifi сети const char* password = "40159989"; //пароль в wifi сети роутера IPAddress local_IP(192, 168, 10, 1); // IP-адрес устройства в wifi сети роутера (это адрес первого приемо-передатчика) IPAddress gateway(192, 168, 10, 1); IPAddress subnet(255, 255, 255, 0); ESP8266WebServer server(80); IRrecv irRX(PIN_IR_RX, CAPTURE_BUFFER_SIZE, TIMEOUT, true); IRsend irTX(PIN_IR_TX); decode_results results; String code1 { "ИНФРОКРАСНЫЙ" }; String code2 { " ПУЛЬТ" }; String kn[] { "1000000001", "2000000002","3000000003","4000000004","5000000005","6000000006","7000000007","8000000008","9000000009"}; // массив кодов кнопок String mem {"000"}; // номер кнопки при присвоения кода String strRead = "pointer-events: none;color: #FF9033;"; // строка блокирования кнопки "СЧИТАТЬ КОД" String strIzm = ""; // строка блокирования кнопки "ИЗМЕНИТЬ" String strWrite = "pointer-events: none;color: #000;"; // строка блокирования кнопки "СОХРАНИТЬ В ПУЛЬТЕ" //******************************** void setup() { Serial.begin(115200); delay(100); pinMode(PIN_IR_TX, OUTPUT); pinMode(PIN_IR_RX, INPUT); pinMode(LED_BUILT, OUTPUT); digitalWrite(LED_BUILT, HIGH); irRX.enableIRIn(); irTX.begin(); // создаем точку доступа Wi-Fi сети WiFi.mode(WIFI_AP); WiFi.softAPConfig(local_IP, gateway, subnet); WiFi.softAP(ssid, password); IPAddress myIP = WiFi.softAPIP(); Serial.print("AP IP address: "); Serial.println(myIP); server.on("/", handle_OnConnect);//исполнить handle_OnConnect при пустом запросе server.on("/command", handle_command);//исполнить handle_command при запросе command server.on("/read", handle_read);//исполнить handle_read при запросе read server.on("/remem", handle_remem);//исполнить handle_remem при запросе remem server.on("/change", handle_change);//исполнить handle_change при запросе remem server.onNotFound(handle_NotFound);//исполнить handle_NotFound при неизвестном запросе server.begin(); Serial.println("HTTP server started"); if(!LittleFS.begin()){ Serial.println("An Error has occurred while mounting SPIFFS"); return; } File file = LittleFS.open("/d.txt", "r"); if(!file){ Serial.println("Failed to open file for reading"); return; } else { //Serial.println(file.size()); int ii = 0; // для определения конца чтения while(ii < 9){ file.seek(ii*12); kn[ii] = file.readString(); //Serial.println(kn[ii]); ii++; } file.close(); } }
А пастебин нахуя придумали?
Mezzo Lab
В следующий раз всю книгу Страуструпа цитируй
Mezzo Lab
Тебе на озоне дать ссылку на программируемый пульт ДУ? Ягоды нельзя, у них проблемы
А пастебин нахуя придумали?
В пастебин цвета логотипа неправильные. Хастебин
Mezzo Lab
В пастебин цвета логотипа неправильные. Хастебин
А почему у него пидр на фоне триколора? Мои чувства это оскорбляет
ptr +="<a class=\"button\" style=\"background-color: #FF9033;" + strRead + "\" href=\"/read\">СЧИТАТЬ КОД</a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn1&code=" + kn[0] + "\">НАСТРОЙКА</a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn4&code=" + kn[3] + "\">ЗВУК - </a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn7&code=" + kn[6] + "\">ОК</a>\n"; ptr +="</td><td>\n"; ptr +="<a class=\"button\" style=\"background-color: #3368FF;" + strIzm + "\" href=\"/change\">ИЗМЕНИТЬ КОДЫ</a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn2&code=" + kn[1] + "\">КАНАЛ + </a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn5&code=" + kn[4] + "\">ВКЛ.</a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn8&code=" + kn[7] + "\">КАНАЛ - </a>\n"; ptr +="</td><td>\n"; ptr +="<a class=\"button\" style=\"background-color: #000;" + strWrite + "\" href=\"/remem\">СОХРАНИТЬ В ПУЛЬТЕ</a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn3&code=" + kn[2] + "\">ВВЕРХ</a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn6&code=" + kn[5] + "\">ЗВУК + </a>\n"; ptr +="<a class=\"button\" href=\"/command?Type=kn9&code=" + kn[8] + "\">ВНИЗ</a>\n"; ptr +="</td></tr></table>\n"; ptr +="</body>\n"; ptr +="</html>\n"; return ptr; }
Ты исправишься?
Dmitry
Запустил GDB сервер на esp32s3. Коннект есть. Но таргет на SWD не видит и чот не понятно, как это отлаживать. Есть кто ходил по граблям?
Anonymous
подскажите норм магазинчик на али, где много товаров с сенсорами и всякими штуками мелкими для esp плз
Anonymous
а то на 1 чуть на другом чуть)) есть какой-нить топовый где все есть и дешево?🤡
Mezzo Lab
Это больно
Dmitry
Это больно
Довольно странно, что тему пинают оч давно и какие-то проекты есть, но простой прошивалки по swd найти не удалось, зато теперь целый сервер тянем
Бля откуда у вас у всех вечные проблемы. А гдб сервер прям на есп запустить это мощно
Как смог то?
Glamtie
подозреваю. веб сервер скачал с гита бинарник , прошил и все.
Glamtie
ну я так делал)
Glamtie
чрез компорт прошиваецо
Тут в соседнем чате асушники умудрились криптовирус зацепить
Я уже нихуя не удивляюсь уровню тех грамотности
Glamtie
Тут в соседнем чате асушники умудрились криптовирус зацепить
А чо удивляться там щас улугбеков нанимают.
Dmitry
Как смог то?
Что сейчас нужно - прошивать стм32 через есп32. Но хочется плюшек удаленной отладки и полновесного дебагера. С него и начнем. Libopencm3 под катом
Один ебланит не мог справится с протечкой оперативки в винде, другой криптовирус зацепил. И все это в один день. Я читал это прям как чат домохозяек
А чо удивляться там щас улугбеков нанимают.
Да я уже не удивляюсь. Тут гдб не знают даже где стартует
Glamtie
Я уволился в начале 22 года оттуда, куда на мое место начали мастурбеков нанимать с зп *3 а знаниями -0
Glamtie
был асушником
Glamtie
с меня хватит)
Dmitry
Так ты гдб сервер где запустил? Прям на есп?
Канеч. По вифи доступен. Есть мощный проект на 8266, но тормоза и 8266 не потянет много остального
Мощный. 8266.
Я тут недавно ютился на ней из--за десятка кб. А у него аж мощный
Mezzo Lab
Мощный. 8266.
Пятую малину можно в мусор?
Ясен хер
Mezzo Lab
Заебись
Запахло мощнотой.
Mezzo Lab
Куплю сотню 8266. Супер сервер сделаю
Поди еще и на ардуиновском фреймворке
Если на ардуиновском - то супер мощный
Mezzo Lab
Крипта будет щёлкать по битку в час
Mezzo Lab
Я сук магнат буду
Glamtie
Можно свой хостинг открывать, хули мелочиться
Glamtie
почему?
Mezzo Lab
почему?
Ты мне ИТ бизнес портишь смерд
Mezzo Lab
Нельзя барину дорогу переходить, мама не учила?
Ты связался уже с каспером тем самым?
Mezzo Lab
Ты связался уже с каспером тем самым?
Я эту челядь уже забыть успел Давай базу
Glamtie
Ты мне ИТ бизнес портишь смерд
Бля барин не признаю я тебя. С виду вроде дурак дураком, а как в разговоре - вообще дебил.
Я эту челядь уже забыть успел Давай базу
Вспоминай. Ты у него 8 лярдов просил
Glamtie
шутко
Бля опять петросяны в чате
Glamtie
Уж звиняйте, больше не буду.