421 (2020-05-06 00:53:25 отредактировано d.styler)

Re: TM WEB универсальная WI-FI автоматика своими руками

kvic]:->
Сделаю проверку в проге и фсе! Не позволю использовать левые датчики.  ]:->
Кранты всем!  *RUS*

Зато не будет вопросов "а че у меня такие загогулины на графике"...

422

Re: TM WEB универсальная WI-FI автоматика своими руками

d.styler ©:

Сделаю проверку в проге и фсе! Не позволю использовать левые датчики.

А вот это кстати хорошая идея :)

423

Re: TM WEB универсальная WI-FI автоматика своими руками

d.styler, мне вот загадочно, почему тмас на тех же датчиках и разъёмах показывает стабильную температуру, в тмвеб ежесекундно меняет туда сюда. Вот вопрос...

424

Re: TM WEB универсальная WI-FI автоматика своими руками

valera, хз - мне тоже... Может железка другая? И в Ардуино +5В, а тут +3В.

425

Re: TM WEB универсальная WI-FI автоматика своими руками

Зашёл сегодня в Чип и Дип, купил у них два DS18B20 (по 180 рублей).
Проверил в той программе.

---
13:37:38.959 ->   28-01-83-4D-0B-00-00-10: ROM ok.
13:37:38.959 ->   Scratchpad Register: A6/01/4B/46/7F/FF/0A/10/F6
13:37:39.006 ->   Info only: Scratchpad bytes 2,3,4 (4B/46/7F):  Maxim default values.
13:37:39.006 ->   Scratchpad byte 5 (0xFF):  ok.
13:37:39.006 ->   Scratchpad byte 6 (0x0A):  ok.
13:37:39.006 ->   Scratchpad byte 7 (0x10):  ok.
13:37:39.006 ->   0x4E modifies alarm registers:  ok.
13:37:39.006 ->   0x4E accepts 10 bit resolution:  ok.
13:37:39.006 ->   0x4E preserves reserved bytes:  ok.
13:37:39.053 ->   0x4E accepts 12 bit resolution:  ok.
13:37:39.053 ->   0x4E preserves reserved bytes:  ok.
13:37:39.053 ->   Checking byte 6 upon temperature change: not necessary. Skipped.
13:37:39.053 ->   --> Sensor responded like a genuie Maxim.
---
13:38:51.936 ->   28-D5-7A-4D-0B-00-00-5D: ROM ok.
13:38:51.936 ->   Scratchpad Register: FD/01/4B/46/7F/FF/03/10/B6
13:38:51.936 ->   Info only: Scratchpad bytes 2,3,4 (4B/46/7F):  Maxim default values.
13:38:51.936 ->   Scratchpad byte 5 (0xFF):  ok.
13:38:51.936 ->   Scratchpad byte 6 (0x03):  ok.
13:38:51.936 ->   Scratchpad byte 7 (0x10):  ok.
13:38:51.983 ->   0x4E modifies alarm registers:  ok.
13:38:51.983 ->   0x4E accepts 10 bit resolution:  ok.
13:38:51.983 ->   0x4E preserves reserved bytes:  ok.
13:38:51.983 ->   0x4E accepts 12 bit resolution:  ok.
13:38:51.983 ->   0x4E preserves reserved bytes:  ok.
13:38:52.030 ->   Checking byte 6 upon temperature change: not necessary. Skipped.
13:38:52.030 ->   --> Sensor responded like a genuie Maxim.
---

Утверждается, что ответ как у оригиналов от Maxim.
Теперь им дорога в гильзы и на испытательный стенд.
---
Надо от Платана датчики потестить.
Там ценник пониже.

РК 35х1600

426

Re: TM WEB универсальная WI-FI автоматика своими руками

А почему нельзя пользоваться библиотекой для bmp280

Преимуществом данной библиотеки является: возможность заменять датчики BMP180 / BMP280 без изменения скетча и схемы включения

427

Re: TM WEB универсальная WI-FI автоматика своими руками

kvic, там скетч под атмегу?  Мне как раз 5 штук россыпью приехало, гравировка лазером, но сзади нет буквы P ...

У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Регистрация на форуме отключает почти всю рекламу.

428

Re: TM WEB универсальная WI-FI автоматика своими руками

Иван ©:

там скетч под атмегу?

Да.
В ардуино нано работает.

РК 35х1600

429

Re: TM WEB универсальная WI-FI автоматика своими руками

kvic, попозжа сегодня проверю то, что пришло с али

