Заказ проекта

Тема в разделе "Закажу проект", создана пользователем Jormungand, 13 авг 2018.

  1. Jormungand

    Jormungand Нуб

    Всем привет ! Мучаялся с проектом. Кому интересно заморочится, готов оплатить. Если дадите наставления буду рад. Критика, высказывания приветствуются.

    Перечень оборудования:
    1) Arduino nano
    2) Цветной графический TFT-экран 160×128 или Цветной графический TFT-экран 320×240 / 2,2” (1шт.)
    3) Датчик температуры DS18B20 ( 10 шт.)
    4) Питание (Li-Ion, 2000 мА·ч) или крона 1(шт.)
    5) Четырёхкнопочная клавиатура (Troyka-модуль) (1шт.)
    6) Кнопка тактовая (3шт.)

    ТЗ для меню
    Вывод на экран меню:
    1- Показать каждый датчик ( отдельно )
    - при нажатии на данный пункт листать влево и вправо каждый датчик
    2- Показать все датчики на одном экране
    - при нажатии на данный пункт вывести все датчики
    3- Выгрузка данных
    - при нажатии на данный пункт сохраняет показания всех датчиков ( сохранение в массиве)
    4- Очистить данные ( удаление данных из массива)
    ТЗ для кнопок
    1) Четырёхкнопочная клавиатура (Troyka-модуль) - Вверх / Вниз/ Влево / Вправо
    2) Кнопка тактовая №1 - Включение и выключение ( при выключении добавить подтверждение "Да(Влево/Нет/Вправо")
    3) Кнопка тактовая №2 - Enter
    4) Кнопка тактовая №3 - Назад ( данная кнопка делает возврат в меню)
    С ценами в ЛС
     
  2. Jormungand

    Jormungand Нуб

    Вывод по датчикам и массиву понятно:
    Код (C++):
    #include <OneWire.h>
    #include <DallasTemperature.h>
    // сигнальный провод подключен к 2 пину на Arduino
    #define ONE_WIRE_BUS 4
    // выберем разрешение от 9 до 12
    #define TEMPERATURE_PRECISION 9
    // настроем библиотеку 1-Wire для связи с датчиком
    OneWire oneWire(ONE_WIRE_BUS);
    // создадим объект для работы с библиотекой DallasTemperature
    DallasTemperature sensors(&oneWire);
    // создаем массивы для хранения адреса датчиков
    DeviceAddress insideThermometer, outsideThermometer;
    // функция вывода адреса датчика
    void printAddress(DeviceAddress deviceAddress){
      for (uint8_t i = 0; i < 8; i++){
        if (deviceAddress[i] < 16) Serial.print("0");
        Serial.print(deviceAddress[i], HEX);
      }
    }
    void setup(void){
      // инициализируем работу сериал порта
      Serial.begin(9600);
      Serial.println("Dallas Temperature IC Control Library");
      // инициализируем работу с датчиком
      sensors.begin();
      // выводим количество найденных датчиков
      Serial.print("Locating devices...");
      Serial.print("Found ");
      Serial.print(sensors.getDeviceCount(), DEC);
      Serial.println(" devices.");
      // проверяем способ подключения питания
      Serial.print("Parasite power is: ");
      if (sensors.isParasitePowerMode()) Serial.println("ON");
      else Serial.println("OFF");
      // сделаем запрос на получение адреса датчика
      sensors.getAddress(insideThermometer, 0);
      sensors.getAddress(outsideThermometer, 1);
      // выведем полученный адрес
      Serial.print("Device 0 Address: ");
      printAddress(insideThermometer);
      Serial.println();
      Serial.print("Device 1 Address: ");
      printAddress(outsideThermometer);
      Serial.println();

        // установим выбранное разрешение датчика
      sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);
      sensors.setResolution(outsideThermometer, TEMPERATURE_PRECISION);
      // выведем значение установленного разрешения
      Serial.print("Device 0 Resolution: ");
      Serial.print(sensors.getResolution(insideThermometer), DEC);
      Serial.println();
      Serial.print("Device 1 Resolution: ");
      Serial.print(sensors.getResolution(outsideThermometer), DEC);
      Serial.println();
    }
    void loop(void){
      // отправляем запрос на измерение температуры
      sensors.requestTemperatures();
      // создаем переменную для хранения температуры в градусах Цельсия и выводим её значение
      float tempC0 = sensors.getTempC(insideThermometer);
      Serial.print("Temp C Device 0: ");
      Serial.print(tempC0);
      Serial.println();
       
      float tempC1 = sensors.getTempC(outsideThermometer);
      Serial.print("Temp C Device 1: ");
      Serial.print(tempC1);
      Serial.println();
     
    }
    Пересматривал кучу кода на меню так и не нашёл ( чтобы все датчики разом вывести в ячейки )
     
  3. Jormungand

    Jormungand Нуб

    Куча просмотров и тишина :confused:
     
  4. DIYMan

    DIYMan Guest

    Так все ж в ЛС с предложением цены сидят, видимо :)

    З.Ы. Озвучьте бюджет.
     
  5. Jormungand

    Jormungand Нуб

    Добрый, толко не судите строго. Если за данный проект продолжить 5 тыс - это адекватная цена ?
    Просто хочется разобраться с выведением данных.
     
  6. Jormungand

    Jormungand Нуб

    //Хотел создать массив данных для датчиков где
    “Device 0 Address” переменная addr
    “Порядковый номер» переменная num0
    //Переменная
    NumberDS = addr*num0
    Это нумерация датчиков.
    Или сделать 2 массива
    Address - индификационый номер производителя
    Массив порядковых номеров
    Массив полученных адресов + порядковый номер. Далее из этого массива выводить на экран. Номер датчика и его температуру.
     
  7. DIYMan

    DIYMan Guest

    В целом - зависит от деталей. Скажем - какой конкретно дисплей, маркировку контроллера укажите, плз. Озвученный бюджет - имеет право на жизнь, но все-все хотелки с ним не реализовать, естественно ;)

    По поводу DS18B20 - очень плохая идея хранить адреса датчиков в скетче. В идеальном варианте должно быть сделано так, чтобы датчики сами подцеплялись. Ещё идеальнее - это горячая замена датчиков с сохранением их индексов, т.е.: подцепили 3 датчика при первом старте контроллера, он нашёл их, сохранил их адреса. Затем, если поменять, скажем, второй по порядку датчик на линии на другой - то свежеподцепленный датчик должен корректно заменять отсутствующий, а не становиться новым в системе.

    Посмотрите мою тему про ArduinoCore - настраиваемое ядро на Arduino: там как раз реализован автоподхват DS18B20.
     
  8. Jormungand

    Jormungand Нуб

    Грамотный подход по вашей статье. Вы вычищаете ненужные библиотеки и добавляете свои по факту. Я правильно понял ? Относительно проекта. ILI9341C и ещё интересен ILI9163. Я думаю так же можно хранить в массивах, возможно я заблуждаюсь.
     
  9. DIYMan

    DIYMan Guest

    Не уверен, что у меня есть что-то из этих дисплеев сейчас - надо смотреть. Многоэкранное меню я вам нарисовать могу, для меня одно условие - лишь бы библиотека UTFT поддерживала драйвер дисплея (плотно работаю с этой библиотекой, есть русские шрифты для неё, нормально выводится UTF-8 на экран и т.п.).

    Ещё: у меня строго 50% предоплата, если что. Связано с тем, что много кидалова, поэтому любые телодвижения - только после утрясания первоначальных хотелок по скайпу, документирование их хотя бы в текстовом файле и предоплаты. После того, как прошивка написана - снимаю видео, выкладываю в закрытый раздел на ютюбе, даю ссылку вам. После этого - остальные 50%, высылаю ссылку на архив с прошивкой. Далее - если обнаружены ошибки по моей вине - исправляю в течение месяца бесплатно. Если что-то не сходится: новые хотелки там, не так объяснили/я не так понял - доработки обсуждаются отдельно.

    Вы пока ищите исполнителя, в общем - всё равно сегодня/завтра я точно ничего не смогу конкретно сказать: есть ли в наличии такой дисплей, как минимум.
     
  10. Jormungand

    Jormungand Нуб

    По оплате как скажите. Не вопрос. По материалу для работы, могу скинуть вместе с предоплатой, так как на практике это лучше, чем пальцем в небо. А вот с ТЗ я тогда сяду вечером и напишу. Просьба в ЛС скинуть Skype
     
  11. DIYMan

    DIYMan Guest

    Да я и здесь могу :) porokhnya_dmitry.

    По поводу ТЗ: описывайте все хотелки, если получится/умеете - то мокапы экранов (просто прямоугольники с подписями, что на месте прямоугольника должно быть). Это определённо поможет любому исполнителю ;)

    Не думаю, что в Краснодарский край это быстро дойдёт :) У меня есть некоторое кол-во TFT-дисплеев, но надо смотреть, что там за контроллеры. Сегодня/завтра точно этого сделать не смогу. В любом случае, считаю, что без первичной версии ТЗ - обсуждать конкретику пока рановато ;)
     
  12. DIYMan

    DIYMan Guest

    Ещё лучше (примите как добрый совет): отказаться от выбранных TFT и поюзать Nextion - поверьте, это сильно лучше по многим факторам: во-первых, там можно реально красивый интерфейс сделать. Во-вторых, подцепляется к любой свистоперделке, у которой есть UART. В-третьих: можно менять дисплеи без перезакачки прошивки в дуню: достаточно переделать проект под Nextion. В-четвёртых - там из коробки есть многое: тач, автоматический уход в сон, кучу разных компонентов и т.п. Ну и, в-последних: у мну есть в наличии два небольших Nextion, модели могу глянуть, если заинтересует такое предложение.

    Проект под Nextion я вам нарисую, классы для работы с компонентами Nextion - тоже уже давно писаны и отлажены, останется только работу с датчиками приделать. Мне кажется, что этот вариант, несмотря на стоимость самого дисплея - наиболее предпочтителен для поддержания человеком, который в программировании - не очень силён, хотя бы потому, что мухи - отдельно от котлет ;) Скажем: регулярно поддерживаю прошивку для человека, который занимается радиолюбительством. Так вот - там кучу всяких плюшек реализовано на Nextion, и т-щ сам правит интерфейс, когда надо. Не представляю, как бы он это делал, если бы интерфейс рисовался ручками на TFT - это, как понимаете, совершенно другой уровень вхождения ;)

    З.Ы. Nextion у мну, емнип, есть вот такие:

    https://ru.aliexpress.com/item/Next...7f8ea58&transAbTest=ae803_1&priceBeautifyAB=0

    https://ru.aliexpress.com/item/3-2-...7f8ea58&transAbTest=ae803_1&priceBeautifyAB=0
     
    Mitrandir нравится это.
  13. Jormungand

    Jormungand Нуб

    Я смотрел на них, и даже скачивал приложение для разработки интерфейса . Но хочу без тачскрина. И ценовой диапазон другой. Если есть тач, то нужна будет только кнопка включения.
     
  14. parovoZZ

    parovoZZ Гуру

    Mitrandir нравится это.
  15. DIYMan

    DIYMan Guest

    Я давно покупал, NX-версии, как положено. Работают норм. Если надо - могу глянуть в истории, что за продавец.
     
  16. DIYMan

    DIYMan Guest

    Тачскрин можно не юзать :)
    Воот, и про то же.

    В общем, думайте. Разработка под Nextion, кстати, более бюджетна, т.е. разницы в общей сумме, потраченной вами на проект - не будет. Если у вас штучное изделие, то Nextion, пмсм - самое оно. Впрочем, настаивать не буду.
     
    Mitrandir и parovoZZ нравится это.
  17. Jormungand

    Jormungand Нуб

    Штучное изделие или практичное, две большие разницы :)
     
  18. DIYMan

    DIYMan Guest

    Ну тут кому что, что называется. По мне - так практичней тача мало что можно придумать: навигация кнопками - это немного как-то старовато ;)
     
  19. Jormungand

    Jormungand Нуб

    iPhone тоже всем нравятся, но зимой, их прячут в тёплые карманы подальше от холода, а всё виной корпус, который проводит холод. Инженерная недоработка. Тут с вами соглашусь «кому что, что называется»
     
  20. Mitrandir

    Mitrandir Гуру

    Путешествуя по Европе взял на денёк теслу на прокат. Там управление магнитолой, навигацией, климатом тач скрин.
    Неудобно в поездке поднастраивать климат. У себя в гольф я могу не отвлекаясь от дороги руку опустить и не глядя ручку покрутить. А тут надо смотреть куда ты ткнешь на сенсором экране. Всё от задачи зависит. Хотя некстионы классные, жду доставки