Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Raspberry Pi, считывающий температуру и давление BMP085

Еще одно забавное маленькое устройство i2c, которое можно недорого приобрести на eBay. Он считывает атмосферное давление и температуру. Есть несколько относительно простых математических вычислений, позволяющих преобразовать выходные данные во что-то читаемое.

Еще раз, ADAFruit предоставляет фантастическое руководство и библиотеку для использования устройства в их Использование BMP085 с Raspberry Pi. Как и в предыдущих сообщениях, я мог просто использовать библиотеку ADAFruit из коробки. Хотя я не чувствую необходимости изобретать колесо и перекодировать его с нуля, мне все же хотелось бы понять, как оно работает.

Я взял информацию из нескольких других источников:

Ниже представлена ​​очень простая схема подключения устройства к Pi.

импорт smbus импорт время класс BMP085 (): OSS = 3 def __ init __ ( сам , i2c, адрес): сам . i2c = i2c сам . адрес = адрес сам . ac1 = сам . readSignedWord ( 0xaa ) сам . ac2 = сам . readSignedWord ( 0xac ) сам . ac3 = сам . readSignedWord ( 0xae ) сам . ac4 = сам . readWord ( 0xb0 ) сам . ac5 = сам . readWord ( 0xb2 ) сам . ac6 = сам . readWord ( 0xb4 ) сам . b1 = сам . readSignedWord ( 0xb6 ) сам . b2 = сам . readSignedWord ( 0xb8 ) сам . mb = сам . readSignedWord ( 0xba ) сам . mc = сам . readSignedWord ( 0xbc ) сам . md = сам . readSignedWord ( 0xbe ) def readWord ( сам , reg): msb = сам . i2c.read_byte_data ( сам . адрес, рег) lsb = сам . i2c.read_byte_data ( сам . адрес, регистр + 1 ) значение = (msb << 8 ) + lsb возврат значение def readSignedWord ( сам , reg):msb = сам . i2c.read_byte_data ( сам . адрес, reg) lsb = сам . i2c.read_byte_data ( сам . адрес, регистр + 1 ) если (msb> 127 ): msb = msb - 256 значение = (msb << 8 ) + lsb возврат значение def readUT ( сам ): сам . i2c.write_byte_data ( сам . адрес, 0xf4 , 0x2e ) time.sleep ( 0,0045 ) ut = сам . readWord ( 0xf6 ) возврат ut def readTemperature ( сам ):ut = сам . readUT () x1 = ((ut - сам . ac6) * сам . ac5)>> 15 x2 = ( сам . mc << 11 ) / (x1 + сам . md) сам . b5 = x1 + x2 возврат (( сам . b5 + 8 )>> 4 ) / 10.0 def readUP ( сам ): сам . i2c.write_byte_data ( сам . адрес, 0xf4 , 0x34 + ( сам . OSS << 6 )) задержка = ( 2 + ( 3 << сам . OSS)) / 1000.0 time.sleep (задержка) msb = сам . i2c.read_byte_data ( сам . адрес, 0xf6 ) lsb = сам . i2c.read_byte_data ( сам . адрес, 0xf7 ) xlsb = сам . i2c.read_byte_data ( сам . адрес, 0xf8 ) вверх = (msb << 16 ) + (lsb << 8 ) + xlsb вверх = вверх>> ( 8 - сам . OSS) возврат вверх def readPressure ( сам ): вверх = сам . readUP () b6 = сам . b5 - 4000 x1 = ( сам . b2 * (b6 * b6)>> 12 )>> 11 x2 = ( сам . ac2 * b6)>> 11 x3 = x1 + x2 b3 = ((( сам . ac1 * 4 + x3) <> 2 x1 = ( сам . ac3 * b6)>> 13 x2 = ( сам . b1 * ((b6 * b6)>> 12 ))>> 16 x3 = ((x1 + x2) + 2 )>> 2 b4 = ( сам . ac4 * (x3 + 32768 ))>> 15 b7 = (вверх - b3) * ( 50000 >> сам . OSS) если (b7 < 0x80000000 ): p = (b7 << 1 ) / b4 else : p = (b7 / b4) <> 8 ) * (p> > 8 ) x1 = (x1 * 3038 )>> 16 x2 = ( - 7357 * p)>> 16 p + = (x1 + x2 + 3791 )>> 4 возврат p i2c = smbus.SMBus ( 0 ) bmp085 = BMP085 (i2c, 0x77 ) t = bmp085.readTemperature () p = bmp085.readPressure () печать "Температура:% .2f C" % t печать "Давление:% .2f гПа" % (p / 100 ) Для более подробной информации:Raspberry Pi чтение BMP085 Температура и давление

Производственный процесс

  1. Регистратор температуры Raspberry Pi
  2. Температурный профиль Raspberry Pi с использованием LabVIEW
  3. Измерение температуры с помощью однопроводного датчика DS18B20 и Raspberry Pi
  4. Сетевой монитор температуры и влажности Raspberry Pi
  5. Считать температуру с помощью DS18B20 | Raspberry Pi 2
  6. Мониторинг температуры на Raspberry Pi
  7. Измерение температуры с помощью RASPBERRY PI
  8. Библиотека Python датчика температуры TMP006 с использованием Raspberry pi,
  9. Датчик температуры Python и Raspberry Pi
  10. Простая температура и влажность на Raspberry Pi