admin

FAQ Raspberry Pi - Миникомпьютер с Linux за 25$/35$

470 сообщений в этой теме

Вот прога на Си, считывает с gpio_07 RasPi уровень сигнала - 1 или 0. На gpio подключен

Sound sensor module.

Like this - http://ru.aliexpress...2319235663.html

Программа ваялась как модуль - для прикручивания к Asterisk посредством agi - sound sensor, но не нашел решения, пока забил (если кто подскажет код - как прикрутить к asterisk через agi, stdout, stdin и тэдэ, буду признателен).

Прогу можно задействовать, например - для включения света (или еще чего) по хлопку или произнесенному слову - с выводом управления через другие GPIO....

Прикрепил исходник и готовый вариант...

ssensor.c.rar

ssensor.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сваял полезную фичу в связке Asterisk + motion. Как поднять motion см. здесь - http://forum.cxem.ne...40#comment-2284732... (449 - пост)

Как поднять Asterisk см. здесь - http://forum.cxem.ne...5 :) Can i go...

Фича пашет следующим образом - при дозвоне на Asterisk и наборе допномера 69 - производится запуск скрипта:

[sendcam]
exten => 69,1,System(/home/astr/sendcam.sh)
exten => 69,n,Playback(/var/lib/asterisk/answer/mailgo)
exten => 69,n,Hangup

С последующим голосовым оповещение что мыло отправлено...

А отправляется фотка (snapshot), которая делается motion - как написано по указанной выше ссылке... Фотка выбирается из дирректории по времени звонка, из скрипта sendcam.sh - все станет, may be ясно - прикрепил...

Теперь пошагово - что делает скрипт:

- обновляет dns - сервера на гугловский 8.8.8.8 (на всякий случай)..

- зипует с паролем выдернутую из папки motion фотку, сделанную в момент дозвона, реалтайме. Бывает пролет - фотка еще не сделана мотионом - не было движения например, а скрипт отработал и приходит пустое письмо. Тогда надо повторить дозвон с донабором 69.. (не нашел пока решения для устранения этого бага)..

- кодирует zip-архив в base64 кодировке, иначе ssmtp - не сможет отправить вложение - фото.. Кстати его хоть и обозвали эмулятором почтовика, а работает он как часики и без танцев с бубном.. Как поднять его здесь - http://forum.cxem.ne...2 (пост №5)

- отправлят посредством ssmtp - зазипованно-закриптованную и закодированную фотку (snapshot) на нужный адрес...

- шредером скребет диры где все добро лежало..

Вот собственно и все.. Можно поставить в Авто все это хозяйство скрыто и делать фоты при включении зажигания, тогда надо в rc.local - до строки exit 0, прописать путь до нашего скрипта, например:

/home/sendcam.sh

Тогда при старте ОС, будет стартовать и наш скрипт - но успеет ли запустится мотион и сделать фотку - до этого момента - большой вопрос!? Для решения этого - в скрипте sendcam.sh - первой строкой надо дописать - спать 30 секунд, после этого исполняться - например..

sleep 30

Можно также закинуть в cron, дальше фантазия рулит... :)

Прикрепил 7zip, ставится так:

tar jxvf p7zip_15.14.1_src_all.tar.bz2
cd p7zip_15.14.1/
make
sudo ./install.sh
7za

Теперь как увидеть фотку в Винде (мой вариант).. Приходит письмо в теле которого белиберда в кодировке base64, вот кусок кода:

