تكنولوجيا استشعار درجة الحرارة

مخصص مسبار الاستشعار DS18B20 & 1-تجميع كابل الأسلاك

DS18B20 كابل مقاوم للماء بسلك واحد لجهاز استشعار درجة الحرارة + مجموعة لوحة المحول

We offer a wide range of the best 1-Wire DS18B20 sensor connectors, including Nanoflex, DisplayPort, USB, Solar, SATA, HDMI, ATA IDE, SAS & many more. All cables are manufactured to the highest industry standards. Using Sensor Circuit Assembly for box builds allows you to focus on your design and marketing, reduce costs, and reap the benefits of our assembly lines, QA processes, and manufacturing expertise.

The DS18B20 sensor communicates using the “1-سلك” protocol, which means it uses a single data line for all communication with a microcontroller, allowing multiple sensors to be connected on the same line and identified by their unique 64-bit serial code; this single data line is pulled high with a resistor and the sensor transmits data by pulling the line low during specific time slots to send bits of information.

مستشعر درجة الحرارة DS18B20: The DS18B20 waterproof probe is designed for underwater use, capable of operating in wet or moist environments without being damaged by water or moisture.
Temperature sensor supply voltage: 3.0V ~ 5.25V;
نطاق درجة حرارة التشغيل:-55 ℃ إلى +125 ℃ (-67 ℉ to +257 );
Provides from 9-bit to 12-bit Celsius temperature measurements;
Adapter module is equipped with a pull-up resistor, and directly connects to the GPIO of the Raspberry Pi without an external resistor;
Use this adapter module kit to simplify connecting the waterproof temperature sensor to your project.

DS18B20 digital temperature sensor probe & XH2.54 to PH2.0 module

DS18B20 digital temperature sensor probe & XH2.54 to PH2.0 module

China-made DS18B20 chip temperature acquisition TO-92 temperature sensor

China-made DS18B20 chip temperature acquisition TO-92 temperature sensor

DS18B20 كابل مقاوم للماء بسلك واحد لجهاز استشعار درجة الحرارة + مجموعة لوحة المحول

DS18B20 كابل مقاوم للماء بسلك واحد لجهاز استشعار درجة الحرارة + مجموعة لوحة المحول

1. Key points about the 1-Wire protocol:
Single data line:
Only one wire is needed for communication between the sensor and the microcontroller.
Half-duplex communication:
Data can be sent in both directions, but only one direction at a time.
Parasite power:
The DS18B20 can be powered directly from the data line during communication, eliminating the need for a separate power supply in some cases.
Unique device addresses:
Each DS18B20 sensor has a unique 64-bit serial code that allows the microcontroller to identify and address individual sensors on the bus.
Communication steps with a DS18B20:
1.1 Reset pulse:
The microcontroller initiates communication by pulling the data line low for a specific duration (إعادة ضبط النبض).
1.2 Presence pulse:
If a DS18B20 is present on the bus, it will respond with a short pulse, indicating its presence.
1.3 ROM command:
The microcontroller sends a ROM command to either read the unique 64-bit code of a specific sensor (“Match ROM”) or to address all sensors on the bus (“غرفة السفينة”).
1.4 Function command:
Depending on the desired operation (like reading temperature), the microcontroller sends a specific function command to the sensor.
1.5 Data transfer:
Data is transmitted bit-by-bit, with the sensor pulling the data line low to send a ‘0’ and letting the line go high to send a ‘1’.

2. شرح مفصل لبروتوكول الاتصالات 1-wire من DS18B20
إن السبب وراء استخدام مستشعرات DS18B20 على نطاق واسع يرجع إلى حد كبير إلى بروتوكول الاتصالات الفريدة – 1-بروتوكول الاتصالات السلكية. يبسط هذا البروتوكول متطلبات اتصالات الأجهزة ويوفر طريقة فعالة لنقل البيانات. سيقوم هذا الفصل بتحليل آلية العمل وعملية تبادل البيانات بعمق لبروتوكول الاتصالات 1 لتوفير أساس متين لممارسة البرمجة اللاحقة.
2.1 أساسيات بروتوكول الاتصالات السلكية 1
2.1.1 ميزات بروتوكول اتصال 1 سلك:
يتم استدعاء بروتوكول اتصال DS18B20 1-WAR “حافلة واحدة” تكنولوجيا. لديها الميزات التالية: – التواصل واحد للحافلة: يتم استخدام سطر بيانات واحد فقط لنقل البيانات ثنائي الاتجاه, الذي يقلل إلى حد كبير من تعقيد الأسلاك مقارنة بالطريقة التقليدية. – اتصال متعدد الأجهزة: يدعم توصيل أجهزة متعددة على ناقل بيانات واحد, ويحدد ويتواصل من خلال رموز تحديد الجهاز. – استهلاك الطاقة المنخفض: أثناء الاتصال, يمكن أن يكون الجهاز في حالة استعداد منخفض الطاقة عند عدم المشاركة في الاتصال. – دقة عالية: مع وقت نقل البيانات الأقصر, يمكن أن يقلل من التداخل الخارجي وتحسين دقة البيانات.
2.1.2 تنسيق البيانات وتحليل توقيت التواصل 1 سلك
يتبع تنسيق البيانات لبروتوكول الاتصالات السلكية 1 قاعدة توقيت محددة. ويشمل توقيت التهيئة, اكتب التوقيت وقراءة التوقيت:
توقيت التهيئة: يبدأ المضيف أولاً توقيت اكتشاف التواجد (النبض وجود) عن طريق سحب الحافلة لفترة معينة من الزمن, ثم يرسل المستشعر نبض التواجد استجابة.
اكتب التوقيت: عندما يرسل المضيف توقيت الكتابة, يسحب الحافلة أولاً 1-15 microseconds, ثم تصدر الحافلة, ويسحب المستشعر الحافلة في 60-120 microseconds للرد.
قراءة التوقيت: يقوم المضيف بإخطار المستشعر لإرسال البيانات عن طريق سحب الحافلة وإطلاقه, وسيقوم المستشعر بإخراج بت البيانات على الحافلة بعد تأخير معين.

Analog Devices DS18B20+, MAXIM Programmable Resolution 1-Wire Digital Thermometer

Analog Devices DS18B20+, MAXIM Programmable Resolution 1-Wire Digital Thermometer

DS18B20 12-bit 1-Wire Digital Temperature Sensor w/ 1 Meter Cable

DS18B20 12-bit 1-Wire Digital Temperature Sensor w/ 1 Meter Cable

DS18B20 sensor probe dedicated to temperature and humidity collection in cold chain cold storage

DS18B20 sensor probe dedicated to temperature and humidity collection in cold chain cold storage

2.2 Software implementation of data communication
2.2.1 Initialization and reset of 1-line communication
At the software level, initialization and reset of 1-Wire communication is the first step of communication. The following is the pseudo code to implement this process:

// OneWire communication initialization function
void OneWire_Init() {
// Set the bus to input mode and enable the pull-up resistor
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
// Wait for the bus to be idle
DelayMicroseconds(1);
// Send a reset pulse
OneWire_Reset();
}

// OneWire communication reset function
void OneWire_Reset() {
// Pull down the bus
SetPinMode(DS18B20_PIN, OUTPUT_LOW);
DelayMicroseconds(480);
// Release the bus
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
DelayMicroseconds(70);
// Wait for the presence of a pulse
لو (!WaitForOneWirePresence())
// No pulse was detected, maybe the sensor is not connected or the initialization failed
HandleError();
DelayMicroseconds(410);
}

// Waiting for the presence of a pulse
bool WaitForOneWirePresence() {
return ReadPin(DS18B20_PIN) == 0; // Assume low level is a signal presence
}

2.2.2 Data reading and writing operations

Data reading and writing operations are the core part of sensor communication. The following code shows how to write a byte to a one-wire bus:
// Write a byte to a one-wire bus
void OneWire_WriteByte(byte data) {
ل (int i = 0; أنا < 8; أنا ++) {
OneWire_WriteBit(بيانات & 0x01);
بيانات >>= 1;
}
}

// Write a bit to a one-wire bus
void OneWire_WriteBit(bit data) {
SetPinMode(DS18B20_PIN, OUTPUT_LOW);
لو (بيانات) {
// Release the bus when writing 1
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
DelayMicroseconds(1);
} آخر {
// Continue to pull the bus low when writing 0
DelayMicroseconds(60);
}
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
DelayMicroseconds(1);
}

Next is the function to read a byte:
// Read a byte from the one-wire bus
byte OneWire_ReadByte() {
byte data = 0;
ل (int i = 0; أنا < 8; أنا ++) {
بيانات >>= 1;
لو (OneWire_ReadBit())
بيانات |= 0x80;
}
إرجاع البيانات;
}

// Read a bit from the one-wire bus
bit OneWire_ReadBit() {
SetPinMode(DS18B20_PIN, OUTPUT_LOW);
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
DelayMicroseconds(3);
bool result = ReadPin(DS18B20_PIN);
DelayMicroseconds(57);
return result;
}

2.2.3 Verification mechanism of OneWire communication

The OneWire communication protocol uses a simple verification mechanism in the data exchange process, usually by reading back the written data to verify the correctness of the data. The following is a sample code for verifying the written data:

byte data = 0x55; // Assume that the data to be sent

OneWire_WriteByte(بيانات); // Write data to the OneWire bus

byte readData = OneWire_ReadByte(); // Read back data from the OneWire bus

لو (readData != data) {
HandleError(); // If the read-back data does not match the written data, handle the error