ㅤ
Говноточка пойдет?
Не, гинза минимум
ㅤ
Или палкин
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
Уж звиняйте, больше не буду.