Передача показаний датчиков c Mega в ESP в Blynk

Тема в разделе "Arduino & Shields", создана пользователем RazorLine, 13 фев 2019.

Метки:
  1. RazorLine

    RazorLine Нерд

    День добрый.
    Подскажите, как можно передать данные трех одинаковых датчиков (mlx90615 например) из меги в esp и далее в blynk?
    Передавать можно - подключил по tx/rx и Serial.print();
    Но как различить, что данные пришли с конкретно первого датчика и далее Blynk.virtualWrite(V1, t1);?
     
  2. b707

    b707 Гуру

    а как ты различаешь эти датчики на меге?
    Если различаешь - то при передаче в ЕСП добавляй к данным номер датчика - и задача решена.

    ОФФТОП
    К ЕСП еще и мега? - там что, сотня датчиков приделана? - а если нет, почему эти датчики напрямую к ЕСП не подключить...
     
  3. parovoZZ

    parovoZZ Гуру

    библиотеки нет. А без библиотеки он и не программист уже.
     
  4. RazorLine

    RazorLine Нерд

    Датчиков много 16 штук разных. Если можно напишите пример у меня знаний не хватает...
    #include "MLX90615.h"
    MLX90615 mlx90615_1(DEVICE_ADDR, &i2c_1);
    MLX90615 mlx90615_2(DEVICE_ADDR, &i2c_2);
    MLX90615 mlx90615_3(DEVICE_ADDR, &i2c_3);
    void loop () {

    t_i2c[1] = mlx90615_1.getTemperature(MLX90615_OBJECT_TEMPERATURE);
    Serial.println(t_i2c[1]);
    t_i2c[2] = mlx90615_2.getTemperature(MLX90615_OBJECT_TEMPERATURE);
    Serial.println(t_i2c[2]);
    t_i2c[3] = mlx90615_3.getTemperature(MLX90615_OBJECT_TEMPERATURE);
    Serial.println(t_i2c[3]);
    }
     
  5. b707

    b707 Гуру

    Для первого датчика:
    Код (C++):

    t_i2c[i] = mlx90615_1.getTemperature(MLX90615_OBJECT_TEMPERATURE);
    Serial.print("Датчик номер 1 ");
    Serial.println(t_i2c[1]);
     
    но вообще правильнее сами обьекты датчика тоже организовать в массив. вместо трех отдельных mlx90615_1 mlx90615_2 mlx90615_3 - тогда весь код можно будет сократить втрое
     
  6. b707

    b707 Гуру

    а вообще, непонятно что за библиотеку вы используете, в той что я вижу на Гитхабе - нет метода getTemperature(), да и адрес датчика не так задается

    хотя о чем я... тот код, что в сообщении #4 - какая-то нерабочая хаготовка. а не код...
     
  7. RazorLine

    RazorLine Нерд

    а дальше Blynk.virtualWrite(V1, t_i2c[1]);?
     
  8. RazorLine

    RazorLine Нерд

  9. b707

    b707 Гуру

  10. b707

    b707 Гуру

    смешно пошутил, ага
     
  11. RazorLine

    RazorLine Нерд

    там другие датчики, я только учусь и пытаюсь разобраться
     
  12. b707

    b707 Гуру

    Уважаемый товарищ (или господин)!
    Каждое мое или ваше сообщение вскрывает "новые глубины" вашего незнания
    Вот и тут - если у вас "другие датчики" - почему вы используете эту библиотеку?! А если она подходит - то и готовые примеры надо использовать,а то что вы нагородили сами - криво и неудобно.
     
  13. RazorLine

    RazorLine Нерд

    я использую библиотеку для этих датчиков #include "MLX90615.h"
     
  14. RazorLine

    RazorLine Нерд

    для этих датчиков getTemperature(), подходит
     
  15. RazorLine

    RazorLine Нерд

    не переходите на часности не офтопьте, пожалуйста, пишите по делу.
     
  16. b707

    b707 Гуру

    я и пишу по делу. Если библиотека подходит - то следуйте примерам. данным к библиотеке. Сами вы лучше не напишете.
    Я сильно сомневаюсь, что вы правильно задаете адрес каждого конкретного датчика.

    На ваш изначальный вопрос, как отличить датчики - я ответил. А дальше - разбирайтесь сами.
     
  17. RazorLine

    RazorLine Нерд

  18. RazorLine

    RazorLine Нерд

    извините если обидел, хочется конкретной помощи, то что у меня мало знаний я знаю
     
  19. RazorLine

    RazorLine Нерд

    Вопрос остается открытым.
    Как правильно передать из Mega в ESP и затем в Blynk показания трех одинаковых датчиков.
     
  20. b707

    b707 Гуру

    Ну блин, вроде обьяснил уже? Что непонятно?
    Поймите, у вас нет "трех одинаковых датчиков". У каждого свой номер, свой адрес на шине и тд Вот и используйте это.
    Простейшая аналогия - у вас три сына. Если позвать "Сынок!" - то прибегут все трое, или, наоборот, ни один их них - потому что каждый будет думать. что зовут другого. Поэтому вы дали им разные имена ...
    Ну так дайте каждому датчику свое имя и опишите их в ЕСП и в Блинке под этими именами