Автор Тема: GPIO 40pin  (Прочитано 5891 раз)

Оффлайн zevs3344

GPIO 40pin
« : Ноябрь 16, 2015, 11:23:29 am »
Тему можете перенести в другую ветку, я не знаю.
Апельсинка мне была нужна, первым делом, как сервер.
Что мне удалось сделать:
1) samba server. жесткий диск саташный виден всем устройствам в локальной сети (+ авторизация). ftp пока не нужен
2) dlna. использовать решил mediatomb (вместе minidlna т.к. у него проблема с кодировкой). Нравится, что можно выключить транскодирование + всякие плюшки типа iptv
3) трансмишн торрент. пока не настроил, но тоже удобная весчь
4) сервер на nginx . планирую совсем скоро поднять домашний сайт
5) vnc + ssh уже работают. захожу спокойно с андроид.
6) GPIO как раз тема об этом.
http://4pda.ru/forum/index.php?showtopic=668774&view=findpost&p=44153913 вот я смог собрать с гита эту либу.
удалось помигать диодом. и включать выключать диоды на плате.
есть в комплекте 433мгц ресивер и тансмиттер.
нарыл либы с малинки но у нас разные пути к gpio на устройстве.
пытался что либо поправить но безрезультатно.
хотелось бы, чтобы кто нибудь отписался на их форуме оранжпи.орг и попросил либы или еще какие маны.
сам зарегался но не приходит подтверждение о регистрации. (пробовал и маил и гмаил).
Если есть единомышленники на форуме кто хочет использовать gpio то пишите.
« Последнее редактирование: Ноябрь 16, 2015, 11:36:27 am от zevs3344 »

Оффлайн Vital864

  • Посвященный
  • ***
  • Сообщений: 246
  • Лайков: 36
  • Карма: +4/-0
  • Orange Pi Plus
    • Просмотр профиля
Re: GPIO 40pin
« Ответ #1 : Ноябрь 19, 2015, 08:33:07 pm »
Zevs3344, поддерживаю твое общество в отношении GPIO. Собственно говоря, брал апельсин для реализации всего, что на нем стоит. Но больше всего задумок на GPIO. Сейчас пока что занимаюсь корпусом, разъемами и прочим железом, как будет готово - начну ковырять порт. В наличии есть arduino модуль FM-радио на Si4703. Первым делом буду его прикручивать. Что будет получаться или нет - буду отписывать. Сразу вопрос: какой компилятор используете? Если просто из командной строки управлять, то для меня это не подходит. Хочу написать полновесную программу с управлением модулей ардуино. Склоняюсь к установке KDevelop, потому как читал (где не помню) что программа, написанная на с++ работает быстрее, и жрет ресурсов меньше, чем на питоне, паскале и т.п. Что скажете?
Orange Pi Plus

Оффлайн warik

  • Administrator
  • Старейшина
  • *****
  • Сообщений: 536
  • Лайков: 151
  • Карма: +10/-0
    • Просмотр профиля
    • OrangePi.pp.ua
Re: GPIO 40pin
« Ответ #2 : Ноябрь 20, 2015, 12:46:26 am »
сам зарегался но не приходит подтверждение о регистрации. (пробовал и маил и гмаил).
Папку "Спам" проверяли?
Orange Pi PC, Orange Pi One, Orange Pi Zero

Оффлайн warik

  • Administrator
  • Старейшина
  • *****
  • Сообщений: 536
  • Лайков: 151
  • Карма: +10/-0
    • Просмотр профиля
    • OrangePi.pp.ua
Re: GPIO 40pin
« Ответ #3 : Ноябрь 20, 2015, 12:47:28 am »
Vital864, а зачем какой-то софт? Может стоит просто на PHP набросать код и рулить через WEB?
Orange Pi PC, Orange Pi One, Orange Pi Zero

Оффлайн Vital864

  • Посвященный
  • ***
  • Сообщений: 246
  • Лайков: 36
  • Карма: +4/-0
  • Orange Pi Plus
    • Просмотр профиля
Re: GPIO 40pin
« Ответ #4 : Ноябрь 20, 2015, 06:22:37 am »
Не, warik, устройство будет работать автономно, без подключения к интернету, управление через тач-скрин на мониторе 7 дюймов. РНР, я так понимаю, это язык для написания веб-страницы, мне это не подходит.
Orange Pi Plus

Оффлайн warik

  • Administrator
  • Старейшина
  • *****
  • Сообщений: 536
  • Лайков: 151
  • Карма: +10/-0
    • Просмотр профиля
    • OrangePi.pp.ua
