Orange Pi на автомойке ч.3

    Продолжение статей Arduino на автомойке и Arduino на автомойке ч.2.


    Как понятно из заголовка перешли на использование Orange Pi One. Машинка гораздо поинтереснее Arduino. Выбран среди себе подобных в основном из-за цены. По сравнению в Arduino лучше решает следующие задачи:

    — сеть (проблем пока нет)
    — подключение монитора вместо табло
    — возможность использования тач-панели
    — возможность использования базы данных
    — возможность установки на «себя» веб-сервера

    В качестве операционной системы выбрана DietPi. Программирование в QT. Купюроприёмник подключен через последовательный порт. Монитор в HDMI. Тач панель в USB. Выходы на реле 29, 31, 33, 35, 37. Подключен жетоноприёмник на 22 ногу через делитель напряжения.

    Также реализован режим приёма денег через кассу с выдачей клиенту пин-кода. Сервером для хранения статуса пин-кода может быть один из апельсинов. Выдача и контроль пин-кода через веб-страницу например со смартфона. Таким образом можно экономить на купюроприёмниках.

    Некоторые лайф-хаки апельсина:

    Останавливаем консоль на UART для купюрника

    sudo systemctl stop serial-getty@ttyS0.service
    sudo systemctl mask serial-getty@ttyS0.service
    

    Поворот экрана (файл /etc/X11/xorg.conf)

    Section "Device"
            Identifier "default"
            Driver "fbdev"
            Option "Rotate" "CW"
    EndSection

    Включаем поддержку некоторых тач-панелей (файл /etc/modules)

    hid_multitouch

    Запрещаем спать ( файл /etc/X11/xorg.conf.d/10-dpms.conf)

    Section "ServerFlags"
        Option "blank time"   "0"
        Option "standby time" "0"
        Option "suspend time" "0"
        Option "off time"     "0"
    EndSection

    Выставляем режим работы выхода.

    void pinMode(int  pin, int mode)
    {
        FILE *file;
        char path[80];
        file=fopen("/sys/class/gpio/export" , "w");
        fprintf(file, "%d", pin);
        fclose(file);
        sprintf(path, "/sys/class/gpio/gpio%d/direction", pin);
        file=fopen(path , "w");
        fprintf(file, "%s", mode ? "out" : "in");
        fclose(file);  
    }

    Включение/выключение реле.

    void digitalWrite(int pin, int value)
    {
        FILE *file;
        char path[40];
        sprintf(path, "/sys/class/gpio/gpio%d/value", pin);
        file=fopen(path , "w");
        fputc(value?'1':'0', file);
        fclose(file);
    }

    Краткие выводы на текущий момент:

    — Orange пока работает стабильно, вылетов флеш-памяти не зафиксировано.
    — От тач-панелей устойчивой работы не добились, переходим на кнопки.

    Планы на будущее:

    — подключение индуктивных петель для фиксации наличия машины
    — создание личного кабинета клиента с возможностью запоминания и дальнейшего использования остатка денежных средств на любом аппарате сети автомоек.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 19
    • 0
      Как стабильность? У нас на похожем проекте RPI3 регулярно зависает при использовании некоторых USB модемов.
      • 0

        в интернет ходят по локалке через общий роутер. модемы пока не пробовали. какие у вас? как настраивается?

        • +1
          Alcatel 410D. Подключал через wvdial, всё стандартно, только добавил stupid mode, без него модем зависал. Вообще, я очень сильно недолюбливаю USB модемы как класс устройств, ещё ни одного не видел, который бы не глючил.
          Сейчас поставил на чипсете от Huawei, опознаются как USB Ethernet. Распберри виснуть перестала, но сами модемы с 10% шансом криво стартуют после сброса питания. Связь есть, устройство опознаётся, в веб-морде горит «подключено», а связи нет. Просто жрёт пакеты, а ответа никакого.
        • +1

          Чем малину питаете?

          • 0
            Затрудняюсь сказать, честно говоря, но выглядит внушительно. От этого же блока кормится вся механика, и при её включении ничего не глючит. Не думаю, что проблема в питании.
            • 0

              А вы подумайте и проверьте. Малинка жуть как не любит плохое питание. Даже стрёмный USB-проводок может наделать вам головной боли. А уж если у вас там на USB висят модемы… А так-то "внушительно выглядеть" может что угодно, а что у него там "внутре неонка" не делает хорошего питания. Боюсь голословных оценок, но по моим ощущениям, процентов 80 нестабильности малинки — из-за питания.

              • 0
                Вряд ли. Очень вряд ли. БП выдаёт 12v@25A, за ним плата с преобразователями. Делал штатный техношаман, у меня нет особых причин ему не доверять. Да и не притащу я осциллограф к этой штуке, хех.
                Вообще говоря, вместе с модемами заменили USB кабеля на экранированные, с фильтрами. Может, это помогло.
                • 0

                  Ну, я тоже не ставлю под сомнение чью-то компетентность, вовсе нет!
                  Питание малинки через ЮСБ это самый простой вариант, домашний, я бы сказал. На плате какой-никакой стабилизатор есть. Но ЮСБ-провода — это головная боль. Питание через GPIO — изволь озаботиться стабилизированным питанием самостоятельно. ЮСБ-периферия из той же темы: хорошо если есть драйвера (это хорошо! но и тут подводные камни бывают), но еще лучше, если периферия потребляет считанные милливатты в пике. Для бытового/хоббийного применения это все не так важно, а для чего-то серьезного требуется вдумчиво почитать даташиты на… всё. Ну, это не мне вам объяснять.
                  Стабильного вам питания. И вечного аптайма.

        • +2
          Тоже год занимаемся автомойками http://m.dvizh.net/ (правда, высокоуровневое ПО для моек, где машины моют люди).

          Вшивали веб-сервер в Малинку :) Работало стабильно.
          • 0

            в режиме электронной тетрадки? наличие машины, расход воды/пены контролируете?

            • 0
              Да, это электронный журнал. Например, услуга «экспресс с пеной» списывает 1 грамм того, 2 грамма сего и столько-то электричества. Физическое оборудование просили для табло и для учета въезжающих и выезжающих машин, чтобы персонал был честнее.

              Личный кабинет клиенту не нужен в этой сфере, никто не пользуется ни приложениями ни прочими фишками. Просто когда машина грязная, едут куда удобнее и все. Маркетинг со скидками и т.д. почти не работает. Основная сложность в начислении ЗП и изменчивостью в этом бизнес-процессе.
              • 0
                есть надежда на остаток на счете.
                • 0
                  физическое оборудование просили, но не сделали?
                  • 0
                    Не сделали, пока что не умеем)
          • +2

            А можно добавить в приложение возможность заказа "мойщиц в бикини", на определенное время на нужную мойку? А то знаете-ли люблю друзей шокировать. Ради такого понта, никаких денег не жалко! :)

            • +2
              Личный кабинет с возможностью заказа услуг к определенному времени есть. Надо только добавить соответствующую услугу. Надо изучить вопрос.
            • 0
              Про флеш память — не пробовали использовать нежурналируемую ФС ext2? Она должна меньше изнашивать ячейки по сравнению с современными журналируемыми ФСК
              • 0
                не знаю. просто ставил dietpi. как попробовать ФС ext2?

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.