Esempio n. 1
0
        /// <summary>
        ///     Get a reading from the sensor and set the Temperature and Humidity properties.
        /// </summary>
        public void Update()
        {
            var data = sht31d.WriteRead(new byte[] { 0x2c, 0x06 }, 6);

            Conditions.Humidity    = (100 * (float)((data[3] << 8) + data[4])) / 65535;
            Conditions.Temperature = ((175 * (float)((data[0] << 8) + data[1])) / 65535) - 45;
        }
Esempio n. 2
0
        protected void Initialize()
        {
            si7021.WriteByte(SOFT_RESET);

            Thread.Sleep(100);
            //
            //  Get the device ID.
            //
            SerialNumber = 0;

            Span <byte> tx  = stackalloc byte[2];
            Span <byte> rx  = stackalloc byte[8];
            Span <byte> rx2 = stackalloc byte[6];

            tx[0] = READ_ID_PART1;
            tx[1] = READ_ID_PART2;
            si7021.WriteRead(tx, rx);

            for (var index = 0; index < 4; index++)
            {
                SerialNumber <<= 8;
                SerialNumber  += rx[index * 2];
            }

            tx[0] = READ_2ND_ID_PART1;
            tx[1] = READ_2ND_ID_PART2;
            si7021.WriteRead(tx, rx2);

            SerialNumber <<= 8;
            SerialNumber  += rx2[0];
            SerialNumber <<= 8;
            SerialNumber  += rx2[1];
            SerialNumber <<= 8;
            SerialNumber  += rx2[3];
            SerialNumber <<= 8;
            SerialNumber  += rx2[4];
            if ((rx2[0] == 0) || (rx2[0] == 0xff))
            {
                SensorType = DeviceType.EngineeringSample;
            }
            else
            {
                SensorType = (DeviceType)rx2[0];
            }

            SetResolution(SensorResolution.TEMP11_HUM11);
        }
Esempio n. 3
0
        protected void Initialize()
        {
            si7021.WriteByte(SOFT_RESET);

            Thread.Sleep(100);
            //
            //  Get the device ID.
            //
            var part1 = si7021.WriteRead(new[]
            {
                READ_ID_PART1,
                READ_ID_PART2
            }, 8);
            var part2 = si7021.WriteRead(new[]
            {
                READ_2ND_ID_PART1,
                READ_2ND_ID_PART2
            }, 6);

            SerialNumber = 0;
            for (var index = 0; index < 4; index++)
            {
                SerialNumber <<= 8;
                SerialNumber  += part1[index * 2];
            }
            SerialNumber <<= 8;
            SerialNumber  += part2[0];
            SerialNumber <<= 8;
            SerialNumber  += part2[1];
            SerialNumber <<= 8;
            SerialNumber  += part2[3];
            SerialNumber <<= 8;
            SerialNumber  += part2[4];
            if ((part2[0] == 0) || (part2[0] == 0xff))
            {
                SensorType = DeviceType.EngineeringSample;
            }
            else
            {
                SensorType = (DeviceType)part2[0];
            }


            SetResolution(SensorResolution.TEMP11_HUM11);
        }