AMxH6uSfUMFhmi3I3XXbpAJVVogV8zJoMvESCw0VfBAV+GLnq28nmrJzNpqS+rjw3l+nCHYn4kD6
t+T0rNV8Zx7nBAjCwdX9bqIksKqMpXIXjRYGPiuI6cUn8ZB5cvzNrKVxSteUuQfVttORWUWWnzjw
Yj744aft0/oYO+Wu12gEFoWkAf2XGH57yKK3glR/xm2IoSH04x9kh1GBY4rV+0232St3R9kVdUu7
cGnlZWtLjTDUyqDnB9SCFStE1aSFqQYyoxPxTDob5swZmDpJLa7/QB09aPq2HSwARcjqr2EqkQGH
bFBPNCEx0weD0BqXUY2HeKI6MQDF2J4uR/wALKoZ0INg1Qe4tEXP1n3w3f0rf3V8+cTy/g20jpTN
T6SnH26MFWRs/uofJhaC6HejGnnzrWKI3zAPVWDxn5og+5uda8q1ufxJoMqvbllQ1RZ6hrmp8WzA
u1Rn1gg6w//EjOXbdrZRgr1nAPjq4w4BEjvAkpWfEWkNfe+nwF/CUlhNO3ZijyHigAwgTvhBpWI4
t2PwmjeRzxdYUnkT18nHYDbMb3Lu82jLcx1GbnaE+701oxY6UGT6tQtBOhp0lOU7KD9j3NWFdy+U
UZNogDMvmitCSBFWuieZ50D/1SxOkGKBaaw9fxLrtckBJkoEAtoRofagdTL/yvvJaLLYNMe0HUxL
iUqC3U5mg67hivGrBkGlxKEBXLgr1MHeeYnxZMnjttqtj+trTcY/oXdh7ajpX/h2jXUGIFYKWFfq
vaGaaVQpFHOSjLhe/9sSeKYJydHxxYKx3A7CkpQ80pexzkaLEEckLL5N0xDgywdUMOdUdtG/6KTp
pJLm0zEEp6rmlHaTPRrTlLD1xWmGgOH9zuzAYGC4K3cVNwzxWolD8rqPc0kJowxu+gsfVcGO5RW2
i5tfBsfaJJCz9BFFb7IMoFNCj6Pf9TjlPK7Py+JKwkAovqZICabhwxgzn+u3inwZoED16PfvQsHc
rN2jTjn525nDLinFb1pP3pEgDpfS0skEZZMniSaZup7D5TqkZgiWepyffg5g0O/n9iGN1tN4rHUU

Все это дело надо декодировать программой - base64.exe - прикрепил... Выделяем Ctrl-A, весь код в письме (а НЕ сохраняем письмо в .txt) так как будет сохранена и обертка smtp-письма - декодировщик выдаст ошибку.. Открываем пустой текстовик - вставляем код и сохраняем с расширением .b64. Натравливаем на него программу base64.exe, напримет так:

base64.exe -d send.b64 send.zip

Получаем на выходе zip-архив, распаковываем с вводом пароля и зрим фотку, можно всю эту процедуру загнать в батник, здесь поле для творчества.. The End...

sendcam.rar

base64.zip

p7zip_15.14.1.rar

Изменено пользователем I am mechanic

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
sezam    0

Всем привет.

Появилась проблема с перенаправлением видеотрансляции с RaspiCam.

Запускаю камеру командой:

ffserver -f /home/www/ffserver.conf & raspivid -o - -t 0 -vf -hf -fps 30 -b 6000000 | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -f flv http://127.0.0.1/webcam.ffm

При работе в консольном режиме открывается экран видеопотока и я вижу во весь экран изображение с камеры. При этом торможения никакого замечено не было. При этом в локалку изо не передается.

В итоге, хочу получить что-то в виде "картинка-в-картинке".

Сервер apache2 поднят. Хочу сделать пока простую html-страничку с её размещением на RasPi, на которой была трансляция с RaspiCam без торможений.

Есть ещё вариант размещения на web-странице контейнера с возможностью ввода команд прямо в linux, но как такое реализовать - не знаю. Что-то в виде консольного режима управления.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Прогу можно задействовать, например - для включения света (или еще чего) по хлопку или произнесенному слову - с выводом управления через другие GPIO....

Приинклюдил модуль бипера к проге ssensor - теперь при внешнем звуке, запускается модуль beeper и Малина отзывается - пикает бипером - подключенным к RPI_GPIO_P1_12 и GND, через резистор 1 кОм.. См.комменты.. Можно вместо бипера навесить диод или... все что фантазия подскажет.. Естесстно с правильной схемой подключения, любой нагрузки..

Прикрепил исходники...

ssensor_beeper.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
S_Stalker    21

Чтобы не плодить тем спрошу здесь. В версии pi3 из разъёма GPIO можно снять I2S или прийдётся ставить модуль ? Поиском пользовался, есть несколько вариантов, но внятного ответа именно по "железному" i2S не нашёл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Загрузка...
sezam    0

