Arduino UNO R3, с WiFi R3, макетная плата WeMos ESP8266 не получается прошить ардуино
- Войдите на сайт для отправки комментариев
Доброго времени суток.
Прошу помощь, попала плата в руки
Arduino UNO R3, с WiFi R3, макетная плата WeMos ESP8266![[IMG]](https://ae04.alicdn.com/kf/Hc3675cb369944f3ca07cfa3e4d08f43c3/UNO-R3-ATMEGA16U2-UNO-1-CH340G-Arduino.jpg_640x640.jpg)
Контроллер esp прошить получилось, а вот ардуино ну не как не получается , win10 , драйвер поставил пишет USB-SERIAL CH340
вроде все как положено, программу скачал с оф сайта.
Выставил переключатели 3 и 4 в положение on, все остальные в off, в настройках ide поставил ком порт 3 как в диспетчере устройств, выбрал плату Arduino uno и нажал кнопку Загрузка.
через 3 минуты получил вот такое сообщение
Arduino: 1.8.16 (Windows 10), Плата:"Arduino Uno"
Скетч использует 924 байт (2%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
Произошла ошибка при загрузке скетча
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x93
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
Скажите что я делаю не так? не как не могу записать скетч в ардуино.....
Выставил переключатели 3 и 4 в положение on, все остальные в off, в настройках ide поставил ком порт 3 как в диспетчере устройств, выбрал плату Arduino uno и нажал кнопку Загрузка.
картинку переключателя покажите
Выставил переключатели 3 и 4 в положение on, все остальные в off, в настройках ide поставил ком порт 3 как в диспетчере устройств, выбрал плату Arduino uno и нажал кнопку Загрузка.
картинку переключателя покажите
Все же как по распиновке?
Можно ресет попробовать нажать при загрузке, но вообще это дефект, и надо оформлять возврат.
а ключики 7 и 8 не должны быть включены тоже?
Описание к плате есть какое-то? Или схема?
вот как то там, неужели моя ардуинка бракованная?
Правильно ли я плату выбираю? ардуино уно?
Правильно ли я плату выбираю? ардуино уно?
да, правильно.
ЕСП, говорите, на этой же плате прошили? Успешно?
Кабель USB тот же используете?
да есп прошивается, кабель тот же, а вот ардуино хоть тресни не в какую......
попробуйте прошить через ISP
надо выставить программатор avr-isp?
надо выставить программатор avr-isp?
нет, надо собрать программатор из другой ардуино. Гугл в помощь, "восстановление загрузчика на ардуино"
другой ардуины нет, скорее всего уйдет в долгий ящик.....
другой ардуины нет
такое впечатление, что вы в экспедиции на СевПолюсе.
почти, у меня в городе таких плат не продают , заказывал с китая, ждал чуть ли не 2 мес
У меня такая-же ардуинка. Я хочу сделать web сервер (страницу) при подключении показывать переменные? Это возможно на этой плате?
У меня такая-же ардуинка. Я хочу сделать web сервер (страницу) при подключении показывать переменные? Это возможно на этой плате?
да
Сможете мне немного помочь? Я отблагодарю.
что именно?
https://arduino.ru/forumy/ishchu-ispolnitelya
Подружить Uno и ESP8266.
К уно будет подключен GSM и пережать всё на веб страницу. Подобный проект есть в амперке. Хочу повторить на этой плате.
Помогать можно только тому, кто что-то делает.
Что вы пытались сделать сами? показывайте
Смотрите, я научился прошивать UNO выставляя определенные перемычки. И вроде программируется ESP (выставляя определенные перемычки) но проверить не пойму как, запрограммировалась она или нет.
Так-же мне не понятно будет ли работать они между собой. И как это проверить?
Смотрите, я научился прошивать UNO выставляя определенные перемычки. И вроде программируется ESP (выставляя определенные перемычки) но проверить не пойму как, запрограммировалась она или нет.
Так-же мне не понятно будет ли работать они между собой. И как это проверить?
зашейте в ESP блинк и посмотрите
Прошивка проходит, но я не вижу моргания. Светодиод тускло горит. В том то дело, не совсем понятно.
Какой светодиод? У меня такой платы не было, схему смотри на каком пине висит светодиод (если он там вообще на есп есть)
Давай-те по-порядку.
Сперва начнём с UNO.
Я хочу подключить ATGM336H.
RX и TX подключил. Подзабыл уже всё. как вывести в монитор порта?
Мой скейтч:
По поводу светодиода я вижу какой-то светодиод на плате. Маркировки у него нет. Возможно он для другого. Нормальную схему я тоже не нашёл к сожалению... Так же надо нажать reset перед загрузкой скетча, что бы он загрузился.
я вижу какой-то светодиод на плате. Маркировки у него нет. Возможно он для другого.
... вижу какой-то светодиод... не знаю для чего он....
при таком подходе я бы не ждал, что у вас хоть что-то заработает...
Схема любой ардуино платы есть в инете, надо только хотеть искать.
Но тут можно и без схемы. Загрузите свой скетч, возьмите мультиметр, переключите его в режим вольтметра... встаньте черным проводом на GND, а красным почередно проверьте все другие выходы. Если где-то найдете "мигающий" сигнал попеременно 0 и 3.3в - это значит код работает
Кстати, покажите код блинка, который вы заливаете в плату. Код выше никаким светодиодом и думает мигать...
Согласен, но я делал по видео уроку. Сейчас я сперва хочу понять как будет дружить уно с ATGM.
Кое что начало получаться. По крайне мере данные я увидел в мониторе порта.
Если я пишу:
Данные в порт ссыпаться, но стоит мне поменять с ss(11, 12); на ss(0, 1); ничего не происходит. Получается я не могу поверить ATGM на эти контакты?
стоит мне поменять с ss(11, 12); на ss(0, 1); ничего не происходит. Получается я не могу поверить ATGM на эти контакты?
нет, не можете
контакты 0 и 1 заняты USB преобразователем, который соединен с монитором порта на вашем компе. Когда вы используете в скетче Serial - это как и есть доступ к контактам 0 и 1
Понял, спасибо! Получается мне нужно использовать другие контакты что бы получить данные с ATGM? И на каких пинах сидит ESP8266 ?
на каких пинах сидит ESP8266 ?
ищите схему платы - узнаете :)
Я предполагаю, что на этих же - 0 и 1. Соответственно вы не можете одновременно использовать ЕСП8266 и Монитор порта, только либо то, либо другое. Для выбора, что куда подключать - на плате должны быть переключатели.
Вообще, не хочу вас расстраивать - но эта плата крайне неудачный выбор для первого проекта. Две отдельных - отдельно Уно и отдельно ЕСП8266 - были бы в 100 раз удобнее
Я понимаю. Я вообще думал будет как на видео амперки. Всё просто и лего. Но оказалось крайне сложно. Схему ищу, но вменяемую не могу найти.
https://user-images.githubusercontent.com/23693439/118506781-0dfa4a80-b7...
Очень похоже схема на правду... Хотя я так понимаю мне нужно после будет соединить ещё проводами контакты?
Я понимаю. Я вообще думал будет как на видео амперки. Всё просто и лего. Но оказалось крайне сложно. Схему ищу, но вменяемую не могу найти.
И скетчи тоже - не ищут, а пишут.
Вот когда Вы научитесь самостоятельно писать скетчи и рисовать схемы, тогда все автоматически станет просто и легко.
А пока Вы не умеете ни того, ни другого, - все будет оставаться крайне сложно.
И еще, учиться нужно по книжкам, а не по видосикам. Тогда есть надежда, что чему-нибудь научитесь.
Выставил перемычки 5-6-7 в положение ON остальные в OFF.
Скачал готовый скетч веб сервера.
Скетч:
https://diytech.ru/projects/sozdanie-veb-servera-esp8266-kod-i-skhemy
Взял от сюда что бы много кода не писать.
Заливаю туда и вижу диалог:
Загрузка завершена.
Дак скорость порта не совпадает с той, что в IDE Monitor указана.
Это я понимаю. Я после поставил скорость 115200 но телефон сеть не видит. Я пробую другой проект, из примеров. Что-то не хочет создавать точку доступа...
В Arduino IDE скомпилируйте скетч с опцией "дебаг", в мониторе поставьте скорость 74-чототам, и ресет кнопочкой. Что-то должно вывалиться из системных сообщений.
Спасибо, попробую так.
Но в целом Wifi работает.
Если я настраиваю подключаться к моему роутеру он подключается и я вижу веб страницу через комп! Но как точка доступа пока не могу добиться работы...
чтобы работал и как точка доступа нужно в скетч добавлять код точки доступа, в вашем коде этого нет, ищите примеры (AP + STA)
Ночью я это уже понял.
Загрузил такой, вижу телефон его определяет но подключиться не может...
В общем я как посмотрю никто не может ничего путёвого мне посоветовать.
Как буд-то пишу сам себе.
Есть код который работает в режиме станции:
C 2018 года так и не осилил правила вставки кода на форум ???
В общем я как посмотрю никто не может ничего путёвого мне посоветовать.
первая же ссылка в гугле
Ага, я по этой ссылке уже проекты собрал, что то не работает либо какой-то "секрет" есть как работает esp....
Ага, я по этой ссылке уже проекты собрал, что то не работает либо какой-то "секрет" есть как работает esp....
показывай код
Я писал выше пару сообщений назад
Дублирую:
#include <ESP8266WiFi.h> #include <ESP8266WebServer.h> // Replace with your network credentials const char* ssid = "Arduino"; const char* password = "11223344"; /* Настройки IP адреса */ IPAddress local_ip(192,168,1,1); IPAddress gateway(192,168,1,1); IPAddress subnet(255,255,255,0); // Set web server port number to 80 WiFiServer server(80); // Variable to store the HTTP request String header; // Auxiliar variables to store the current output state String output5State = "off"; String output4State = "off"; void setup() { Serial.begin(115200); // Connect to Wi-Fi network with SSID and password Serial.print("Connecting to "); Serial.println(ssid); //WiFi.begin(ssid, password); //как станция WiFi.softAP(ssid, password); // как точка доступа WiFi.softAPConfig(local_ip, gateway, subnet); // как точка доступа delay(100); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } // Print local IP address and start web server Serial.println(""); Serial.println("WiFi connected."); Serial.println("IP address: "); Serial.println(WiFi.localIP()); server.begin(); } void loop(){ WiFiClient client = server.available(); // Listen for incoming clients if (client) { // If a new client connects, Serial.println("New Client."); // print a message out in the serial port String currentLine = ""; // make a String to hold incoming data from the client while (client.connected()) { // loop while the client's connected if (client.available()) { // if there's bytes to read from the client, char c = client.read(); // read a byte, then Serial.write(c); // print it out the serial monitor header += c; if (c == '\n') { // if the byte is a newline character // if the current line is blank, you got two newline characters in a row. // that's the end of the client HTTP request, so send a response: if (currentLine.length() == 0) { // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK) // and a content-type so the client knows what's coming, then a blank line: client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); client.println("Connection: close"); client.println(); // turns the GPIOs on and off if (header.indexOf("GET /5/on") >= 0) { Serial.println("GPIO 5 on"); output5State = "on"; // digitalWrite(output5, HIGH); } else if (header.indexOf("GET /5/off") >= 0) { Serial.println("GPIO 5 off"); output5State = "off"; // digitalWrite(output5, LOW); } else if (header.indexOf("GET /4/on") >= 0) { Serial.println("GPIO 4 on"); output4State = "on"; // digitalWrite(output4, HIGH); } else if (header.indexOf("GET /4/off") >= 0) { Serial.println("GPIO 4 off"); output4State = "off"; // digitalWrite(output4, LOW); } // Display the HTML web page client.println("<!DOCTYPE html><html>"); client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">"); client.println("<link rel=\"icon\" href=\"data:,\">"); // CSS to style the on/off buttons // Feel free to change the background-color and font-size attributes to fit your preferences client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}"); client.println(".button { background-color: #195B6A; border: none; color: white; padding: 16px 40px;"); client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}"); client.println(".button2 {background-color: #77878A;}</style></head>"); // Web Page Heading client.println("<body><h1>ESP8266 Web Server</h1>"); // Display current state, and ON/OFF buttons for GPIO 5 client.println("<p>GPIO 5 - State " + output5State + "</p>"); // If the output5State is off, it displays the ON button if (output5State=="off") { client.println("<p><a href=\"/5/on\"><button class=\"button\">ON</button></a></p>"); } else { client.println("<p><a href=\"/5/off\"><button class=\"button button2\">OFF</button></a></p>"); } // Display current state, and ON/OFF buttons for GPIO 4 client.println("<p>GPIO 4 - State " + output4State + "</p>"); // If the output4State is off, it displays the ON button if (output4State=="off") { client.println("<p><a href=\"/4/on\"><button class=\"button\">ON</button></a></p>"); } else { client.println("<p><a href=\"/4/off\"><button class=\"button button2\">OFF</button></a></p>"); } client.println("</body></html>"); // The HTTP response ends with another blank line client.println(); // Break out of the while loop break; } else { // if you got a newline, then clear currentLine currentLine = ""; } } else if (c != '\r') { // if you got anything else but a carriage return character, currentLine += c; // add it to the end of the currentLine } } } // Clear the header variable header = ""; // Close the connection client.stop(); Serial.println("Client disconnected."); Serial.println(""); } }Так точка доступа есть, ноутбук коннектится но нет ip адреса в свойствах соединения и не открывает станицу 192.168.1.1
Лови! Работает ужеЖ
#include <ESP8266WiFi.h> #include <ESP8266WebServer.h> // Replace with your network credentials const char* ssid = "Arduino"; const char* password = "11223344"; /* Настройки IP адреса */ IPAddress local_ip(192, 168, 1, 1); IPAddress gateway(192, 168, 1, 1); IPAddress subnet(255, 255, 255, 0); // Set web server port number to 80 WiFiServer server(80); // Variable to store the HTTP request String header; // Auxiliar variables to store the current output state String output5State = "off"; String output4State = "off"; void setup() { Serial.begin(115200); // Connect to Wi-Fi network with SSID and password Serial.print("Connecting to "); Serial.println(ssid); //WiFi.begin(ssid, password); //как станция WiFi.softAPConfig(local_ip, gateway, subnet); // как точка доступа WiFi.softAP(ssid, password); // как точка доступа delay(100); /* while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } */ // Print local IP address and start web server Serial.println(""); Serial.println("WiFi connected."); Serial.println("IP address: "); Serial.println(WiFi.localIP()); server.begin(); } void loop() { WiFiClient client = server.available(); // Listen for incoming clients if (client) { // If a new client connects, Serial.println("New Client."); // print a message out in the serial port String currentLine = ""; // make a String to hold incoming data from the client while (client.connected()) { // loop while the client's connected if (client.available()) { // if there's bytes to read from the client, char c = client.read(); // read a byte, then Serial.write(c); // print it out the serial monitor header += c; if (c == '\n') { // if the byte is a newline character // if the current line is blank, you got two newline characters in a row. // that's the end of the client HTTP request, so send a response: if (currentLine.length() == 0) { // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK) // and a content-type so the client knows what's coming, then a blank line: client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); client.println("Connection: close"); client.println(); // turns the GPIOs on and off if (header.indexOf("GET /5/on") >= 0) { Serial.println("GPIO 5 on"); output5State = "on"; // digitalWrite(output5, HIGH); } else if (header.indexOf("GET /5/off") >= 0) { Serial.println("GPIO 5 off"); output5State = "off"; // digitalWrite(output5, LOW); } else if (header.indexOf("GET /4/on") >= 0) { Serial.println("GPIO 4 on"); output4State = "on"; // digitalWrite(output4, HIGH); } else if (header.indexOf("GET /4/off") >= 0) { Serial.println("GPIO 4 off"); output4State = "off"; // digitalWrite(output4, LOW); } // Display the HTML web page client.println("<!DOCTYPE html><html>"); client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">"); client.println("<link rel=\"icon\" href=\"data:,\">"); // CSS to style the on/off buttons // Feel free to change the background-color and font-size attributes to fit your preferences client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}"); client.println(".button { background-color: #195B6A; border: none; color: white; padding: 16px 40px;"); client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}"); client.println(".button2 {background-color: #77878A;}</style></head>"); // Web Page Heading client.println("<body><h1>ESP8266 Web Server</h1>"); // Display current state, and ON/OFF buttons for GPIO 5 client.println("<p>GPIO 5 - State " + output5State + "</p>"); // If the output5State is off, it displays the ON button if (output5State == "off") { client.println("<p><a href=\"/5/on\"><button class=\"button\">ON</button></a></p>"); } else { client.println("<p><a href=\"/5/off\"><button class=\"button button2\">OFF</button></a></p>"); } // Display current state, and ON/OFF buttons for GPIO 4 client.println("<p>GPIO 4 - State " + output4State + "</p>"); // If the output4State is off, it displays the ON button if (output4State == "off") { client.println("<p><a href=\"/4/on\"><button class=\"button\">ON</button></a></p>"); } else { client.println("<p><a href=\"/4/off\"><button class=\"button button2\">OFF</button></a></p>"); } client.println("</body></html>"); // The HTTP response ends with another blank line client.println(); // Break out of the while loop break; } else { // if you got a newline, then clear currentLine currentLine = ""; } } else if (c != '\r') { // if you got anything else but a carriage return character, currentLine += c; // add it to the end of the currentLine } } } // Clear the header variable header = ""; // Close the connection client.stop(); Serial.println("Client disconnected."); Serial.println(""); } }