Re: GPIO 40pin
« Ответ #5 : Ноябрь 20, 2015, 07:44:50 am »
Vital864, Ну я чисто как предложение. Локально тоже можно сделать. Поднимаете WEB сервер на орандже, потом запускаете браузер и рулите через свой тач-скрин дисплей.
Я Вас не подбиваю делать так. Лично я бы так сделал. Исключительно потому, что мне проще, что-то на PHP и подобных, написать управление, чем на тех же плюсах(C++).

Цитата: WIKI
PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц»; произносится пи-эйч-пи) — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений.
« Последнее редактирование: Ноябрь 20, 2015, 07:49:23 am от warik »
Orange Pi PC, Orange Pi One, Orange Pi Zero

Оффлайн Vital864

  • Посвященный
  • ***
  • Сообщений: 246
  • Лайков: 36
  • Карма: +4/-0
  • Orange Pi Plus
    • Просмотр профиля
Re: GPIO 40pin
« Ответ #6 : Ноябрь 21, 2015, 12:01:22 am »
warik, так очень много обходных путей, с помощью которых в память загружается много всякого хлама для работы программы. Я приверженец оптимального кода. Поэтому раз и на всегда решил дальше программировать на с\с++. Не один раз это уже оправдывало. Вот в линуксе я "новичок", поэтому и спрашиваю, какой компилятор будет работать лучше?
Orange Pi Plus

Оффлайн nkk

Re: GPIO 40pin
« Ответ #7 : Ноябрь 21, 2015, 12:58:18 am »
warik, не, если чел не шарит в веб-технологиях, лучше ему идти своим путем, потому как там тоже много нюансов, которые новичку могут показаться сложными. Но мне, например, сложно на каком-либо языке писать программу с графическим интерфейсом.

Я тоже буду на PHP писать потому что, для меня выражение "много хлама" - это как раз про графический интерфейс; гораздо проще написать серверное приложение, запустить веб-сервер и общаться по сети с устройством, например, с планшета и не нужно загружать устройство задачами рендеринга окон и виджетов.