А если так запускать http://localhost/webcam.ffm ?

Получилось вот так:

raspivid -t 999990 -w320 -h240 -o - | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8025/}' :demux=h264

При этом загрузка системы составила 3-5% и задержка 1-1.5 секунды, а посмотреть потоковое видео в VLC можно так:

rtsp://<IPofRaspberryPi>:8025/

Теперь другой вопрос. Как организовать контейнер для потокового видео на странице HTML сайта, поднятого на Raspberry (Apache2)? Может у кого есть готовый контейнер?

Изменено пользователем sezam

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Vascom    635

Чтобы не плодить тем спрошу здесь. В версии pi3 из разъёма GPIO можно снять I2S или прийдётся ставить модуль ? Поиском пользовался, есть несколько вариантов, но внятного ответа именно по "железному" i2S не нашёл.

Ты имеешь в виду I2C? Можно:

Raspberry-Pi-GPIO-pinout-diagram-new.png

Изменено пользователем Vascom

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Гость   
Гость Гость

I2S - это одно, а I2C - другое

Лишь бы напостить... :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Гость   
Гость Гость

Тогда совершенно очевидно что ты не в теме вообще...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Vascom    635

Вы всегда оскорбляете пытающихся помочь?

Изменено пользователем Vascom

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Гость   
Гость Гость

Вопрос поставлен некорректно.

Да и лучше бы пост повисел без ответа, чем с такими "помощниками".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
S_Stalker    21

В аттаче картинка из pi b+ . Мой pi 3 ещё не приехал, самому проверять не на чем.

pi_b_gpio_i2s.gif

Изменено пользователем S_Stalker

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Гость   
Гость Гость

С третьей PI замануха относительно модуля Wi-Fi, занимает UART. А относительно i2s - не, не слышал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
S_Stalker    21

Да я слышал что UART стал наполовину софтовым у 3 pi. Универсализация и рационализация, мать её...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Гость   
Гость Гость

Поэтому и сижу на 2-й, разница в производительности не очевидная, а вот вопросы к третьей версии есть

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот сваял проектик gsm-сигнализации в зачаточном виде.. Работает это "чудо мысли" так - к RaspPi подключен обычный геркон типа ИО102-2, через резистор 1 кОм (см. комменты в gerkon.c - прикрепил)..

При размыкании геркона - производиться запуск скрипта - alarm_gerkon.sh (прикрепил..)

Который в свою очередь посредством call-файла (прикрепил..) производит дозвон на нужный номер.. Тема разъжевана здесь http://forum.cxem.ne...2

У себя прогу gerkon - закинул в cron.. Почему не запустил в цикл? - читаем комменты..

*/2 * * * * /root/gerkon/gerkon

Кто доваяет прогу до уровня цикла - просьба выложить..

gerkon.rar

alarm_gerkon.rar

gkalarm.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Антон   
Гость Антон
В 22 августа 2016 г. в 12:58, I am mechanic сказал:

// Компиляция: gcc -o server server.c -lbcm2835 -lrt
// Исполнение: sudo ./server

#include <stdio.h>
#include <bcm2835.h>

#define PIN1 RPI_V2_GPIO_P1_03
#define PIN RPI_V2_GPIO_P1_05

int main()
{

        if (!bcm2835_init())   // Инициализация GPIO
        return 1;              //Завершение программы, если инициализация не удалась
        bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_INPT); // Порт на ввод
bcm2835_gpio_fsel(PIN1, BCM2835_GPIO_FSEL_OUTP);
bcm2835_gpio_set_pud(PIN1, 2);

while(1){
          while(!bcm2835_gpio_lev(PIN))
        {bcm2835_delay(5000);
        if(!bcm2835_gpio_lev(PIN)){}}

         printf("Серверная открыта!\n");
         system("/home/pi/email");
	 system("python /home/pi/ds18b20/Open.py");

         while(bcm2835_gpio_lev(PIN))
        {bcm2835_delay(5000);
        if(bcm2835_gpio_lev(PIN)){}}

        printf("Серверная закрыта!\n");
        system("/home/pi/email-out");
	system("python /home/pi/ds18b20/Closed.py");

}
        return (bcm2835_close ());     // Выход из программы
}

