Продолжение статей 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 пока работает стабильно, вылетов флеш-памяти не зафиксировано.
— От тач-панелей устойчивой работы не добились, переходим на кнопки.

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

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

Комментарии (19)


  1. izzholtik
    03.06.2017 17:58

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


    1. paul_155
      03.06.2017 18:24

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


      1. izzholtik
        05.06.2017 02:25
        +1

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


    1. Shtucer
      03.06.2017 19:47
      +1

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


      1. izzholtik
        05.06.2017 02:19

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


        1. Shtucer
          05.06.2017 02:28

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


          1. izzholtik
            05.06.2017 02:37

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


            1. Shtucer
              05.06.2017 03:04

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


  1. pistol
    03.06.2017 19:19
    +2

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

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


    1. paul_155
      03.06.2017 19:40

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


      1. pistol
        03.06.2017 19:51

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

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


        1. paul_155
          03.06.2017 21:50

          есть надежда на остаток на счете.


        1. paul_155
          03.06.2017 22:13

          физическое оборудование просили, но не сделали?


          1. pistol
            04.06.2017 05:31

            Не сделали, пока что не умеем)


            1. paul_155
              05.06.2017 14:27

              мы можем сделать )


  1. RealFSA
    03.06.2017 21:52
    +2

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


    1. paul_155
      03.06.2017 21:55
      +2

      Личный кабинет с возможностью заказа услуг к определенному времени есть. Надо только добавить соответствующую услугу. Надо изучить вопрос.


  1. Andronas
    07.06.2017 15:01

    Про флеш память — не пробовали использовать нежурналируемую ФС ext2? Она должна меньше изнашивать ячейки по сравнению с современными журналируемыми ФСК


    1. paul_155
      07.06.2017 15:28

      не знаю. просто ставил dietpi. как попробовать ФС ext2?