XD но это взляд веб-программиста: еще не знаю, что буду делать, а уже установил пхп, нгинкс, мускуль и написал скрипт, который на веб-страницу выводит аяксом температуру из /sys/devices/virtual/thermal/thermal_zone0/tem и обновляет ее, хотел еще график по времени строить =)
« Последнее редактирование: Ноябрь 21, 2015, 01:01:08 am от nkk »
Спалено =(

Оффлайн zevs3344

Re: GPIO 40pin
« Ответ #8 : Ноябрь 22, 2015, 09:51:05 pm »
Zevs3344, поддерживаю твое общество в отношении GPIO. Сразу вопрос: какой компилятор используете?
Через gcc компилировал пару мини программ.
Запускал через терминал.
Сейчас как велосипед , работает ардуина и на ней несколько реле. Реле для ардуино подобных вещей. Но как я понял, реле управляются 5 вольтами. А у нас максимально HIGH gpio 3.3v. Что очень расстроило.
Есть всякие костыли типа транзисторов. Но это тоже пока не дело. Так что написаны две программы которые посылают сигнал на ардуино а она активирует пины реле.
Таким же образом можно управлять и gpio. Либа wiring OP работает более менее. Разбираться и разбираться ещё.
PHP тоже очень хорошо.
Хочу сделать , чтобы апельсинка могла через 433mhz связываться с ардуино мегой , узнавать все показания датчиков (температура, давление, влажность, свет, осадки на улице, влажность, температура, свет комнаты, влажность пальмы. )
И могла управлять 8 реле: вентилятор малины 12в, вентилятор аэротрубы системного блока, питание ежа майнинга, свет в комнате.
В будущем, будет стоять уно в коридоре и замерять влажность в ванной и реле вентилятора в ванной. Тоже по радио.
Хочется чтобы сигнал передавался типа
[10][команда] [of]
Где -
10: начало сигнала. И это наш сигнал.
Команда - та самая команда. Или сообщение.
of - окончание сообщения/сигнала

К примеру , 10 это сигнал к ардуино мега. 11 - сигнал к ардуино Уно. 12 - сигнал к апельсинке.

Так же, тоже планирую как то данные держать.
Можно запускать демона который каждый час собирает данные с датчиков и пихает в MySQL через pdo.
База такая много весить не будет.
Можно не демона а cron.
Так же, крон может из базы сортировать данные.
К примеру, незачем хранить данные каждый час за каждый день.
Вот заканчивается день, крон берёт 24 строки и желает среднюю.
Заканчивается месяц, берёт 31 значение и собирает среднее за месяц.
Будет несколько баз -
Общая. Из которой все берётся и строится график за сегодня на нашем поднятом сайте.
Недельная - строится график на 7 дней.
Месяц - строится график из 31 значения (дня)
Год - строится график как меняется климат за год.
Конечно, графики будут насчёт температуры. Хранить данные за год о датчике света, сигнале реле, датчике влажности моей пальмы не особо то и нужно.
Также , с сайта удобнее управлять реле.
Мало того, не только через сайт можно отправлять post запрос на сервер. А к примеру через программу таскер на андроид.
Делаем виджет вкл/выкл свет в комнате.
Жмем, таскер отправляет пост запрос по локалке на апельсин, он через радио отправляет сигнал на ардуино, а ардуинка врубает реле.
Будет так, если апельсин правда не умеет отправлять HIGH gpio 5v , а только 3.3в.
Питание 5в есть, да. Знаю. Реле с управляющим напряжением 3.3в не видел.

Найти пока нужные библиотеки не могу.
На 4пда в ветке малины , ребята строят умный дом.
У них там и пцфки и i2c шлейфы по квартирам.
Я тоже заказал контроллер расширяющий .
Можно и ацп заказать вам , если не планируете связать ардуино и апельсин. Так как у апельсина же нет аналоговых портов.

Оффлайн zevs3344

Re: GPIO 40pin
« Ответ #9 : Ноябрь 22, 2015, 10:03:16 pm »
Да. До этого всем этим рулила ардуино.
На ноуте линукс и крон.
На ардуино одета интернет шилда.
Крон собирал каждый час данные с ардуино с помощью пост запроса. Пост отправлялся, в ответ ардуино выводила данные заключённые в тег <arduino>24:12:36:765</arduino>
Это сообщение, грабилось . а потом функция explode (":")разделяла данные. 24 - температура внутри, 12 - снаружи, 36 влажность, 765 давление. Потом ещё 1:0:0:1 это состояние реле.
Все это пихалось в базу. Затем, либа для php строила графики в png , сохранялись они на винте.
Можно также по локалке было кидать гет запросы в Ардино для вкл/выкл реле. Через таскер, виджет на андроиде я мог включать свет в комнате или мигать диодом для теста . НО не все так идеально.....
Шилда виснет через некоторое время. Все это крах.
Ставить вачдог можно было бы НО при перезагрузке, сбрасываются реле , а значит, нельзя применять реле на чем то серьёзном. К примеру реле выдерживают 10 ампер тока , а было желание обеспечивать комп или что нибудь такое.
Был предложен вариант сделать посредника
Юзер (телефон ) -> интернет -> апельсин -> радио -> ардуино. Раз апельсин не могёт 5в управлять то пусть будет так.
Да, нюанс. Есть внешний айпи и проброщен порт к апельсину. Можно и через интернет управлять системой.
Вместе с гет или пост запросом, слать пароль какой нибудь для аутентификации пользователя.
В будущем и строить сайт красивый хочется. С визуальным 2Д планом квартиры и управлением. Разные кнопки вкл /выкл приборов, значки температур помещений. И освещение через аналоговые фото резисторы. Так удобнее видеть и определять есть ли свет в каком либо помещении.

Оффлайн zevs3344

Re: GPIO 40pin
« Ответ #10 : Ноябрь 22, 2015, 10:11:26 pm »
Чем хорош радиосигнал?
Тем что он беспроводной.
Апельсинка крута конечно что 40 пинов и все такое.
Но ардуино мега за каких то 400рубец имеет около 40 цифровых пинов и куча аналоговых.
Датчики у меня аналоговые - bmp180 давление и несколько фото резисторов, датчик дождя , датчик влажности пальмы. Куча реле, куча dht22.
Все это подключается к меге. К ней же радиоприёмник и передатчик.
К апельсинке думаю подключать также радиоприёмник и радиопередатчик , Dallas датчик температуры для замера температуры в корпусе апельсина. Самодельный корпус в котором стоит сата винч, апельсин. Сбоку торчит вай фай а сверху вентилятор.
Сейчас 37 градусов у процессора благодаря массивному радиатору и 12в вентилятору от ПБ ПК.
Также, есть небольшой дисплей. Аля Нокиа. Монохром с синей подсветкой. Там scl и какие то другие пины. Значит, к апельсинке подключить можно. Будет отображать что нибудь. Есть ещё всякие кнопки. Тоже можно задействовать. Было бы желание.
Извините за ошибки или еще что. Я не за пк. Сижу через телефон.

Оффлайн zevs3344

Re: GPIO 40pin
« Ответ #11 : Ноябрь 22, 2015, 10:19:57 pm »
Проект умного дома очень зацепил, правда.
Взаимодействовать с апельсинкой можно не только через виджет таскера включая свет.
Никто не мешает сделать демон который пингует каждые 10сек локалку на наличие моего телефона с адресом 192.168.0.123 и если он есть , то держать свет включённым если также время не более 22:00 и не менее 7:00. Если время не входит в этот промежуток времени а входит в 22:00-00:00 то включать тёплую подсветку.
Также , на наличие пользователя в определённой комнате , можно сделать, сканируя через блютуз. Он, блвго, включён всегда так как одет фитнес браслет использующий тот же блютуз.
Также, есть недорогие 150рублевые датчики движения и 200руб герконы магнитные.
Есть план повесить геркон на входную дверь.
При активации, записывать открывание двери в базу. И если пользователя нет в квартире, отправлять сообщение вк используя токен . либа есть в инете.
Да, кстати, легко пишется интерфейс с простым набором команд . есть вк страница моего бота.
Если ему написать "включи свет " то он эту команду определит и отправит нужный запрос на ардуино для включения реле света.
Это все я пишу чтобы вы тоже расширили свой кругозор т подумали, что вы хотите ещё сделать.

Оффлайн Vital864

  • Посвященный
  • ***
  • Сообщений: 246
  • Лайков: 36
  • Карма: +4/-0
  • Orange Pi Plus
    • Просмотр профиля
Re: GPIO 40pin
« Ответ #12 : Ноябрь 23, 2015, 07:34:44 pm »
Zevs3344, огромное спасибо за информацию. Хочу тоже поделиться своими соображениями.
Итак, наш апельсин не имеет аналоговых входов, цифровые работают на 3,5 вольта (сам еще не проверял) - это недостатки. Чтобы их перекрыть задумка следующая: в нашем GPIO есть порт I2C, созданный компанией Motorola. Работает безупречно, позволяет нацепить до 127 slave устройств. Видел на али платы расширения с этим протоколом, которые расширяют до 16 цифровых и аналоговых устройств. Поэтому, теоретически, можно нацепить кучу всяких входов\выходов как цифровых, так и аналоговых.
Далее, на том же али, есть в продаже модули ардуино, по очень демократичным ценам, такие как GPS, GSM, Bluetooth, модуль голосового управления и т.п. Все они поддерживают протокол I2C, что позволяет связать все во едино и управлять апельсином. Благо тактовая частота процессора позволяет это сделать без ущерба производительности. С помощью этих модулей ты можешь управлять входами\выходами через свой сотовый, а в непосредственной близости с помощью голоса. На ютубе есть ролики, где ребята с помощью ардуино голосом управляют освещением в квартире. Достаточно хорошо, без ошибок.
Также, в апельсине есть еще один порт, сейчас не помню какой, но тоже похожий на I2C. У меня в наличии есть модуль FM-радио, который работает по обоим протоколам. Так что есть возможность разделить задачи на разные потоки. Внутренние цифровые входа\выхода планирую использовать для управления вентилятором обдува корпуса и самого процессора. Кстати, я тоже поставил самодельный радиатор (в запчастях нашел, отпилил кусок) и прикрутил к нему маленький вентилятор на 12 вольт. Температура такая же - максимум 37 градусов, минимум (в простое) - 28.
Но всем этим добром я планирую управлять через одну программу, написанную самим, с графическим интерфейсом под себя. Придется помучиться, конечно, но я считаю это того стоит. Если программа работает на прямую с железом, безо всяких дополнительных либ и всего прочего, то появляется быстродействие и отсутствие зависаний, как ты говоришь, крах всей системе. Да, это крах, если это система обслуживает более менее ответственные объекты и зависает. По-моему я сейчас провел сравнение майкрософт и эйпл :)
Вот в этом вся и суть. Поэтому хочу еще раз спросить, кто-нибудь работал в компиляторе KDevelop? Есть желание начать с него.
Orange Pi Plus

Оффлайн Vital864

  • Посвященный
  • ***
  • Сообщений: 246
  • Лайков: 36
  • Карма: +4/-0
  • Orange Pi Plus
    • Просмотр профиля
Re: GPIO 40pin
« Ответ #13 : Декабрь 10, 2015, 06:18:30 am »
Ауууу, кто-нибудь юзал KDevelop или нет? Или есть среда для линукса получше?
Orange Pi Plus

Оффлайн UB3GAD

Re: GPIO 40pin
« Ответ #14 : Декабрь 10, 2015, 09:06:51 am »
Ну если нужны рюшечки то посмотри в сторону ubuntu sdk
Orange Pi PC