я вот так цикл организовал

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах




 

В 23 сентября 2016 г. в 02:46, Гость Антон сказал:
я вот так цикл организовал...


 

Если программу с циклом:

Цитата

while(1){
          while(!bcm2835_gpio_lev(PIN))
        {bcm2835_delay(5000);
        if(!bcm2835_gpio_lev(PIN)){}}
 

запустить, он разве не съедает всю память и система прихлопнет процесс? Или как-то иначе код работает? 

 

Изменено пользователем I am mechanic

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: Андрей18
      Есть схема подключения (см. прикреплённый файл). Хочу понять преимущество подобного подключения.

      Я бы вместо резистора R2 подсоединил ключ, и к "земле" бы тут ничего не подключал.

    • Автор: Андрей18
      Хочу не в теории, а на практике ознакомиться работой с транзисторами. Так же на будущее хочу включать и выключать "малинкой" цепи, где идёт 5V, 9V, 12V, 24V и т.д. Для начала решил поэксперементировать с транзистором BC547B, нашёл для него документацию datasheet.

      Примерная схема:
      От пина "малинки" (напряжение 3,3V, максимальная сила тока 16mA) через ограничительное сопротивление R1 идёт ток на базу транзистора.
      Колектор транзистора подключён к "плюсу" 5V батарейки (крону понижаю при помощи LM2596).
      Эмиттер транзистора будет подключён к "полезной нагрузке" (двум светодиодам с резистором R2, а потом к моторчику), а после этой "полезной нагрузки" провод разделяется и идёт одним концом к "минусу" батарейки, а вторым к "земле" "малинки".
      Хочу расчитать значение сопротивления R1, чтобы ничего не сжечь.
      Rmin=U/Imax=3,3V/16mA=207Om.
      Следовательно, беру ближайший резистор, что у меня есть 330Ом.
      Высчитываю получившиюся силу тока: I=U/R=3,3V/330Om=0,01A=10mA.
      Теперь открываю документацию к транзистору "DC Current Gain" - "(IC = 100 mA, VCE = 5.0 V)" = 180
      Т.е. при подачи напряжения на пин через транзистор сможет течь ток с напряжением 5V и силой тока в 1,8A (10mA*180=1800mA)?
      Что-то мне эти расчёты не нравятся. В чём ошибка?
    • Автор: ktulx
      Приветствую.
      Имеется вот такая простая схема.
      В качестве шим-контроллера выступает PCA8695 (подключённый к Raspberry Pi). 
      Блок питания: -48В, +12В, +5В.
      Требуется PWM притянуть к земле непосредственно при подаче питания на какую-нибудь секунду-полторы, потому что 3.3В, выходящие с Малины, появляются с задержкой и как результат - вспышка светодиодов.
      Пытался что-нибудь придумать на полевиках - так и не додумался.
      Единственные варианты, которые ещё не пробовал - коммутировать непосредственно 48В или поставить ещё один оптрон в параллель + LDO на 3.3В, после загрузки подавать Малиной высокий уровень на катод оптрона.
      Есть ли какое-то решение попроще? Помогите, пожалуйста.
       
    • Автор: Serge77
      Обязанности:
      · Разработка радиоэлектронных и GSM-устройств: разработка схем, программирование, разводка печатных плат, разработка документации.
      · Программирование микроконтроллеров STM, AVR, ARM, PIC на языке С/С++
       
      в личку или en@argument74.com
    • Автор: Антон Миханько
      Здравствуйте.
      Собираю из Raspberry удобное подобие планшета, чтоб можно было бы кодить в машине, автобусе, кровати и без проводов. 
      Задумался над тем, чтобы прикрутить к малинке колонки (вдруг захочу еще и фильм глянуть). Аудиовыход имеется, мелкие динамики куплю. 
      Думаю дальше сборка будет как у наушников, плюс\минус динамика к соответствующему контакту аудио-штекера.
      С этим понятно (если я не ошибаюсь), но, если я так сделаю, то мой аудио-выход малины будет всегда занять колонками, а если я захочу подключить наушники, то динамики придется снимать.
      На планшетах, ноутбуках при подключении наушников динамики отключаются сами. Как бы такое же сотварить с малинкой?