/*
 * Copyright Chris Petrich
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License. 
 *   
 *   File:    discover_fake_DS18B20.ino
 *   Author:  Chris Petrich
 *   Version: 22 Oct 2019 
 *   
 *   Source:  https://github.com/cpetrich/counterfeit_DS18B20/
 *   Documentation:  https://github.com/cpetrich/counterfeit_DS18B20/
 *   
 * This demonstration script performs authenticity tests on DS18B20 sensors by
 * evaluating ROM code and Scratchpad Register. It uses documented ROM commands 
 * F0h and 55h and Function Commands 44h, 4Eh and BEh, only.
 * It does not test the power-up state and it does not write to or test the EEPROM.
 * It is INTENDED for EDUCATIONAL PURPOSES, only.
 * There may be circumstances under which the sketch permanently damages one-wire 
 * sensors in obvious or non-obvious ways.
 * (I don't think it does that to authentic Maxim sensors, but I won't guarantee
 * anything. See licence text for details.)
 * 
 * 
 * This script is written for Arduino. Wiring:
 * 
 * CPU Vcc         -------o------ DS18B20 Vcc
 *                        |
 *                       [R]  <- choose resistor appropriate for supply voltage and current that the microcontroller is able to sink.
 *                        |
 * CPU pin_onewire -------o------ DS18B20 data
 * 
 * CPU GND         -------------- DS18B20 GND
 * 
 */

// Tested with OneWire Version 2.3
// https://github.com/PaulStoffregen/OneWire
#include "OneWire.h"


#define pin_onewire 7
#define pin_LED 13

#define Comm Serial


OneWire *ds;

void print_hex(uint8_t value) {
  if (value < 16) Comm.write('0');
  Comm.print(value, HEX);
}

void print_array(uint8_t *data, int n, char sep = ',') {  
  int idx;
  for (idx=0; idx<n; idx++) {
    print_hex(data[idx]);
    if (idx != n-1)
      Comm.write(sep);
  }
}

bool read_scratchpad(uint8_t *addr, uint8_t *buff9) {
  ds->reset();
  ds->select(addr);
  ds->write(0xBE); // read scratchpad
  int idx;
  for (idx=0; idx<9; idx++)
    buff9[idx] = ds->read();
  return 0 == OneWire::crc8(buff9, 9);
}

void setup() {
  Comm.begin(115200);
  Comm.println();  
  
  digitalWrite(pin_LED, HIGH);
  pinMode(pin_LED, OUTPUT);  

  ds = new OneWire(pin_onewire);
  
  {
    // output file name without leading path
    char *file = __FILE__;
    int i;
    for (i = strlen(file); i > 0; i--)
      if ((file[i] == '\\') || (file[i] == '/')) {
        i++;
        break;  
      }    
    Comm.print(F("\n--- # "));
    Comm.println(&file[i]);
  }
  digitalWrite(pin_LED, LOW);
  Comm.println(F("This sketch will test DS18B20 sensors attached to"));
  Comm.print(F("  pin "));
  Comm.print(pin_onewire, DEC);
  Comm.println(F(" for differences with Maxim Integrated-produced DS18B20"));
  Comm.println(F("  using only functionality documented in the datasheet and in"));
  Comm.println(F("  Maxim Application Note AN4377."));  
  Comm.println();
}

