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

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

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