• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Самое простое добавление датчиков в сервис Народный мониторинг в программе FLProg.

16 февраля, 2017

В данной статье подключим датчик DS18B20 к Arduino и выведем значения с датчика на сервис Народного мониторинга.

Для этого нам понадобится:

DS18b20 : http://ali.pub/kusf0

Arduino uno : http://ali.ski/gC_mOa

EthernetShield: http://ali.ski/tLocoy

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

Вот так выглядит самый распространенный вид датчика DS18B20

Датчик DS18B20 работает по шине 1-Wire и у него есть несколько вариантов подключения вот несколько из них:

По схеме подключения видно что датчик подключен к 6 пину ардуино.

В программе FLProg настраивается все очень просто.

Вот схема устройств в программе FLProg:

 

Ссылка на готовую схему FLProg  : https://yadi.sk/d/8OS4x6QN3E9cWt

 

Если не хотите пользоваться программой FLProg то необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.

 

#include <OneWire.h>
#include <SPI.h>
#include <EthernetUdp.h>
#include <Ethernet.h>
byte _d18x2x1Addr[8]={0x28, 0xFF, 0xCC, 0x27, 0x64, 0x16, 0x4, 0xA1};

OneWire  _ow6(6);
byte ethernet_mac [] = {0x78, 0xAC, 0xC0, 0xC6, 0x02, 0x96};
bool _isCorrectLocalIp = 0;
EthernetUDP Udp;
IPAddress _NMC1SIp(94, 142, 140, 101);
unsigned long _d18x2x1Tti = 0UL;
float _d18x2x1O = 0.00;
unsigned long _NMC1SendTime = 0UL;
void setup()
{
if (!   Ethernet.begin(ethernet_mac)== 0) {_isCorrectLocalIp  = 1; } 
delay(1000);
Udp.begin(8888);
}
void loop()
{



if (1) { if ( _isTimer(_NMC1SendTime, 330000)) {
Udp.beginPacket(_NMC1SIp, 8283);
 Udp.print ("#78ACC0C6028A\n");
 Udp.print ("#78ACCOC60284#");
 Udp.print ((_d18x2x1O));
 Udp.print ("\n");
 Udp.print ("##\n");
Udp.endPacket();
_NMC1SendTime = millis();
}}if(_isTimer(_d18x2x1Tti, 1000)) {
_d18x2x1Tti = millis(); 
_d18x2x1O=  _readDS18_ow6(_d18x2x1Addr, 0);}




}
bool _isTimer(unsigned long startTime, unsigned long period )
  {
  unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
  }
float _convertDS18x2xData(byte type_s, byte data[12])
{
  int16_t raw = (data[1] << 8) | data[0];
  if (type_s) 
  {
  raw = raw << 3; 
  if (data[7] == 0x10) { raw = (raw & 0xFFF0) + 12 - data[6]; }
  }
else 
  {
   byte cfg = (data[4] & 0x60);
   if (cfg == 0x00) raw = raw & ~7;   else if (cfg == 0x20) raw = raw & ~3;  else if (cfg == 0x40) raw = raw & ~1;
  }
return  (float)raw / 16.0;
}
float _readDS18_ow6(byte addr[8], byte type_s)
{  byte data[12];
byte i;
_ow6.reset();
_ow6.select(addr);
_ow6.write(0xBE);
for ( i = 0; i < 9; i++) {
 data[i] = _ow6.read();}
_ow6.reset();
_ow6.select(addr);
_ow6.write(0x44, 1);
return _convertDS18x2xData(type_s, data);}

Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.

Подробности в видео

Primary Sidebar

Поиск

Новые записи

  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC
  • Заставляем Bluetooth датчики температуры tuya и xiaomi отправлять данные по Zigbee в Home Assistant.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·