void loop() {
  // ROM address of current sensor
  uint8_t addr[8];  
  // buffers for scratchpad register
  uint8_t buffer0[9];
  uint8_t buffer1[9];
  uint8_t buffer2[9];
  uint8_t buffer3[9];
  // flag to indicate if validation
  //  should be repeated at a different
  //  sensor temperature
  bool t_ok;

  ds->reset_search();
  while (ds->search(addr)) {
    int fake_flags = 0;
    
    print_array(addr, 8, '-');
    if (0 != OneWire::crc8(addr, 8)) {
      // some fake sensors can have their ROM overwritten with
      // arbitrary nonsense, so we don't expect anything good
      // if the ROM doesn't check out
      fake_flags += 1;
      Comm.print(F(" (CRC Error -> Error.)"));
    }

    if ((addr[6] != 0) || (addr[5] != 0) || (addr[0] != 0x28)) {
      fake_flags += 1;
      Comm.print(F(": ROM does not follow expected pattern 28-xx-xx-xx-xx-00-00-crc. Error."));
    } else {
      Comm.print(F(": ROM ok."));
    }    
    Comm.println();
    
    if (!read_scratchpad(addr, buffer0)) read_scratchpad(addr, buffer0);
    
    Comm.print(F("  Scratchpad Register: "));
    print_array(buffer0, 9, '/');
    if (0 != OneWire::crc8(buffer0, 9)) {
      // Unlikely that a sensor will mess up the CRC of the scratchpad.
      // --> Assume we're dealing with a bad connection rather than a bad 
      //     sensor, dump data, and move on to next sensor.
      Comm.println(F("  CRC Error. Check connections or replace sensor."));
      continue;      
    }
    Comm.println();

    // Check content of user EEPROM. Since the EEPROM may have been programmed by the user earlier
    // we do not use this as a test. Rather, we dump this as info.
    Comm.print(F("  Info only: Scratchpad bytes 2,3,4 ("));
    print_array(buffer0+2,3,'/');
    Comm.print(F("): "));
    if ((buffer0[2] != 0x4b) || (buffer0[3] != 0x46) || (buffer0[4] != 0x7f))
      Comm.println(F(" not Maxim default values 4B/46/7F."));
    else
      Comm.println(F(" Maxim default values."));


    Comm.print(F("  Scratchpad byte 5 (0x"));
    print_hex(buffer0[5]);
    Comm.print(F("): "));
    if (buffer0[5] != 0xff) {
      fake_flags += 1;
      Comm.println(F(" should have been 0xFF according to datasheet. Error."));
    } else {
      Comm.println(F(" ok."));
    }

    Comm.print(F("  Scratchpad byte 6 (0x"));
    print_hex(buffer0[6]);
    Comm.print(F("): "));
    if ( ((buffer0[6] == 0x00) || (buffer0[6] > 0x10)) || // totall wrong value
         ( ((buffer0[0] != 0x50) || (buffer0[1] != 0x05)) && ((buffer0[0] != 0xff) || (buffer0[1] != 0x07)) && // check for valid conversion...
           (((buffer0[0] + buffer0[6]) & 0x0f) != 0x00) ) ) { //...before assessing DS18S20 compatibility.
      fake_flags += 1;
      Comm.println(" unexpected value. Error.");
    } else
      Comm.println(" ok.");
    
    Comm.print(F("  Scratchpad byte 7 (0x"));
    print_hex(buffer0[7]);
    Comm.print(F("): "));
    if (buffer0[7] != 0x10) {
      fake_flags += 1;
      Comm.println(F(" should have been 0x10 according to datasheet. Error."));
    } else {
      Comm.println(F(" ok."));
    }

    // set the resolution to 10 bit and modify alarm registers    
    ds->reset();
    ds->select(addr);
    ds->write(0x4E); // write scratchpad. MUST be followed by 3 bytes as per datasheet.
    ds->write(buffer0[2] ^ 0xff);
    ds->write(buffer0[3] ^ 0xff);
    ds->write(0x3F);
    ds->reset();

    if (!read_scratchpad(addr, buffer1)) read_scratchpad(addr, buffer1);
    
    Comm.print(F("  0x4E modifies alarm registers: "));
    if ((buffer1[2] != (buffer0[2] ^ 0xff)) || (buffer1[3] != (buffer0[3] ^ 0xff))) {
      fake_flags += 1;
      Comm.print(F(" cannot modify content as expected (want: "));
      print_hex(buffer0[2] ^ 0xff);
      Comm.write('/');
      print_hex(buffer0[3] ^ 0xff);
      Comm.print(F(", got: "));
      print_array(buffer1+2, 2, '/');
      Comm.println(F("). Error."));      
    } else
      Comm.println(F(" ok."));

    Comm.print(F("  0x4E accepts 10 bit resolution: "));
    if (buffer1[4] != 0x3f) {
      fake_flags += 1;
      Comm.print(F(" rejected (want: 0x3F, got: "));
      print_hex(buffer1[4]);
      Comm.println(F("). Error."));
    } else
      Comm.println(F(" ok."));

    Comm.print(F("  0x4E preserves reserved bytes: "));
    if ((buffer1[5] != buffer0[5]) || (buffer1[6] != buffer0[6]) || (buffer1[7] != buffer0[7])) {
      fake_flags += 1;
      Comm.print(F(" no, got: "));
      print_array(buffer1+5, 3, '/');
      Comm.println(F(". Error."));
    } else
      Comm.println(F(" ok."));    

    // set the resolution to 12 bit
    ds->reset();
    ds->select(addr);
    ds->write(0x4E); // write scratchpad. MUST be followed by 3 bytes as per datasheet.
    ds->write(buffer0[2]);
    ds->write(buffer0[3]);
    ds->write(0x7f);
    ds->reset();

    if (!read_scratchpad(addr, buffer2)) read_scratchpad(addr, buffer2);
    
    Comm.print(F("  0x4E accepts 12 bit resolution: "));
    if (buffer2[4] != 0x7f) {
      fake_flags += 1;
      Comm.print(F(" rejected (expected: 0x7F, got: "));
      print_hex(buffer2[4]);
      Comm.println(F("). Error."));
    } else
      Comm.println(F(" ok."));

    Comm.print(F("  0x4E preserves reserved bytes: "));
    if ((buffer2[5] != buffer1[5]) || (buffer2[6] != buffer1[6]) || (buffer2[7] != buffer1[7])) {
      fake_flags += 1;
      Comm.print(F(" no, got: "));
      print_array(buffer2+5, 3, '/');
      Comm.println(F(". Error."));
    } else
      Comm.println(F(" ok."));

    Comm.print("  Checking byte 6 upon temperature change: ");
    if (( ((buffer2[0] == 0x50) && (buffer2[1] == 0x05)) || ((buffer2[0] == 0xff) && (buffer2[1] == 0x07)) ||
         ((buffer2[6] == 0x0c) && (((buffer2[0] + buffer2[6]) & 0x0f) == 0x00)) ) &&
         ((buffer2[6] >= 0x00) && (buffer2[6] <= 0x10)) ){
      // byte 6 checked out as correct in the initial test but the test ambiguous.
      //   we need to check if byte 6 is consistent after temperature conversion
            
      // We'll do a few temperature conversions in a row.
      // Usually, the temperature rises slightly if we do back-to-back
      //   conversions.
      int count = 5;
      do {
        count -- ;
        if (count < 0)
          break;
        // perform temperature conversion
        ds->reset();
        ds->select(addr);
        ds->write(0x44);
        delay(750);
        
        if (!read_scratchpad(addr, buffer3)) read_scratchpad(addr, buffer3);
        
      } while ( ((buffer3[0] == 0x50) && (buffer3[1] == 0x05)) || ((buffer3[0] == 0xff) && (buffer3[1] == 0x07)) ||
                ((buffer3[6] == 0x0c) && (((buffer3[0] + buffer3[6]) & 0x0f) == 0x00)) );
      if (count < 0) {
        Comm.println(F(" Inconclusive. Please change sensor temperature and repeat."));
        t_ok = false;
      } else {
        t_ok = true;
        if ((buffer3[6] != 0x0c) && (((buffer3[0] + buffer3[6]) & 0x0f) == 0x00)) {
          Comm.println(F(" ok."));
        } else {
          fake_flags += 1;
          Comm.print(F(" Temperature LSB = 0x"));
          print_hex(buffer3[0]);
          Comm.print(F(" but byte 6 = 0x"));
          print_hex(buffer3[6]);
          Comm.println(F(". Error."));
        }
      }
    } else {
      Comm.println(F("not necessary. Skipped."));
      t_ok = true;
    }

    Comm.print(F("  --> "));
    if (!t_ok) {
      Comm.print(F("DS18S20 counterfeit test not completed, otherwise sensor"));
    } else 
      Comm.print(F("Sensor"));
      
    if (fake_flags == 0) {
      Comm.println(F(" responded like a genuie Maxim."));
      Comm.println(F("      Not tested: EEPROM, Parasite Power, and undocumented commands."));
    } else {
      Comm.print(F(" appears to be counterfeit based on "));
      Comm.print(fake_flags, DEC);
      Comm.println(F(" deviations."));
      if (fake_flags == 1) {
        Comm.println(F("  The number of deviations is unexpectedly small."));
        Comm.println(F("  Please see https://github.com/cpetrich/counterfeit_DS18B20/"));
        Comm.println(F("  to help interpret the result."));
      }
    }
    Comm.println();
  } // done with all sensors
  Comm.println(F("------------------------------------------------"));
  delay(1000);
  digitalWrite(pin_LED, digitalRead(pin_LED) == HIGH ? LOW : HIGH);
}
У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Регистрация на форуме отключает почти всю рекламу.

