SmartLiving.ru

Обсуждение проекта
 
Текущее время: Ср ноя 22, 2017 12:14 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Пн окт 02, 2017 10:49 pm 
Не в сети

Зарегистрирован: Вт янв 29, 2013 9:16 am
Сообщения: 582
Откуда: Белозерск
Благодарил (а): 4 раз.
Поблагодарили: 141 раз.
Настроил приемник и передатчик 315/433 МГц на OrangePiPC
на RaspberryPi аналогично, только вместо WiringOP надо WiringPi

подключение:
приемник на ногу 7 (GPIO7)
передатчик на ногу 12 (GPIO1)
Можно изменить на другие.

1. Устанавливаем WiringOP
Код:
git clone https://github.com/zhaolei/WiringOP.git -b h3 
cd WiringOP
chmod 
+./build
sudo 
./build

проверяем работу
Код:
gpio readall

[Показать] Скрытый текст:
Код:
+-----+-----+----------+------+---+-Orange Pi+---+---+------+---------+-----+--+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 |     |     |     3.3v |      |   |  1 || 2  |   |      | 5v       |     |     |
 |  12 |   8 |    SDA.0 | ALT5 | 0 |  3 || 4  |   |      | 5V       |     |     |
 |  11 |   9 |    SCL.0 | ALT5 | 0 |  5 || 6  |   |      | 0v       |     |     |
 |   6 |   7 |   GPIO.7 | ALT2 | 0 |  7 || 8  | 1 | OUT  | TxD3     | 15  | 13  |
 |     |     |       0v |      |   |  9 || 10 | 0 | ALT4 | RxD3     | 16  | 14  |
 |   1 |   0 |     RxD2 | ALT5 | 0 | 11 || 12 | 0 | ALT3 | GPIO.1   | 1   | 110 |
 |   0 |   2 |     TxD2 | ALT5 | 1 | 13 || 14 |   |      | 0v       |     |     |
 |   3 |   3 |     CTS2 | ALT3 | 0 | 15 || 16 | 0 | ALT3 | GPIO.4   | 4   | 68  |
 |     |     |     3.3v |      |   | 17 || 18 | 0 | ALT3 | GPIO.5   | 5   | 71  |
 |  64 |  12 |     MOSI | ALT4 | 0 | 19 || 20 |   |      | 0v       |     |     |
 |  65 |  13 |     MISO | ALT4 | 0 | 21 || 22 | 0 | OUT  | RTS2     | 6   | 2   |
 |  66 |  14 |     SCLK | ALT4 | 0 | 23 || 24 | 0 | ALT4 | CE0      | 10  | 67  |
 |     |     |       0v |      |   | 25 || 26 | 0 | ALT3 | GPIO.11  | 11  | 21  |
 |  19 |  30 |    SDA.1 | ALT4 | 0 | 27 || 28 | 0 | ALT4 | SCL.1    | 31  | 18  |
 |   7 |  21 |  GPIO.21 | ALT3 | 0 | 29 || 30 |   |      | 0v       |     |     |
 |   8 |  22 |  GPIO.22 | ALT3 | 0 | 31 || 32 | 0 | ALT3 | RTS1     | 26  | 200 |
 |   9 |  23 |  GPIO.23 | ALT3 | 0 | 33 || 34 |   |      | 0v       |     |     |
 |  10 |  24 |  GPIO.24 | ALT3 | 0 | 35 || 36 | 0 | ALT3 | CTS1     | 27  | 201 |
 |  20 |  25 |  GPIO.25 | ALT3 | 0 | 37 || 38 | 0 | ALT5 | TxD1     | 28  | 198 |
 |     |     |       0v |      |   | 39 || 40 | 0 | ALT5 | RxD1     | 29  | 199 |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+-----+


2. Устанавливаем 433Utils
Код:
git clone --recursive git://github.com/ninjablocks/433Utils.git
cd 433Utils/RPi_utils

перед тем как делать make надо поменять порты к которым подключены приемник и передатчик
правим файлы: RFSniffer.cpp, codesend.cpp и send.cpp
находим там строчку в которой задается порт
int PIN = 0;
для RFSniffer.cpp порт 7
для codesend.cpp и send.cpp порт 1
теперь можно делать:
Код:
make


