// https://forum.arduino.cc/t/array-of-bytes-to-decimal-value/624524
typedef uint8_t DeviceAddress[8];
DeviceAddress deviceAddress;
char input[6];
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
for (uint8_t i = 0; i < 8; i++) {
}
deviceAddress[0] = 34;
deviceAddress[1] = 173;
deviceAddress[2] = 96;
deviceAddress[3] = 105;
deviceAddress[4] = 00;
deviceAddress[5] = 00;
deviceAddress[6] = 00;
deviceAddress[7] = 145;
printAddress(deviceAddress);
//byte styp;
//styp = 0x22;
if (deviceAddress[0] == 0x10) {
Serial.println("DS18S20");
}
else if (deviceAddress[0] == 0x28) {
Serial.println("DS18B20");
}
else if (deviceAddress[0] == 0x22) {
Serial.println("DS1822");
}
unsigned long value = 0;
value += deviceAddress[4] << 32;
value += (unsigned long)deviceAddress[3] << 16;
value += (unsigned long)deviceAddress[2] << 8;
value += (unsigned long)deviceAddress[1];
Serial.println(value);
}
void loop() {
// put your main code here, to run repeatedly:
}
// function to print a device address
void printAddress(DeviceAddress deviceAddress)
{
for (uint8_t i = 0; i < 8; i++)
{
// zero pad the address if necessary
if (deviceAddress[i] < 16) Serial.print("0");
Serial.print(deviceAddress[i], HEX);
}
Serial.println();
}