430 (2020-05-06 17:46:19 отредактировано )

Re: TM WEB универсальная WI-FI автоматика своими руками

Такс.. Воткнул датчик который покупал лет 5 назад россыпью..
Резистор обязательно, без него не пашет...

28-FF-6F-B3-64-14-02-7F: ROM does not follow expected pattern 28-xx-xx-xx-xx-00-00-crc. Error.
  Scratchpad Register: 50/05/55/00/7F/FF/7F/10/C2
  Info only: Scratchpad bytes 2,3,4 (55/00/7F):  not Maxim default values 4B/46/7F.
  Scratchpad byte 5 (0xFF):  ok.
  Scratchpad byte 6 (0x7F):  unexpected value. Error.
  Scratchpad byte 7 (0x10):  ok.
  0x4E modifies alarm registers:  ok.
  0x4E accepts 10 bit resolution:  ok.
  0x4E preserves reserved bytes:  no, got: FF/3F/10. Error.
  0x4E accepts 12 bit resolution:  ok.
  0x4E preserves reserved bytes:  no, got: FF/7F/10. Error.
  Checking byte 6 upon temperature change: not necessary. Skipped.
  --> Sensor appears to be counterfeit based on 4 deviations.

Теперь датчик из новой серии..

28-07-01-16-A8-01-3C-6D: ROM does not follow expected pattern 28-xx-xx-xx-xx-00-00-crc. Error.
  Scratchpad Register: 90/01/55/05/7F/A5/81/66/4E
  Info only: Scratchpad bytes 2,3,4 (55/05/7F):  not Maxim default values 4B/46/7F.
  Scratchpad byte 5 (0xA5):  should have been 0xFF according to datasheet. Error.
  Scratchpad byte 6 (0x81):  unexpected value. Error.
  Scratchpad byte 7 (0x66):  should have been 0x10 according to datasheet. Error.
  0x4E modifies alarm registers:  ok.
  0x4E accepts 10 bit resolution:  ok.
  0x4E preserves reserved bytes:  ok.
  0x4E accepts 12 bit resolution:  ok.
  0x4E preserves reserved bytes:  ok.
  Checking byte 6 upon temperature change: not necessary. Skipped.
  --> Sensor appears to be counterfeit based on 4 deviations.

