Как понятно из заголовка перешли на использование 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)
pistol
03.06.2017 19:19+2Тоже год занимаемся автомойками http://m.dvizh.net/ (правда, высокоуровневое ПО для моек, где машины моют люди).
Вшивали веб-сервер в Малинку :) Работало стабильно.paul_155
03.06.2017 19:40в режиме электронной тетрадки? наличие машины, расход воды/пены контролируете?
pistol
03.06.2017 19:51Да, это электронный журнал. Например, услуга «экспресс с пеной» списывает 1 грамм того, 2 грамма сего и столько-то электричества. Физическое оборудование просили для табло и для учета въезжающих и выезжающих машин, чтобы персонал был честнее.
Личный кабинет клиенту не нужен в этой сфере, никто не пользуется ни приложениями ни прочими фишками. Просто когда машина грязная, едут куда удобнее и все. Маркетинг со скидками и т.д. почти не работает. Основная сложность в начислении ЗП и изменчивостью в этом бизнес-процессе.
RealFSA
03.06.2017 21:52+2А можно добавить в приложение возможность заказа "мойщиц в бикини", на определенное время на нужную мойку? А то знаете-ли люблю друзей шокировать. Ради такого понта, никаких денег не жалко! :)
paul_155
03.06.2017 21:55+2Личный кабинет с возможностью заказа услуг к определенному времени есть. Надо только добавить соответствующую услугу. Надо изучить вопрос.
izzholtik
Как стабильность? У нас на похожем проекте RPI3 регулярно зависает при использовании некоторых USB модемов.
paul_155
в интернет ходят по локалке через общий роутер. модемы пока не пробовали. какие у вас? как настраивается?
izzholtik
Alcatel 410D. Подключал через wvdial, всё стандартно, только добавил stupid mode, без него модем зависал. Вообще, я очень сильно недолюбливаю USB модемы как класс устройств, ещё ни одного не видел, который бы не глючил.
Сейчас поставил на чипсете от Huawei, опознаются как USB Ethernet. Распберри виснуть перестала, но сами модемы с 10% шансом криво стартуют после сброса питания. Связь есть, устройство опознаётся, в веб-морде горит «подключено», а связи нет. Просто жрёт пакеты, а ответа никакого.
Shtucer
Чем малину питаете?
izzholtik
Затрудняюсь сказать, честно говоря, но выглядит внушительно. От этого же блока кормится вся механика, и при её включении ничего не глючит. Не думаю, что проблема в питании.
Shtucer
А вы подумайте и проверьте. Малинка жуть как не любит плохое питание. Даже стрёмный USB-проводок может наделать вам головной боли. А уж если у вас там на USB висят модемы… А так-то "внушительно выглядеть" может что угодно, а что у него там "внутре неонка" не делает хорошего питания. Боюсь голословных оценок, но по моим ощущениям, процентов 80 нестабильности малинки — из-за питания.
izzholtik
Вряд ли. Очень вряд ли. БП выдаёт 12v@25A, за ним плата с преобразователями. Делал штатный техношаман, у меня нет особых причин ему не доверять. Да и не притащу я осциллограф к этой штуке, хех.
Вообще говоря, вместе с модемами заменили USB кабеля на экранированные, с фильтрами. Может, это помогло.
Shtucer
Ну, я тоже не ставлю под сомнение чью-то компетентность, вовсе нет!
Питание малинки через ЮСБ это самый простой вариант, домашний, я бы сказал. На плате какой-никакой стабилизатор есть. Но ЮСБ-провода — это головная боль. Питание через GPIO — изволь озаботиться стабилизированным питанием самостоятельно. ЮСБ-периферия из той же темы: хорошо если есть драйвера (это хорошо! но и тут подводные камни бывают), но еще лучше, если периферия потребляет считанные милливатты в пике. Для бытового/хоббийного применения это все не так важно, а для чего-то серьезного требуется вдумчиво почитать даташиты на… всё. Ну, это не мне вам объяснять.
Стабильного вам питания. И вечного аптайма.