Esp8266+8xDS18B20, stacja kontroli temperatur.

Radioactiev
Posts: 5
Joined: Wed Jul 26, 2023 6:39 pm

Post

Witam, chciałbym wykonać stację temperatur do kontroli temperatury rozsady warzyw. Chcę mieć stały dostęp do obecnej temperatury, no i wrzucić sobie powiadomienia o spadku poniżej określonej temperatury. Wszystko super idzie przez GUI-Generic, lecz rozważam czy nie powinienem podłączyć każdego czujnika do innego pinu, biorąc pod uwagę to, że czujniki będą na różnej długości przewodów, przy czym 4 z nich na 20-metrowych, 4 na krótszych tak około 4-5m. Ważne jest żeby uniknąć zakłóceń, bo informacje muszą być niezawodne bez opóźnień, wystarczy mi dokładność do 1 stopnia Celsjusza. Chciałem spróbować swoich sił z zaprogramowaniem esp własnoręcznie, potrafię sobie poradzić na podstawie przykładów z odczytem w monitorze portu szeregowego jednego czy dwóch czujników bo tyle kupiłem na próbę, ale przykład z biblioteki supli jest dla mnie niejasny i mam błędy kompilacji. Chciałbym zrozumieć z pomocą jakiegoś działającego przykładu jak zaprogramować esp do przesyłania informacji do serwera. Znam podstawy C, programowałem kiedyś trochę stmów czy arduino ale to na poziomie podstawowym.

Próbę na jednym czujniku na starej skrętce 4 żyłowej przeprowadziłem, na 30m przewodu czujnik nadal wskazuje prawidłowe wartości, ale to tylko jeden czujnik.
arkadiusz.kuznik
Posts: 19
Joined: Sat Oct 15, 2022 1:51 pm

Post

Aby dodać termometr na osobnych pinach wystarczy dodać to:

Code: Select all

new Supla::Sensor::DS18B20(nr_pinu);
Nie trzeba podawać adresu czujnika.
Tylko pamiętaj, że niektóre piny ESP muszą być w konkretnym stanie podczas włączania.

Jakie błędy dostajesz podczas kompilacji?
Radioactiev
Posts: 5
Joined: Wed Jul 26, 2023 6:39 pm

Post

arkadiusz.kuznik wrote: Thu Jul 27, 2023 1:15 pm Aby dodać termometr na osobnych pinach wystarczy dodać to:

Code: Select all

new Supla::Sensor::DS18B20(nr_pinu);
Nie trzeba podawać adresu czujnika.
Tylko pamiętaj, że niektóre piny ESP muszą być w konkretnym stanie podczas włączania.

Jakie błędy dostajesz podczas kompilacji?
Sam kod do sensorów zrozumiałem i tak napisałem, tylko krzyczy w tych linijkach:
https://imgur.com/a/KOhWQsu
arkadiusz.kuznik
Posts: 19
Joined: Sat Oct 15, 2022 1:51 pm

Post

Wklej cały kod tutaj
Radioactiev
Posts: 5
Joined: Wed Jul 26, 2023 6:39 pm

Post

Code: Select all

#include <SuplaDevice.h>
#include <supla/sensor/DS18B20.h>


  #include <supla/network/esp_wifi.h>
  Supla::ESPWifi wifi("MOJANAZWA", "MOJEHASLO");


void setup() {

  Serial.begin(115200);

  // Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
  char GUID[SUPLA_GUID_SIZE] = {0x1C,0xDC,0x4E,0xBA,0xB3,0xD3,0xEC,0x7A,0xC6,0xD5,0xF0,0xFA,0x06,0xCB,0x5A,0xB8};

  // Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0xAA,0xE0,0xA9,0x14,0x85,0x4E,0x53,0x63,0x94,0x7A,0x87,0x7F,0xCD,0xAD,0x14,0x21};

  new Supla::Sensor::DS18B20(16);
  new Supla::Sensor::DS18B20(5);



  /*
   * SuplaDevice Initialization.
   * Server address, LocationID and LocationPassword are available at https://cloud.supla.org 
   * If you do not have an account, you can create it at https://cloud.supla.org/account/create
   * SUPLA and SUPLA CLOUD are free of charge
   * 
   */

SuplaDevice.begin("0x1C,0xDC,0x4E,0xBA,0xB3,0xD3,0xEC,0x7A,0xC6,0xD5,0xF0,0xFA,0x06,0xCB,0x5A,0xB8",              // Global Unique Identifier 
                    "svrXXXX.supla.org",  // SUPLA server address
                    "[email protected]",   // Email address used to login to Supla Cloud
                    "0xAA,0xE0,0xA9,0x14,0x85,0x4E,0x53,0x63,0x94,0x7A,0x87,0x7F,0xCD,0xAD,0x14,0x21");          // Authorization key
}
void loop() {
  SuplaDevice.iterate();
}
Last edited by Radioactiev on Thu Jul 27, 2023 1:54 pm, edited 1 time in total.
arkadiusz.kuznik
Posts: 19
Joined: Sat Oct 15, 2022 1:51 pm

Post

Code: Select all