Первый датчик из тех, что сейчас работает на комплексе без качелей...

d.styler ©:

Сделаю проверку в проге и фсе! Не позволю использовать левые датчики.

Остынь  *STOP*  :D


Такс... еще один из старой партии

28-FF-90-44-67-18-01-0A: ROM does not follow expected pattern 28-xx-xx-xx-xx-00-00-crc. Error.
  Scratchpad Register: 50/05/4B/46/7F/FF/7F/10/FF
  Info only: Scratchpad bytes 2,3,4 (4B/46/7F):  Maxim default values.
  Scratchpad byte 5 (0xFF):  ok.
  Scratchpad byte 6 (0x7F):  unexpected value. Error.
  Scratchpad byte 7 (0x10):  ok.
  0x4E modifies alarm registers:  ok.
  0x4E accepts 10 bit resolution:  ok.
  0x4E preserves reserved bytes:  no, got: FF/3F/10. Error.
  0x4E accepts 12 bit resolution:  ok.
  0x4E preserves reserved bytes:  no, got: FF/7F/10. Error.
  Checking byte 6 upon temperature change: not necessary. Skipped.
  --> Sensor appears to be counterfeit based on 4 deviations.

И еще

28-FF-07-14-66-18-03-23: ROM does not follow expected pattern 28-xx-xx-xx-xx-00-00-crc. Error.
  Scratchpad Register: 50/05/4B/46/7F/FF/7F/10/FF
  Info only: Scratchpad bytes 2,3,4 (4B/46/7F):  Maxim default values.
  Scratchpad byte 5 (0xFF):  ok.
  Scratchpad byte 6 (0x7F):  unexpected value. Error.
  Scratchpad byte 7 (0x10):  ok.
  0x4E modifies alarm registers:  ok.
  0x4E accepts 10 bit resolution:  ok.
  0x4E preserves reserved bytes:  no, got: FF/3F/10. Error.
  0x4E accepts 12 bit resolution:  ok.
  0x4E preserves reserved bytes:  no, got: FF/7F/10. Error.
  Checking byte 6 upon temperature change: not necessary. Skipped.
  --> Sensor appears to be counterfeit based on 4 deviations.

Отличия есть... максимовский немного крупней по габаритам корпуса и текст написан более крупными буквами

У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Регистрация на форуме отключает почти всю рекламу.

431