[Показать] Скрытый текст: если не компилируется и выдает ошибки
ошибка:
Код:
make: *** Нет правила для сборки цели «../rc-switch/RCSwitch., требуемой для «send». Останов.

решение:
Код:
cd 433Utils
git submodule init
git submodule update
cd RPi_utils
make

ошибка:
Код:
g++ -DRPI   --../rc-switch/RCSwitch.../rc-switch/RCSwitch.cpp
g
++ -DRPI   --o send.o send.cpp
g
++ -DRPI  ../rc-switch/RCSwitch.o send.-o send -lwiringPi
//usr/local/lib/libwiringPi.so: undefined reference to `pthread_join'
//usr/local/lib/libwiringPi.so: undefined reference to `pthread_create'
//usr/local/lib/libwiringPi.so: undefined reference to `pthread_cancel'
collect2: error: ld returned 1 exit status
Makefile
:8: recipe for target 'send' failed
make
: *** [send] Error 1

решение:
в файле /433Utils/RPi_utils/Makefile
в трех строках после
-lwiringPi добавить через пробел параметр -lpthread


теперь в консоли можно получать данные и и отправлять, но нам надо это делать в МД
3. Устанавливаем pi-switch-python
ставим необходимые пакеты
Код:
sudo apt-get install python-dev libboost-python-dev python-pip

устанавливаем pi-switch-python
Код:
git clone https://github.com/lexruee/pi-switch-python.git
cd pi-switch-python
sudo python setup
.py install


Теперь нам надо чтобы код отсылал в МД данные, для этого надо модифицировать файл resiever, пользователь devoff модифицировал файл но у него под питон 3, у меня был питон 2.7 по этому мой файл выглядит так:

[Показать] Скрытый текст:
Код:
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
@author     Alexander Rüedlinger <a.rueedlinger@gmail.com>
@date       30.07.2015

"""
#for python3:
#import requests
#for python2.7
import urllib
#---------------
from pi_switch import RCSwitchReceiver
import time

receiver 
= RCSwitchReceiver()
#порт приемника
receiver.enableReceive(7)

num = 0


while True
:
#      receiver.enableReceive(2)

#      print "Start : %s" % time.ctime()
      time.sleep( 0.1 )
#      print "End : %s" % time.ctime()
      
      if receiver
.available():
         received_value = receiver.getReceivedValue()

         if received_value:
            num += 1
            
#for python3
            #url = 'http://192.168.1.20/objects/?object=RCSwitch&op=set&p=code'
            #payload = {'v':received_value }
            #r = requests.get(url, params=payload)
            #print(r.url)
            #for python2.7
            rec_code = str(received_value)
            url = "http://localhost/objects/?script=RCSwitch&rcswitch=" + rec_code
            page 
= urllib.urlopen(url)
            text = page.read()
            page.close()
            #------------------

            print("Received[%s]:" % num)
            print(received_value)
            print("%s / %s bit" % (received_value, receiver.getReceivedBitlength()))
            print("Protocol: %s" % receiver.getReceivedProtocol())
            print("")
 
            receiver
.resetAvailable()
time.sleep (0.2)
 


измените строку МД на свою, в данном примере используется стандартный сценарий RCSwitch который идет по умолчанию в МД
если питон 3 то раскоментируйте строки для питона 3 и закоментируйте для питона 2.7

сохраняем файл с названием pi_receiver.py
добавляем в загрузку этот файл под root, например rc.local
sudo python /root/pi_receiver.py
теперь код будет посылаться в МД.
В МД сценарий делаем например так
Код:
$id=$params['rcswitch'];
if (
$id=='12345') {
 
//sensor 1
callMethod("Switch1.switch");
}
if (
$id=='12346') {
 
//sensor 1
callMethod("Switch2.switch");
}
 

включение/выключение кнопок Switch

Для отправки кода через передатчик копируем из папки 433Utils/RPi_utils файл codesend
вставляем в место откуда надо отправлять код:
Код:
exec ("/var/www/codesend 777777"); 

где 777777 заменяем на свой код.

При чем Вы можете подключить и 315 МГц и 433 МГц приемники и передатчики одновременно на разные порты

_________________
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Delphin и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB