Rose debug info
---------------

Tempcontrol добавление своих датчиков DS18B20 бесплатно без регистрации и смс

Сайт tempcontrol.ru не пашет 2 месяц, всем насрать даже тех поддержка номер которой был вытащен из гугла сказала пишите на support@visteh.ru там этим генеральный директор занимается может быть он вам ответит.

я охерел от такого при цене этой дерьмо коробки в 15000р должна быть и поддержка нормальная а не эта шляпа. Вообщем всем кто потерял датчики или хочет добавить новые описываю способ бесплатного добавления чтоб не платить хитрожопым из tempcontrol

Вот такой процессор там

root [ ~ ]# cat /proc/cpuinfo
Processor : ARM926EJ-S rev 4 (v5l)
BogoMIPS : 133.01
Features : swp half thumb fastmult vfp edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part : 0x926
CPU revision : 4

Hardware : tc3250 board with the LPC3250 Microcontroller
Revision : 0000
Serial : 0000000000000000

Вот лог прогрузки dmesg

root [ ~ ]# dmesg
Linux version 2.6.39.2-g7fda40b (yakor@amd64) (gcc version 4.6.3 (Gentoo 4.6.3 p1.3, pie-0.5.1) ) #32 PREEMPT Wed Jun 20 14:11:15 MSK 2012
CPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: tc3250 board with the LPC3250 Microcontroller
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 16384
free_area_init_node: node 0, pgdat c0294da4, node_mem_map c02a4000
  Normal zone: 128 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 16256 pages, LIFO batch:3
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc: [0] 0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
Kernel command line: console=ttyS0,115200 ubi.mtd=3 ubi.mtd=5 ubi.mtd=6 root=ubi1:rootfs rootfstype=ubifs ethaddr=02:74:66:fa:99:40
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 62216k/62216k available, 3320k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 — 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 — 0xfffe0000   ( 896 kB)
    DMA     : 0xffc00000 — 0xffe00000   (   2 MB)
    vmalloc : 0xc4800000 — 0xf0000000   ( 696 MB)
    lowmem  : 0xc0000000 — 0xc4000000   (  64 MB)
    modules : 0xbf000000 — 0xc0000000   (  16 MB)
      .init : 0xc0008000 — 0xc0023000   ( 108 kB)
      .text : 0xc0023000 — 0xc027c000   (2404 kB)
      .data : 0xc027c000 — 0xc0295440   ( 102 kB)
Preemptable hierarchical RCU implementation.
        RCU-based detection of stalled CPUs is disabled.
        Verbose stalled-CPUs detection is disabled.
NR_IRQS:96
Console: colour dummy device 80x30
Calibrating delay loop... 133.01 BogoMIPS (lpj=665088)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
LPC32XX unique ID: 0005b6dd75701b6e591c8cb710831800
bio: create slab <bio-0> at 0
Switching to clocksource lpc32xx_clksrc
Switched to NOHz mode on CPU #0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
NetWinder Floating Point Emulator V0.97 (double precision)
msgmni has been set to 121
io scheduler noop registered (default)
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x40090000 (irq = 9) is a 16550A
console [ttyS0] enabled
serial8250.0: ttyS1 at MMIO 0x40080000 (irq = 7) is a U6_16550A
serial8250.0: ttyS2 at MMIO 0x40088000 (irq = 8) is a 16550A
serial8250.0: ttyS3 at MMIO 0x40098000 (irq = 10) is a 16550A
lpc32xx_hsuart.0: ttyTX0 at MMIO 0x40014000 (irq = 26) is a lpc32xx_hsuart
lpc32xx_hsuart.0: ttyTX1 at MMIO 0x4001c000 (irq = 24) is a lpc32xx_hsuart
brd: module loaded
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
Bad block table found at page 131008, version 0x01
Bad block table found at page 130944, version 0x01
nand_read_bbt: Bad block at 0x000000000000
nand_read_bbt: Bad block at 0x000006520000
nand_read_bbt: Bad block at 0x00000a260000
nand_read_bbt: Bad block at 0x00000ea80000
nand_read_bbt: Bad block at 0x00000f8c0000
Creating 7 MTD partitions on «lpc32xx-nand»:
0x000000000000-0x000000020000 : «boot»
0x000000020000-0x000000180000 : «uboot»
0x000000180000-0x000000580000 : «safe-kernel»
0x000000580000-0x000003780000 : «safe-rootfs»
0x000003780000-0x000003b80000 : «kernel»
0x000003b80000-0x000006d80000 : «rootfs»
0x000006d80000-0x000010000000 : «work»
UBI: attaching mtd3 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    129024 bytes
UBI: smallest flash I/O unit:    2048
UBI: sub-page size:              512
UBI: VID header offset:          512 (aligned 512)
UBI: data offset:                2048
UBI: max. sequence number:       2
UBI: attached mtd3 to ubi0
UBI: MTD device name:            «safe-rootfs»
UBI: MTD device size:            50 MiB
UBI: number of good PEBs:        400
UBI: number of bad PEBs:         0
UBI: number of corrupted PEBs:   0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     1
UBI: available PEBs:             0
UBI: total number of reserved PEBs: 400
UBI: number of PEBs reserved for bad PEB handling: 4
UBI: max/mean erase counter: 1/0
UBI: image sequence number:  1424920104
UBI: background thread «ubi_bgt0d» started, PID 270
UBI: attaching mtd5 to ubi1
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    129024 bytes
UBI: smallest flash I/O unit:    2048
UBI: sub-page size:              512
UBI: VID header offset:          512 (aligned 512)
UBI: data offset:                2048
UBI: max. sequence number:       269
UBI: attached mtd5 to ubi1
UBI: MTD device name:            «rootfs»
UBI: MTD device size:            50 MiB
UBI: number of good PEBs:        399
UBI: number of bad PEBs:         1
UBI: number of corrupted PEBs:   0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     1
UBI: available PEBs:             0
UBI: total number of reserved PEBs: 399
UBI: number of PEBs reserved for bad PEB handling: 3
UBI: max/mean erase counter: 3/0
UBI: image sequence number:  438166388
UBI: background thread «ubi_bgt1d» started, PID 273
UBI: attaching mtd6 to ubi2
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    129024 bytes
UBI: smallest flash I/O unit:    2048
UBI: sub-page size:              512
UBI: VID header offset:          512 (aligned 512)
UBI: data offset:                2048
UBI: max. sequence number:       88
UBI: attached mtd6 to ubi2
UBI: MTD device name:            «work»
UBI: MTD device size:            146 MiB
UBI: number of good PEBs:        1165
UBI: number of bad PEBs:         7
UBI: number of corrupted PEBs:   0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     1
UBI: available PEBs:             0
UBI: total number of reserved PEBs: 1165
UBI: number of PEBs reserved for bad PEB handling: 11
UBI: max/mean erase counter: 2/1
UBI: image sequence number:  1323325530
UBI: background thread «ubi_bgt2d» started, PID 276
lpc_mii_bus: probed
eth0: using RMII interface
eth0: LPC mac at 0x31060000 irq 29
eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=0:00, irq=-1)
rtc-lpc32xx rtc-lpc32xx: rtc core: registered rtc-lpc32xx as rtc0
PNX4008-WDT: PNX4008 Watchdog Timer: heartbeat 19 sec
cpuidle: using governor ladder
cpuidle: using governor menu
Registered led device: 1-wire_port2
Registered led device: 1-wire_port1
Registered led device: 1-wire_port4
Registered led device: 1-wire_port3
Registered led device: power
Registered led device: nand-io
TCP cubic registered
NET: Registered protocol family 17
VFP support v0.3: implementor 41 architecture 1 part 10 variant 9 rev 1
rtc-lpc32xx rtc-lpc32xx: setting system clock to 1970-01-01 00:00:08 UTC (8)
UBIFS: recovery needed
UBIFS: recovery completed
UBIFS: mounted UBI device 1, volume 0, name «rootfs»
UBIFS: file system size:   49029120 bytes (47880 KiB, 46 MiB, 380 LEBs)
UBIFS: journal size:       6580224 bytes (6426 KiB, 6 MiB, 51 LEBs)
UBIFS: media format:       w4/r0 (latest is w4/r0)
UBIFS: default compressor: lzo
UBIFS: reserved for root:  0 bytes (0 KiB)
VFS: Mounted root (ubifs filesystem) on device 0:10.
Freeing init memory: 108K
UBIFS: recovery needed
UBIFS: recovery completed
UBIFS: mounted UBI device 2, volume 0, name «work»
UBIFS: file system size:   140507136 bytes (137214 KiB, 133 MiB, 1089 LEBs)
UBIFS: journal size:       9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
UBIFS: media format:       w4/r0 (latest is w4/r0)
UBIFS: default compressor: lzo
UBIFS: reserved for root:  0 bytes (0 KiB)

 

Берете список датчиков из панели или из консоли

далее берем ардуино и пишем код который будет брать ваш новый датчик ds18b20 и изменять его id на тот что есть в вашей коробке и отправлять его коробке

/*
 *    Example-Code that emulates a DS18B20
 *
 *    Tested with:
 *    — https://github.com/PaulStoffregen/OneWire —> DS18x20-Example, atmega328@16MHz as Slave
 *    — DS9490R-Master, atmega328@16MHz and teensy3.2@96MHz as Slave
 */

#include «OneWireHub.h»
#include «DS18B20.h»  // Digital Thermometer, 12bit
#include <OneWire.h>
OneWire  ds(11);  // on pin 10 (a 4.7K resistor is necessary)

constexpr uint8_t pin_led       { 13 };
constexpr uint8_t pin_onewire   { 12 };
float celsius, fahrenheit;
auto hub    = OneWireHub(pin_onewire);

