Спасибо огромное, такая мелочь была. Теперь у меня последнее что осталось это как то получить данные из Atmega.
Для этого нужно включить перемычки 1-2 в положение ON? но я не пойму как именно они соединены, судя по всему по ногам 0-1. Схему актуальную не нашёл. Может есть варианты проверить это?
ua6em пока у меня есть эта плата я повожусь с ней. Нашёл простой пример как соединить обе платы и всё заработало. Соединены они через пины 0 и 1. и соответствующие перемычки.
Для Атмеги:
const int buttonPin = 2; // the number of the pushbutton pin
int buttonState = 0;
void setup() {
// Initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200); //All ESP8266 serial communication at 115200 baud
}
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// Send a message to the ESP8266
Serial.write("change");
// Flash the built in LED to confirm that button push was registered
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(500);
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(250);
}
else {
delay(25);
}
}
Для того что бы ESP задействовать:
bool toggle;
String incomingString;
void setup() {
pinMode(12, OUTPUT); // Initialize pin 12 which is GPIO12 as an output
toggle = false;
Serial.begin(115200); //All serial communication with ESP8266 at 115200 baud
}
void loop() {
if (Serial.available() > 0){
// read the incoming string from the Arduino
incomingString = Serial.readString();
// If the incoming string from the Arduino equals "change" then we toggle the LED
if (incomingString.equals("change")){
digitalWrite(12, toggle); // Turn the LED off or on
toggle = !toggle;
}
}
delay(50); // Wait for half second
}
Всё просто, мы по сериал порту передаем текст change.
Проверил у меня работает.
У теперь у меня другой вопрос. Как мне передать и возможно ли это вообще:
Функция передает данные как бинарный код через последовательное соединение. Данные посылаются как один или серия байтов. Для того, чтобы передать данные как символы следует использовать другую функцию print().
Я уже понял в чем дело. Разобрался. В целом что я хотел работает. Осталось теперь только красоту наводить. На самом деле плата нормальная, да с ней есть проблемы...
Я уже понял в чем дело. Разобрался. В целом что я хотел работает. Осталось теперь только красоту наводить. На самом деле плата нормальная, да с ней есть проблемы...
это ты нормальных еще не пробовал, смысле нет никакого когда за эти же деньги можно взять современную на порядок лучше
1) Какую нормальную? Пример других плат? Я эту взял с али за 650 рублей с доставкой.
2) есть ограничения по длине на передачу данных? Я отправляю на ESP около 240 символов но вижу из них только последние около 100... Подозреваю что первые не доходят либо в строку не помещается ...
2) есть ограничения по длине на передачу данных? Я отправляю на ESP около 240 символов но вижу из них только последние около 100... Подозреваю что первые не доходят либо в строку не помещается ...
Ограничений по длине ни на прием, ни на передачу данных нет.
А вот на хранение, - очевидно, есть.
Поэтому не нужно дожидаться, пока строка будет передана целиком, следует разбирать ее побайтно в процессе получения.
Спасибо за ссылку, очень понравилось! Это так же всё программировать через Arduino?
Адаптер есть в продаже, он для чего? Не совсем понимаю его роль, вроде и так есть интерфейс micro USB.
Спасибо за ссылку, очень понравилось! Это так же всё программировать через Arduino?
Адаптер есть в продаже, он для чего? Не совсем понимаю его роль, вроде и так есть интерфейс micro USB.
адаптер,чтобы собирать не на дюпонах, да, программируется через IDE
Значит строковых функций разделения нет? Или они может не удобные!?
Строковых функций много разных. Другое дело, что понятие, что следует считать строкой, в Си и Си++ разное. А Ардуино добавляет еще третий вид строки. Из-за чего, на мой взгляд, образуется некоторая путаница.
Я как-то задался целью установить, какова может быть наибольшая длина строки. У меня для этого есть достаточно внушительная электронная библиотека. Так вот, выяснилось, что максимальная длина строки из моей библиотеки составляет около 90 кбайт.
В esp32 оперативной памяти, конечно, больше. Но, тем не менее, не факт, что строка может целиком поместиться, скажем во входном (или выходном) буфере последовательного порта.
Поэтому я повторяю свою рекомендацию - не дожидаться приема строки целиком, а разбирать ее побайтно по мере прихода очередных символов.
У меня нет примеров на все случаи жизни. Когда мне что-то надо, я быстренько реализую вариант для сугубо конкретного случая (в частности, оптимальный именно для этого конкретного случая), который может не подходить для других случаев.
В качестве источника примеров могу порекомендовать:
1. Учебники.
2. Интернет.
3. Платный раздел "Ищу исполнителя".
Именно в таком порядке приоритета.
PS. Да, на всякий случай: искать можно по словосочетанию "конечный автомат".
UNO должен будет работать с аналоговыми датчиками угарного газа и c датчиками температуры и влажности через I2C, а состояние датчиков я должен буду отслеживать через встроенный вебсервер.
Если я правильно понимаю, то я должен буду написать 2 скетча:
- скетч вебсервера для ESP8266 с набором HTML страниц, CSS стилей и Javascript скриптов
- скетч для UNO, который будет будет собирать данные с датчиков
Эти два скетча должны будут общаться между собой по SPI интерфейсу.
Я все правильно понимаю?
UPD:
Прочел весь тред внимательно и понял, что между атмегой и ЕСП используется СОМ-порт и пересылка данных идет через класс Serial.
SPI не лучший вариант для общения между контроллерами. Насколько я помню, в Ардуино вообще поддерживается только SPI master. Последовательный порт - да, подходит.
И, кстати, зачем Вам Уно? Почему не сделать все на esp8266?
Спасибо огромное, такая мелочь была. Теперь у меня последнее что осталось это как то получить данные из Atmega.
Для этого нужно включить перемычки 1-2 в положение ON? но я не пойму как именно они соединены, судя по всему по ногам 0-1. Схему актуальную не нашёл. Может есть варианты проверить это?
по каким линиям там обмен не знаю, скорее всего программу надо писать между UNO и ESP
Взял бы ты себе esp32 и голову не морочил, там и ног достаточно и всё напрямую
ua6em пока у меня есть эта плата я повожусь с ней. Нашёл простой пример как соединить обе платы и всё заработало. Соединены они через пины 0 и 1. и соответствующие перемычки.
Для Атмеги:
Для того что бы ESP задействовать:
Всё просто, мы по сериал порту передаем текст change.
Проверил у меня работает.
У теперь у меня другой вопрос. Как мне передать и возможно ли это вообще:
кусок скетча:
На сколько корректно так писать? после принта отправлять данные? Может есть другой способ более простой?
не понял что хотите
Я хочу передавать данные из Меги в ЕСП. По уже готовым линиям. это Пин 0 и 1.
так в примере это и есть, а откуда и куда - без разницы, интерфейс двусторонний
Я просил на сёт корректности написания:
У меня до этого было просто:
Я всё это видел в мониторе порта, но когда я буду передавать данные что я увижу? Функция print не передаст в ESP? Для передачи нужна функция WRITE?
Я всё это видел в мониторе порта, но когда я буду передавать данные что я увижу? Функция print не передаст в ESP? Для передачи нужна функция WRITE?
и та и та передают, но разное
Передавать можно любыми функциями. Главное, чтобы Вы понимали, в каком виде передаете и в каком виде хотите принять.
Правильно я понимаю Serial.print = Serial.write?
Мне для веб страницы думаю будет идеально.
Нет.
Правильно я понимаю Serial.print = Serial.write?
Serial.write()
Функция передает данные как бинарный код через последовательное соединение. Данные посылаются как один или серия байтов. Для того, чтобы передать данные как символы следует использовать другую функцию print().
Понял, и теперь я столкнулся с такой проблемой, я в мониторе порта вижу русские буквы но при передачи в ESP я вижу:
РЎРєРѕСЂРѕСЃС
Думаю что проблема для многих понятная, а для меня новая.
Самое простое решение - не использовать кириллицу.
Иначе придется разбираться с кодировками, а в Arduino IDE и в мониторе порта они разные. Следовательно, нужна перекодировка.
Я уже понял в чем дело. Разобрался. В целом что я хотел работает. Осталось теперь только красоту наводить. На самом деле плата нормальная, да с ней есть проблемы...
Я уже понял в чем дело. Разобрался. В целом что я хотел работает. Осталось теперь только красоту наводить. На самом деле плата нормальная, да с ней есть проблемы...
это ты нормальных еще не пробовал, смысле нет никакого когда за эти же деньги можно взять современную на порядок лучше
У меня несколько вопросов:
1) Какую нормальную? Пример других плат? Я эту взял с али за 650 рублей с доставкой.
2) есть ограничения по длине на передачу данных? Я отправляю на ESP около 240 символов но вижу из них только последние около 100... Подозреваю что первые не доходят либо в строку не помещается ...
3) Какие есть функции по разделению строки?
да любую ESP32, эту к примеру я брал 38 пиновые
2) есть ограничения по длине на передачу данных? Я отправляю на ESP около 240 символов но вижу из них только последние около 100... Подозреваю что первые не доходят либо в строку не помещается ...
А вот на хранение, - очевидно, есть.
Поэтому не нужно дожидаться, пока строка будет передана целиком, следует разбирать ее побайтно в процессе получения.
Спасибо за ссылку, очень понравилось! Это так же всё программировать через Arduino?
Адаптер есть в продаже, он для чего? Не совсем понимаю его роль, вроде и так есть интерфейс micro USB.
Значит строковых функций разделения нет? Или они может не удобные!?
Спасибо за ссылку, очень понравилось! Это так же всё программировать через Arduino?
Адаптер есть в продаже, он для чего? Не совсем понимаю его роль, вроде и так есть интерфейс micro USB.
адаптер,чтобы собирать не на дюпонах, да, программируется через IDE
Значит строковых функций разделения нет? Или они может не удобные!?
Я как-то задался целью установить, какова может быть наибольшая длина строки. У меня для этого есть достаточно внушительная электронная библиотека. Так вот, выяснилось, что максимальная длина строки из моей библиотеки составляет около 90 кбайт.
В esp32 оперативной памяти, конечно, больше. Но, тем не менее, не факт, что строка может целиком поместиться, скажем во входном (или выходном) буфере последовательного порта.
Поэтому я повторяю свою рекомендацию - не дожидаться приема строки целиком, а разбирать ее побайтно по мере прихода очередных символов.
Я понял, но может примером поделиться? как со строками так и с байтаи?
У меня нет примеров на все случаи жизни. Когда мне что-то надо, я быстренько реализую вариант для сугубо конкретного случая (в частности, оптимальный именно для этого конкретного случая), который может не подходить для других случаев.
В качестве источника примеров могу порекомендовать:
1. Учебники.
2. Интернет.
3. Платный раздел "Ищу исполнителя".
Именно в таком порядке приоритета.
PS. Да, на всякий случай: искать можно по словосочетанию "конечный автомат".
Здравствуйте.
Я заказал такую же плату на алиэкспресс.
UNO должен будет работать с аналоговыми датчиками угарного газа и c датчиками температуры и влажности через I2C, а состояние датчиков я должен буду отслеживать через встроенный вебсервер.
Если я правильно понимаю, то я должен буду написать 2 скетча:
- скетч вебсервера для ESP8266 с набором HTML страниц, CSS стилей и Javascript скриптов
- скетч для UNO, который будет будет собирать данные с датчиков
Эти два скетча должны будут общаться между собой по SPI интерфейсу.
Я все правильно понимаю?
UPD:
Прочел весь тред внимательно и понял, что между атмегой и ЕСП используется СОМ-порт и пересылка данных идет через класс Serial.
Платка приедет - буду пробовать.
SPI не лучший вариант для общения между контроллерами. Насколько я помню, в Ардуино вообще поддерживается только SPI master. Последовательный порт - да, подходит.
И, кстати, зачем Вам Уно? Почему не сделать все на esp8266?
Да всё верно. Но лучше сделай сразу всё на ESP. Будет проще и удобнее.
Нашел эту плату. А там и Uno и ESP.
Спасибо за ответы.
Как приедет, попробую все на ESP сделать.