Передать данные от Arduino Nano в ESP32

Тема в разделе "ESP8266, ESP32", создана пользователем Den73, 30 ноя 2018.

  1. Den73

    Den73 Нерд

    Есть Arduino Nano который собирает данные с датчиков и генерирует массив из 16 цифр.
    Стоит задача передать этот массив в ESP32.
    Кто то может помочь?
    нужна схема соединения и пример кода дня Nano и ESP
     
  2. Airbus

    Airbus Радиохулиган Модератор

    А что esp32 с датчиками не работает без Ардуино?Сам бля?Без ансамбля?
     
  3. Den73

    Den73 Нерд

    к сожалению ансамбль нужен..
     
  4. ImrDuke

    ImrDuke Гик

    А каков механизм передачи? (провода, радио...)
     
  5. Den73

    Den73 Нерд

    провода
     
  6. Radius

    Radius Гик

    Самое простое - UART. Не совсем понятно в чем проблема?
     
  7. Airbus

    Airbus Радиохулиган Модератор

    Зачем?
     
  8. Den73

    Den73 Нерд

    а можете дать ссылку где про это почитать и если есть возможность примеры кода
     
  9. b707

    b707 Гуру

    в интернете?
    Что мешает в гугле задать в поиск что-то типа "ардуино связь по UART" ?
    Привыкайте искать сами, не забивайте форум элементарными вопросами.
     
  10. parovoZZ

    parovoZZ Гуру

    Я вроде где-то выкладывал? Не?
    Для камня 328p. Функции работы с UART (у меня в отдельном файлике для удобства переноса между проектами):
    Код (C++):
    /*
    * uart.c
    *
    * Created: 15.06.2018 23:04:07
    *  Author: Andrey
    */



    #include <avr/io.h>

    #include "uart.h"




    void UART_Init (uint16_t ubrr)
    {
        UBRR0H = (uint8_t) (ubrr >> 8);
        UBRR0L = (uint8_t) ubrr;

        UCSR0B = (0 << RXCIE0) | (0 << TXCIE0) | (0 << UDRIE0) | (1 << RXEN0) | (1 << TXEN0);

        UCSR0C = (3 << UCSZ00);        // 1-stop bit, 8 bit data
    }

    void UART_Transmit (uint8_t data)
    {
        while (!(UCSR0A & (1 << UDRE0)))
        ;
        UDR0 = data;
    }

    uint8_t UART_Receive (void)
    {
        while (!(UCSR0A & (1 << RXC0)))
        ;
        return UDR0;
    }
    В файле main.c пишем:
    Код (C++):



    #include "uart.h"



    #define F_CPU        16000000UL

    // ... Определение скорости работы UART
    #define baud        250000    // здесь задается скорость обмена по UART. У меня 250 000 бод
    #define ubrr        F_CPU/16/baud - 1
    И далее работаем уже непосредственно с UART:
    Код (C++):
        UART_Init(ubrr);

        UART_Transmit(100);
    Вот и всё. Всё очень просто.
     
    Radius и b707 нравится это.
  11. Airbus

    Airbus Радиохулиган Модератор

    Да чё ты?Надо было на Асме написать.Там ещё проще!Для ТС переварить такой код миссия невыполнимая.
     
    Последнее редактирование: 6 дек 2018
  12. parovoZZ

    parovoZZ Гуру

    Здесь нет обдурманивающих С++ функций, аргументы которых неизвестно где смотреть. Тупая запись в регистры (==переменные). В случае чего, можно открыть любой учебник и посмотреть.
    А завтра эти челдоны придут работать на производство. А там никаких абдурин нету. Семплы от производителя и сишные заголовки. Он что будет делать? Ждать библиотеку?
     
  13. Airbus

    Airbus Радиохулиган Модератор

    Человек попросил кусок хлеба.А ты начал рассказывать как печь бисквитный торт со сливками.Думаешь он что то понял?Вряд ли.Я по первому посту это понял.Когда он собирается использовать мощный и производительный камень (в три раза мощнее Ардуино и в три раза дороже по цене)в качестве WiFi модема.
     
  14. parovoZZ

    parovoZZ Гуру

    Человек попросил сказать, где купить кусок хлеба, чтобы не обманули и не обвесили. Вместо указаний на недобросовестных продавцов, я его научил самостоятельно считать. Чувствуешь разницу?
     
  15. Den73

    Den73 Нерд

    Спасибо вам огромное за такой бесценный, бесполезный и очевидный совет, не знаю что бы делал без него, еще раз спасибо и низкий поклон!
     
  16. Den73

    Den73 Нерд

    Господа, вы не совсем правы про модем. Есть два уже готовых спаянных и упакованных проекта, и нужно их объединить.Не переделать все, не улучшить, не рационализировать. А просто передать данные от одного другому. Да, я не герой программист, да, я могу использовать только arduino ide. Я не собираюсь на производство и строить там космические ракеты. Мне нужно решить конкретную прикладную задачу. Я попросил помощи у казалось бы профессионалов. Если кто то может помочь - пожалуйста помогите. Но избавьте меня от ваших моралей и советов как жить. Спасибо.
     
  17. b707

    b707 Гуру

    послушайте, ну нельзя же быть таким ленивым. Вместо того, что писать сюда свои страдания - давно бы гугль открыли
    Вот вам схема
    [​IMG]
    вот вам подробное описание и примеры кода
    http://geekmatic.in.ua/parsing_uart_data_from_arduino_nano
     
    parovoZZ нравится это.
  18. Профессионалы оказывают помощь за деньги, если вы не в курсе. И если вам нужно готовое решение, то вам именно к профессионалам, и именно за деньги. А здесь - советы как жить. И если не нравится, то избавьте нас от своих вопросов.
     
  19. Den73

    Den73 Нерд

    то что нужно, спасибо!