auto ds18b20 = DS18B20(0x28, 0xA0, 0x36, 0x14, 0x03, 0x00, 0x00); // DS18B20: 9-12bit, -55 —  +85 degC
//28A0361403000088
auto ds18s20 = DS18B20(0x10, 0x00, 0x00, 0xA2, 0x18, 0xDA, 0x00);                 // DS18S20: 9   bit, -55 —  +85 degC
auto ds1822  = DS18B20(0x22, 0x00, 0x00, 0x22, 0x18, 0xDA, 0x00);                 // DS1822:  9-12bit, -55 — +125 degC

bool blinking(void);

void setup()
{
    Serial.begin(9600);
    Serial.println(«OneWire-Hub DS18B20 Temperature-Sensor»);
    Serial.flush();

    pinMode(pin_led, OUTPUT);

    // Setup OneWire
    hub.attach(ds18b20);
   // hub.attach(ds18s20);
   // hub.attach(ds1822);


    ds18b20.setTemperature(int8_t(85));

};

void loop()
{
    // following function must be called periodically
    hub.poll();
    // this part is just for debugging (USE_SERIAL_DEBUG in OneWire.h must be enabled for output)
    if (hub.hasError()) hub.printError();




    // Blink triggers the state-change
    if (blinking())
    {

        // Set temp
        static float temperature = celsius;
        //temperature += 0.1;
        if (temperature > 30.0) temperature = 20.0;
        ds18b20.setTemperature(celsius);
        //ds18s20.setTemperature(temperature);
        //ds1822.setTemperature(temperature);
        Serial.println(celsius);

              //—————————————————————————
  byte i;
  byte present = 0;
  byte type_s;
  byte data[12];
  //byte addr[8];
  //28 FF 7 DD 61 15 1 C6
unsigned char addr[8] = {0x28, 0xFF, 0x07, 0xDD, 0x61, 0x15, 0x01, 0xC6};
  //float celsius, fahrenheit;
  

  ds.reset();
  ds.select(addr);
  ds.write(0x44, 1);        // start conversion, with parasite power on at the end
  

  present = ds.reset();
  ds.select(addr);    
  ds.write(0xBE);         // Read Scratchpad

  for ( i = 0; i < 9; i++) {           // we need 9 bytes
    data[i] = ds.read();
    //Serial.print(data[i], HEX);
   // Serial.print(» «);
  }


  int16_t raw = (data[1] << 8) | data[0];
  if (type_s) {
    raw = raw << 3; // 9 bit resolution default
    if (data[7] == 0x10) {
      // «count remain» gives full 12 bit resolution
      raw = (raw & 0xFFF0) + 12 — data[6];
    }
  } else {
    byte cfg = (data[4] & 0x60);
    // at lower res, the low bits are undefined, so let’s zero them
    if (cfg == 0x00) raw = raw & ~7;  // 9 bit resolution, 93.75 ms
    else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
    else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
    //// default is 12 bit resolution, 750 ms conversion time
  }
  celsius = (float)raw / 16.0;
  //fahrenheit = celsius * 1.8 + 32.0;
  Serial.print(»  Temperature = «);
  Serial.print(celsius);
  Serial.print(» Celsius, «);
  //Serial.print(fahrenheit);
  //Serial.println(» Fahrenheit»);
//—————————————————————————
    }
}

bool blinking(void)
{
    constexpr  uint32_t interval    = 1000;          // interval at which to blink (milliseconds)
    static uint32_t nextMillis  = millis();     // will store next time LED will updated

    if (millis() > nextMillis)
    {
        nextMillis += interval;             // save the next time you blinked the LED
        static uint8_t ledState = LOW;      // ledState used to set the LED
        if (ledState == LOW)    ledState = HIGH;
        else                    ledState = LOW;
        digitalWrite(pin_led, ledState);
        return 1;
    }
    return 0;
}

Пин 12 это выход на разьем в коробку, пин 11 это дата пин вашего нового датчика ds18b20, так же не забываем подтягивать новый датчик резистором на 4,7ком на шину +5В

После этого заходим в консоль коробки и проверяем как она видит ваш датчик

root [ ~ ]# tempcontrol
Found sensors:
0: 28 A0 36 14 03 00 00 88
RomCode: 28A0361403000088 Port: 0 Order :0 Time: 1496909700 Temp: 335
RomCode: 28A0361403000088 Port: 0 Order :0 Time: 1496909702 Temp: 335
RomCode: 28A0361403000088 Port: 0 Order :0 Time: 1496909703 Temp: 340
RomCode: 28A0361403000088 Port: 0 Order :0 Time: 1496909704 Temp: 340
RomCode: 28A0361403000088 Port: 0 Order :0 Time: 1496909705 Temp: 335

 

Поделиться
Отправить
 49   2021   linux   tempcontrol