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

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

Запланировано Прикреплена Закрыта Перенесена Raspberry Pi
19 Сообщения 1 Posters 275 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • 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
                                • Категории
                                • Главная
                                • Документация
                                • Последние
                                • Пользователи