SuplaDevice.begin(GUID,              // Global Unique Identifier 
                    "svrXXX.supla.org",  // SUPLA server address
                    "[email protected]",   // Email address used to login to Supla Cloud
                    AUTHKEY);          // Authorization key
Tutaj nie podstawiasz swoich danych GUID i AUTHKEY, to są odwołania do zmiennych, do których wcześniej wpisałeś dane.

Code: Select all

// Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
  char GUID[SUPLA_GUID_SIZE] = {0x1C,0xDC,0x4E,0xBA,0xB3,0xD3,0xEC,0x7A,0xC6,0xD5,0xF0,0xFA,0x06,0xCB,0x5A,0xB8};

  // Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0xAA,0xE0,0xA9,0x14,0x85,0x4E,0x53,0x63,0x94,0x7A,0x87,0x7F,0xCD,0xAD,0x14,0x21};
Na przyszłość ukrywaj swoje dane, tj adres email i serwer


Poniżej przesyłam zmodyfikowany przykład WEBINTERFACE dla 8 czujników. Będziesz mógł wpisać swoje dane logowania poprzez sieć którą stworzy ESP, poprzez IP 192.168.4.1

Code: Select all

/*
  Copyright (C) AC SOFTWARE SP. Z O.O.

  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License
  as published by the Free Software Foundation; either version 2
  of the License, or (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

#define DS_1 nrpinu_czujnik_1
#define DS_2 nrpinu_czujnik_2
#define DS_3 nrpinu_czujnik_3
#define DS_4 nrpinu_czujnik_4
#define DS_5 nrpinu_czujnik_5
#define DS_6 nrpinu_czujnik_6
#define DS_7 nrpinu_czujnik_7
#define DS_8 nrpinu_czujnik_8

#define STATUS_LED_GPIO 2
#define BUTTON_CFG_GPIO 0

#include <SuplaDevice.h>
#include <supla/network/esp_wifi.h>
#include <supla/control/button.h>
#include <supla/device/status_led.h>
#include <supla/storage/littlefs_config.h>
#include <supla/network/esp_web_server.h>
#include <supla/network/html/device_info.h>
#include <supla/network/html/protocol_parameters.h>
#include <supla/network/html/status_led_parameters.h>
#include <supla/network/html/wifi_parameters.h>
#include <supla/device/supla_ca_cert.h>
#include <supla/events.h>

#include <supla/sensor/DS18B20.h>

Supla::ESPWifi wifi;
Supla::LittleFsConfig configSupla;

Supla::Device::StatusLed statusLed(STATUS_LED_GPIO, true); // inverted state
Supla::EspWebServer suplaServer;


// HTML www component (they appear in sections according to creation
// sequence)
Supla::Html::DeviceInfo htmlDeviceInfo(&SuplaDevice);
Supla::Html::WifiParameters htmlWifi;
Supla::Html::ProtocolParameters htmlProto;
Supla::Html::StatusLedParameters htmlStatusLed;

void setup() {

  Serial.begin(115200);
  
  new Supla::Control::Button(BUTTON_CFG_GPIO, true, true);

  new Supla::Sensor::DS18B20(DS_1);
  new Supla::Sensor::DS18B20(DS_2);
  new Supla::Sensor::DS18B20(DS_3);
  new Supla::Sensor::DS18B20(DS_4);
  new Supla::Sensor::DS18B20(DS_5);
  new Supla::Sensor::DS18B20(DS_6);
  new Supla::Sensor::DS18B20(DS_7);
  new Supla::Sensor::DS18B20(DS_8);

 

  // configure defualt Supla CA certificate
  SuplaDevice.setSuplaCACert(suplaCACert);
  SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);

  SuplaDevice.begin();
}

void loop() {
  SuplaDevice.iterate();
}
Last edited by arkadiusz.kuznik on Thu Jul 27, 2023 5:16 pm, edited 1 time in total.
Radioactiev
Posts: 5
Joined: Wed Jul 26, 2023 6:39 pm

Post

Jeszcze dopytam dla pewności, skąd wziąć adres serwera? Bo zostawiłem ten domyślny z przykładu, widzę że powinienem szukać w cloudzie ale nie wiem gdzie.
arkadiusz.kuznik
Posts: 19
Joined: Sat Oct 15, 2022 1:51 pm

Post

W SUPLA Cloud musisz nacisnąć logo na górze strony, albo wejść w ten adres: https://cloud.supla.org/home oczywiście będąc zalogowanym
Radioactiev
Posts: 5
Joined: Wed Jul 26, 2023 6:39 pm

Post

arkadiusz.kuznik wrote: Thu Jul 27, 2023 1:52 pm
Poniżej przesyłam zmodyfikowany przykład WEBINTERFACE dla 8 czujników. Będziesz mógł wpisać swoje dane logowania poprzez sieć którą stworzy ESP, poprzez IP 192.148.4.1
Drobiazg kolego, ale popraw IP na 168 jakby ktoś kiedyś w przyszłości chciał z tego wątku skorzystać. Wszystko na ten moment idzie w dobrą stronę ale z racji małej ilości czasu robię to z doskoku, zostawię na razie wątek aktywny gdybym miał kolejne pytania :D

Return to “Pomoc”