Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Raspberry Pi
  3. Много различных датчиков и RPI

Много различных датчиков и RPI

Запланировано Прикреплена Закрыта Перенесена Raspberry Pi
19 Сообщения 1 Posters 275 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • piP Не в сети
    piP Не в сети
    pi
    написал в отредактировано
    #3

    Просто нужно подбирать цифровые датчики, которые работают по одному протоколу- SPI, или I2C, либо по любому другому. Ну и подключать их уже хорошим кабелем, например STP. Слышал, что таким образом I2S на 100 метрах работала вполне прилично.

    1 ответ Последний ответ
    0
    • piP Не в сети
      piP Не в сети
      pi
      написал в отредактировано
      #4

      А как все 10\20 датчиков подключить непосредственно к самой плате? Я же не могу все 20 датчиков повесить на 4 ножки платы RPI, или все же возможно?

      Каким тогда образом обрабатывать все сигналы идущие с датчиков?

      1 ответ Последний ответ
      0
      • piP Не в сети
        piP Не в сети
        pi
        написал в отредактировано
        #5

        Если за основу брать статью http://raspberrypi.ru/readblog/150/
        то получается что возможно подключение N - устройств и с помощью i2cdetect определить все подключенные устройства.

        Я так понимаю что каждое устройство присылает какой-то пакет с собственным идентификатором?

        1 ответ Последний ответ
        0
        • piP Не в сети
          piP Не в сети
          pi
          написал в отредактировано
          #6

          Совершенно верно. I2C- это последовательная шина. Каждое устройство на ней имеет свой уникальный адрес. Когда вы хотите обратиться к какому-то устройству, вы передаёте адрес этого устройства, по которому это устройство и определяет, что именно с ним вы и хотите поговорить.

          1 ответ Последний ответ
          0
          • piP Не в сети
            piP Не в сети
            pi
            написал в отредактировано
            #7

            ОК! На данном этапе я понял что, для того что бы определить все подключенные устройства к RPI по протоколу I2C необходимо воспользоваться командой i2cdetect. С ее помощью мы получим «адрес» конкретного устройства и с помощью команды i2cget задавая конкретный «адрес» нашего устройства возможно считывания данных на конкретном устройстве.
            Поскольку I2C являться последовательной шиной, то для того что бы считать данные с N – устройств необходимо обратится к N1 – устройству, затем к N2 – устройству и так далее с шагом +1.

            Я вот только не понимаю как все эти N+1 – устройство правильно подключить к самой плате RPI?

            1 ответ Последний ответ
            0
            • piP Не в сети
              piP Не в сети
              pi
              написал в отредактировано
              #8

              Где:
              Master- это RPi
              Slave- куча ваших датчиков
              SDA- это P1-03 на RPi
              SCL- это Р1-05 на RPi

              1 ответ Последний ответ
              0
              • piP Не в сети
                piP Не в сети
                pi
                написал в отредактировано
                #9

                То есть, другими словами это может быть некая «палата» в которую «впаиваются» 4ри провода от каждого отдельного датчика и сама плата подключена к RPI посредству SDA и SCL?

                1 ответ Последний ответ
                0
                • piP Не в сети
                  piP Не в сети
                  pi
                  написал в отредактировано
                  #10

                  Нет.
                  Это длинный кабель с 3-4 жилами, к которому подключаются все устройства, в том числе и RPi.

                  1 ответ Последний ответ
                  0
                  • piP Не в сети
                    piP Не в сети
                    pi
                    написал в отредактировано
                    #11

                    Но в принципе можно и типа хаба сделать, тогда это будет платка, как вы и написали.

                    1 ответ Последний ответ
                    0
                    • piP Не в сети
                      piP Не в сети
                      pi
                      написал в отредактировано
                      #12

                      Мне кажется что платка является оптимальным решением, так появляется возможность «централизованного» управление всеми датчиками. На плату подается отдельное питания для датчиков, а SDA и SCL подключены последовательно, и на выходе уже подключены SDA и SCL уже непосредственно к RPI.

                      С точки зрение проводо-затрат это выйдет дороже, но зато если один из датчиков выходит из строя остальные остаются работать.

                      А есть ли какие-то ограничение на кол-во устройств подключенным к шине I2C ?

                      1 ответ Последний ответ
                      0
                      • piP Не в сети
                        piP Не в сети
                        pi
                        написал в отредактировано
                        #13

                        А есть ли какие-то ограничение на кол-во устройств подключенным к шине I2C ?

                        127

                        1 ответ Последний ответ
                        0
                        • piP Не в сети
                          piP Не в сети
                          pi
                          написал в отредактировано
                          #14

                          Я вот посидел, почитал еще... и возник вопрос, допустим если использовать протокол I2C, повесить на него порядка 5 датчиков температуры, считывать данные будет без проблемно.
                          А как быть с потокомерами (счетчиками воды)? Допустим взять INS-FM19 которые при подаче воды начинает выдавать RPM сигнал, как его считывать в реальном времени, ведь соединение последовательное?

                          1 ответ Последний ответ
                          0
                          • piP Не в сети
                            piP Не в сети
                            pi
                            написал в отредактировано
                            #15

                            Можно данные датчика считывать микроконтроллером, установленным непосредственно у датчика, а сам микроконтроллер уже подключить по I2C к RPi. А можно сам датчик непосредственно продключить к RPi через GPIO.

                            1 ответ Последний ответ
                            0
                            • piP Не в сети
                              piP Не в сети
                              pi
                              написал в отредактировано
                              #16

                              "С точки зрение проводо-затрат это выйдет дороже, но зато если один из датчиков выходит из строя остальные остаются работать."
                              Они в любом случае остаются работать. Хоть десять выйдут из строя, они полностью независимы друг от друга. И даже вполне возможно "горячее" подключение-отключение.
                              Поймите, наличие или отсутствие, исправность или неисправность вообще не колышат соседние i2c устройства, кроме мастера. Вам же привели картинку.
                              Почитайте здесь.

                              1 ответ Последний ответ
                              0
                              • piP Не в сети
                                piP Не в сети
                                pi
                                написал в отредактировано
                                #17

                                127
                                А если 10-битную адресацию использовать?

                                Тут уже при желаниях товарища больше надо думать о емкости его конструкции. Чтоб не перевалить за 400пФ. Только у кабеля, например, UTP5e емкость в среднем 40 нФ/км, а еще сверху емкости датчиков.

                                1 ответ Последний ответ
                                0
                                • piP Не в сети
                                  piP Не в сети
                                  pi
                                  написал в отредактировано
                                  #18

                                  Кстати, а вас случаем датчики не одинаковые будут? А то вполне можете попасть на одинаковые адреса.

                                  1 ответ Последний ответ
                                  0
                                  • piP Не в сети
                                    piP Не в сети
                                    pi
                                    написал в отредактировано
                                    #19

                                    датчики температуры я бы взял с шиной 1-wire типа ds18b20, датчиков на шину можно посадить дофига даже с паразитным питанием, подключить к rpi тоже довольно просто (мне больше нравится вариант конвертера 1w->i2c)

                                    rpm можно обрабатывать через прерывания gpio см. http://dev.mrkva.eu/rpi/

                                    1 ответ Последний ответ
                                    0

                                    • Войти

                                    • Нет учётной записи? Зарегистрироваться

                                    • Login or register to search.
                                    • Первое сообщение
                                      Последнее сообщение
                                    0
                                    • Категории
                                    • Главная
                                    • Документация
                                    • Последние
                                    • Пользователи