Jump to content
admin

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

Recommended Posts

Вот прога на Си, считывает с 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

Share this post


Link to post
Share on other sites

Сваял полезную фичу в связке 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

Edited by I am mechanic

Share this post


Link to post
Share on other sites

Всем привет.

Появилась проблема с перенаправлением видеотрансляции с 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, но как такое реализовать - не знаю. Что-то в виде консольного режима управления.

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

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

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

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

ssensor_beeper.rar

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

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

Share this post


Link to post
Share on other sites

А если так запускать 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)? Может у кого есть готовый контейнер?

Edited by sezam

Share this post


Link to post
Share on other sites

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

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

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

Edited by Vascom

Share this post


Link to post
Share on other sites
Guest Гость

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

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

Share this post


Link to post
Share on other sites
Guest Гость

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

Share this post


Link to post
Share on other sites

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

Edited by Vascom

Share this post


Link to post
Share on other sites
Guest Гость

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

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

Share this post


Link to post
Share on other sites

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

pi_b_gpio_i2s.gif

Edited by S_Stalker

Share this post


Link to post
Share on other sites
Guest Гость

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Guest Гость

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

Share this post


Link to post
Share on other sites

Вот сваял проектик 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

Share this post


Link to post
Share on other sites
Guest Антон
В 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 ());     // Выход из программы
}

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

 

 

 

Share this post


Link to post
Share on other sites




 

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


 

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

Цитата

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

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

 

Edited by I am mechanic

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By admin
      Официальный поставщик Raspberry Pi в России
      В ролике сделаем первые шаги в работе с библиотекой OpenCV. Размытие и наоборот повышение четкости картинки, свертка и конвертация цветовых моделей. 
      Прошлое видео из цикла
    • By aitras
      Продам комплект Raspberry Pi 2 + пластиковый корпус + SD-карта Sony 16Gb.
      2000 рублей.

      На один из разъемов USB принудительно напаяно питание +5V с GPIO, чтобы можно было подключить внешний HDD.
      Отправлю по России.
    • By admin
      В ролике показано как скомпилировать и установить библиотеку OpenCV 4.1.0 на Raspberry Pi 3.
      Используйте промокод CXEMNET и получите скидку 10% в магазине https://www.seeedstudio.com/ при покупке от 150$!
      https://www.seeedstudio.com/category/Raspberry-pi-c-1010/Raspberry-Pi-3-Model-B--p-3037.html малинка
      https://www.seeedstudio.com/category/Raspberry-pi-c-1010/Raspberry-PI-VGA666-DPI-dtoverlays-Module.html модуль vga666
      https://www.seeedstudio.com/category/Raspberry-pi-c-1010/Raspberry-Pi-Camera-Module-V2-p-2800.html камера
      Команды из видео.
      Открыть настройки raspberry Pi: 
      sudo raspi-config
      Далее выбираем Advanced Options → Expand Filesystem. Перезагружаемся.

      Установка требуемых пакетов:
      sudo apt-get install cmake cmake-curses-gui libgtk2.0-dev
      sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libx264-dev libxvidcore-dev
      sudo apt-get install libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev
      sudo apt-get install gfortran libatlas-base-dev
      Увеличение размера файла подкачки. 
      sudo nano /etc/dphys-swapfile
      Находим строчку CONF_SWAPSIZE=100
      И увеличиваем число например до 1024.
      Перезапускаем службу.
      sudo /etc/init.d/dphys-swapfile stop
      sudo /etc/init.d/dphys-swapfile start
      Создаем папку opencv в домашнем каталоге и переходим в нее
      cd /home/pi
      mkdir opencv
      cd opencv
      Скачиваем архивы с исходниками с помощью утилиты wget
      wget https://github.com/opencv/opencv/archive/4.1.0.zip -O opencv_source.zip
      wget https://github.com/opencv/opencv_contrib/archive/4.1.0.zip -O opencv_contrib.zip
      Распаковываем архивы.
      unzip opencv_source.zip
      unzip opencv_contrib.zip
      И теперь можно их удалить
      rm opencv_source.zip
      rm opencv_contrib.zip
      Теперь переходим в папку opencv-4.1.0 и создаем в ней папку build
      cd opencv-4.1.0
      mkdir build
      cd build
      Настраиваем параметры сборки. Обратите внимание на путь до дополнительных модулей!
      cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=OFF \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv/opencv_contrib-4.1.0/modules \
      -D BUILD_EXAMPLES=ON \
      -D BUILD_DOCS=ON \
      -D ENABLE_NEON=ON ..
      Компиляция в 1 поток
      make -j1

      Компиляция в 4 потока (только если у вас хорошее охлаждение малинки)
      make -j4

      Установка библиотеки
      sudo make install

      Настройка динамического связывания
      sudo ldconfig

      Проверка работоспособности библиотеки.
      python3
      import cv2
      cv2.__version__

      В результате, библиотека должна выдать номер версии, которую вы установили.
    • Guest Skazo4nik
      By Guest Skazo4nik
      Добрый день!
      Работаю над дипломной работой. Разрабатываю аппаратно-программный комплекс для отображения расписания. Касательно программной части - вопросов нет, а вот с аппаратной - много. Раньше с микроконтроллерами не сталкивалось работать. Задача следующая: нужно с помощью микроконтроллера (arduino, raspberry и др) и дисплея показать текущее расписание аудитории, которое можно получить отправив запрос на сервер, который я буду писать. Т.е задача просто отобразить данные на экранчике и если будут какие-то кнопки или экран будет позволять, то еще как-то манипулировать: тип показать расписание на следующий день. Так вот проблема в том, что какой под это дело выбрать микроконтроллер и собственно экранчик я не знаю, т.к. больше по программной части специализируюсь. Вот тут я видел мониторчик, который мне понравился, но я не знаю сложно ли будет закодить вывод данных.
      Спасибо за внимание!
       
×
×
  • Create New...