Cześć, jestem noga w programowaniu, a chciałbym odpalić podwójny odczyt temperatury z dwóch czujnikoŵ z odczytem przez Blynk. Udało mi się uruchomić jeden, ale drugi nie pokazuje odczytu w Blynku. Gdzie może być błąd?
// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
@jurii: Nie potrzebnie robisz wszystko dwa razy. Zrób tak jak dla jednego czujnika, same czujniki podłącz równolegle i czytaj je tak jak pokazałem. DS18B20.getTempCByIndex(0); DS18B20.getTempCByIndex(1); DS18B20.getTempCByIndex(2);
Kazdy z dsow jest podłączony pod 3v3, gnd i obie linie danych do D0. Kod Twój. Niestety brak odczytu:( Dziękuję za cierpliwość, pewnie ja jestem jakiś ułomny;)
@jurii: Ale w moim kodzie masz podłączyć oba czujniki pod D2 czy co tam se ustawisz #define ONEWIREBUS D2 Nie widzę też rezystora PULL_UP pomiędzy DATA a +3.3 V
@jurii: No i git malina, teraz ogarnij programowanie tego tak abyś najpierw czytał całą magistralę 1wire, zapisywał w tablicy adresy wszystkich czujników i potem czytał te właściwe aby zawsze pomiar się zgadzał i była możliwa podmiana/dołożenie czujnika tak aby się cała reszta nie wysypała. W mieszkaniu aktualnie działa mi 18 esp8266 które sobie coś tam mierzą i wszystko trafia tu http://meteo.lipowa.net/temperatury3.php ;)
@dktr: W jaki sposób mierzysz temperaturę w lodówce i zamrażarce? Czujniki podłączone po kabelku? Odczyty mocy pobierasz z licznika operatora czy wstawiłeś własny? Jeśli własny to polecasz ten, co masz?
@pangolin: Czujniki przewodowe, własny podlicznik ORNO OR-WE504 z portem rs485 podłączonym pod esp8266. Ostatnio doszedł czujnik kierunku i prędkości wiatru, też na rs485 i tez podpięty pod esp ale tym razem esp32 bo akurat taki miałem z ethernetem bo w tej lokalizacji nie mam wifi. https://www.elektroda.pl/rtvforum/viewtopic.php?p=21094668
Cześć, jestem noga w programowaniu, a chciałbym odpalić podwójny odczyt temperatury z dwóch czujnikoŵ z odczytem przez Blynk. Udało mi się uruchomić jeden, ale drugi nie pokazuje odczytu w Blynku. Gdzie może być błąd?
// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
// See the Device Info tab, or Template settings
#define BLYNKTEMPLATEID "TMPL4swPX0pKP"
#define BLYNKTEMPLATENAME "termometr"
#define BLYNKAUTHTOKEN "gKgqNCNNWSY1FzEPCYkVoO0DBuHwL0B"
// Comment this out to disable prints and save space
#define BLYNKPRINT Serial
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp8266.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// Blynk Authentication Token and WiFi credentials
#define BLYNKTEMPLATEID "mojtemplateID"
#define BLYNKTEMPLATENAME "termometr"
#define BLYNKAUTHTOKEN "moj token"
char ssid[] = "mojewifi";
char pass[] = "mojehaslo";
// Data pin definitions for DS18B20 sensors
#define ONEWIREBUS1 D2
#define ONEWIREBUS2 D3
OneWire oneWire1(ONEWIREBUS1);
OneWire oneWire2(ONEWIREBUS2);
DallasTemperature DS18B201(&oneWire1);
DallasTemperature DS18B202(&oneWire2);
float temp1, temp2;
void setup() {
Serial.begin(115200);
Blynk.begin(BLYNKAUTHTOKEN, ssid, pass);
DS18B201.begin();
DS18B202.begin();
}
void loop() {
Blynk.run();
DS18B201.requestTemperatures();
temp1 = DS18B201.getTempCByIndex(0);
Serial.print("Temperature 1: ");
Serial.println(temp1);
Blynk.virtualWrite(V0, temp1);
DS18B202.requestTemperatures();
temp2 = DS18B202.getTempCByIndex(0);
Serial.print("Temperature 2: ");
Serial.println(temp2);
Blynk.virtualWrite(V1, temp2);
}
@jurii: temp2 = DS18B202.getTempCByIndex(1); I podłącz wszystko do jednego gpio.
DS18B20.getTempCByIndex(0);
DS18B20.getTempCByIndex(1);
DS18B20.getTempCByIndex(2);
itd w zależności ile masz czujników.
Dziękuję za cierpliwość, pewnie ja jestem jakiś ułomny;)
źródło: temp_file4246104704473406552
PobierzNie widzę też rezystora PULL_UP pomiędzy DATA a +3.3 V
@dktr: W jaki sposób mierzysz temperaturę w lodówce i zamrażarce? Czujniki podłączone po kabelku?
Odczyty mocy pobierasz z licznika operatora czy wstawiłeś własny? Jeśli własny to polecasz ten, co masz?
https://www.elektroda.pl/rtvforum/viewtopic.php?p=21094668