Re: TM WEB универсальная WI-FI автоматика своими руками

Иван ©:

Остынь

:D  :D  8)

432

Re: TM WEB универсальная WI-FI автоматика своими руками

d.styler, прикол в том, что у меня не оригинальный датчик вполне нормально работает, так что ты не горячись  :D
Ну а у кого глючит - сперва проверяют. Вон скетч специально выше сюда кинул..

У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Регистрация на форуме отключает почти всю рекламу.

433

Re: TM WEB универсальная WI-FI автоматика своими руками

Иван ©:

так что ты не горячись

Ну я же не Кавказский джигит, чего мне горячиться?  :D  *RUS*

434

Re: TM WEB универсальная WI-FI автоматика своими руками

LEHiN ©:

что бы не вваливаться в загрузчик при старте?

Да.

Иван ©:

Info only: Scratchpad bytes 2,3,4 (55/00/7F):  not Maxim default values 4B/46/7F.

2 и 3 байты - тревожная уставка или данные пользователя. Могут принимать любые значения.
4 байт - конфигурационный.
Эти три байта корректны, просто установлены не по дефолту.
5, 6 и 7 - зарезервированные. Документированных функций не несут.
Так что ничего криминального не вижу.

valera ©:

почему тмас на тех же датчиках и разъёмах показывает стабильную температуру, в тмвеб ежесекундно меняет туда сюда

Питания маловато. У DS18B20 минимум по даташиту 3В, а у модуля на выходе - хорошо, если 3,3В. Маловат запас.

d.styler ©:

И в Ардуино +5В, а тут +3В.

*THUMBSUP*

С уважением, <дата, подпись>, отвечайте нам, а то...
РК 28/1500
Простой стабилизированный регулятор

435

Re: TM WEB универсальная WI-FI автоматика своими руками

Я пробовал питать датчики от отдельных 5В - вообще не работало. Хотя, может я что-то не так сделал.

Homo est mundi pars

436

Re: TM WEB универсальная WI-FI автоматика своими руками

JohnJohnov, я не парюсь, у меня все работает нормально.

У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Регистрация на форуме отключает почти всю рекламу.

437 (2020-05-07 14:23:14 отредактировано )

Re: TM WEB универсальная WI-FI автоматика своими руками

Danil ©:

Хотя, может я что-то не так сделал.

Без схемы включения сложно сказать.
У меня на тмасе работает стабильно, на тмвебе редко-редко проскакивают сталактиты. Термометры из разных партий, брал россыпью на алишке, подключение проводом 0,2мм2 10м (почти на пределе).

Мануал по термометрам на русском, если кому вдруг интересно.

С уважением, <дата, подпись>, отвечайте нам, а то...
РК 28/1500
Простой стабилизированный регулятор

438 (2020-05-07 18:05:52 отредактировано )

Re: TM WEB универсальная WI-FI автоматика своими руками

JohnJohnov ©:

Питания маловато. У DS18B20 минимум по даташиту 3В, а у модуля на выходе - хорошо, если 3,3В. Маловат запас.

Может есть смысл запитать датчики отдельно от +5В?

JohnJohnov ©:

на тмвебе редко-редко проскакивают сталактиты.

странно - я ж в последней прошивке сделл проверку СРС

439

Re: TM WEB универсальная WI-FI автоматика своими руками

d.styler ©:

странно - я ж в последней прошивке сделл проверку СРС

На последней версии нет пиков. Было даже как-то отваливание в режиме AP и браузер продолжал рисовать прямую, но свечей не было.

У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Регистрация на форуме отключает почти всю рекламу.

440

Re: TM WEB универсальная WI-FI автоматика своими руками

d.styler ©:

Может есть смысл запитать датчики отдельно от +5В?

Ага!  *YES*
В даташите, который выложил, есть схема подключения, на седьмой странице.

d.styler ©:

странно - я ж в последней прошивке сделл проверку СРС

Я последнюю версию не заливал. Тмвеб погонял, но пользую тмас. Спасибо тебе ещё раз.  *THUMBSUP*

Иван ©:

Было даже как-то отваливание в режиме AP и браузер продолжал рисовать прямую, но свечей не было.

Вот из-за этого, в числе прочего, не использую тмвеб. Есть вероятность, что датчик отвалится, а я буду преспокойненько наблюдать идеальную спиртовую полку.

С уважением, <дата, подпись>, отвечайте нам, а то...
РК 28/1500
Простой стабилизированный регулятор