Skocz do zawartości
Mrpatryk

Przesyłanie danych na strone WWW

Pomocna odpowiedź

10 z 5V i GND 🙂

próbowałem na innym wyświetlaczu ale niestety bez rezultatu jeśli chodzi o wyświetlanie. Ten trzeci właśnie jest po to by widzieć licznik czy program działa czy nie, bo na samej temperaturze czy wilgotności tego nie zauważę. 1 wyświetlacz zabiera w sumie 4 piny ( 2 do arduino oraz + i -). Co do higrometru akurat jest tak samo wązny jak termometr bo musi być odpowiednia wilgotność do wykluwania się piskląt, zbyt niska może powodować uduszenie się w jajku.

Udostępnij ten post


Link to post
Share on other sites

To zrób migające kropki na pierwszych dwóch wyświetlaczach - będziesz wiedział że program działa.

Co do wilgitności: jak napisałem, jak się higrometr zwiesi to poleziesz go zresetować, a następnego dnia założysz odnośny wątek na forbocie 🙂

Wyświetlacz to dwa piny, zasilania nie liczymy.

W sumie po przemyśleniu - linie clk wyświetlaczy podłączone do 0/2/16, przekaźnik do 15, zostaje akurat na 3 linie danych wyświetlaczy i dwa czujniki.

I tak pomyśl o innym wyświetlaczu - jakiś oled przelutowany na i2c, typowy lcd z konwerterem, w ostateczności jakeś maleństwo na spi...

Udostępnij ten post


Link to post
Share on other sites

Dziękuję za odpowiedzi, jak wcześniej wspominałem nie jestem programistą więc błędy w programie mogły się pojawić.

Co do czujnika nie zagłębiałem się w jego strukturę, działanie, wieszanie, itp. zależało mi na jego funkcjonalności. Kiedyś miałem 1 ekran z temperaturą, ale z czasem dołożyłem drugi z wilgotnością aby mieć podgląd na parametry inkubacji. Po resecie i ugotowaniu się jajek wpadłem a pomysł, że licznik jest dobrym sposobem na to czy program działa czy nie.

Odczyt DHT nie ma sensu częściej niż co 2s

ma sens, bo potrzebuję stale mieć aktualizowane dane w programie aby wiedział jaka jest temperatura i odpowiednio reagował (wyłączenie i włączenie przekaźnika gdzie jest grzałka) aby temperatura zbytnio się nie podniosła lub spadła.

3 ekrany nie mają sensu, wystarczy na jednym przez sekundę pokazywać np. 23.3C, potem przez sekundę 44.4H

Pomysł w sumie nie jest zły tylko musiałbym się pobawić z wyświetlaniem raz jednego parametru raz drugiego. Wezmę to pod uwagę 🙂

Co do innego wyświetlacza, kupiłem Arduino KIT (zestaw) i tam był jakiś wyświetlacz chyba 2x16 ale niestety po czytaniu i próbie podłączenia nie udało mi się go uruchomić. Mam jeszcze jeden 7 segmentowy 4 cyfrowy, którego też nie odpaliłem poprawnie. Pozostał potem ten jeden gdzie tylko podłączam kabelki i nie muszę się martwić z programowaniem wyświetlacza ( mam tu na myśli jak w 7 segmentowym).

OK Panowie, rozpisaliśmy się teraz na temat programu a moim problemem jest próba użycia modułu WIFI do tego co teraz mam abym miał podgląd na dane z programu (czujnika). Co zatem musiałbym ewentualnie zakupić aby zrobić to co chcę? Inną płytkę niż UNO?

Udostępnij ten post


Link to post
Share on other sites

Niestety temat wygląda tak, że mając problem z nierówną pracą silnika i gaśnięciem auta w losowych momentach przymierzasz się do rozwiązania problemu montując zestaw nitro. Jeśli nie ogarniesz Arduino AVR do pracy dokładnie tak jak tego oczekujesz to po dołożeniu/zamianie na ESP będzie "nieco" trudniej. Do Arduino z AVR masz tu kurs, pewnie jest sporo użytych tych elementów z kitu.

Z DHT odczyt nie ma sensu częściej niż fabryka przewidziała, bo tracisz na to w każdej pętli 250ms, a on sobie wewnątrz scalaka i tak nic nowego nie wymyśli w te 2s, masz więc 1 odczyt z nową informacją i 7 powtórzonych, co dodatkowo negatywnie wpływa na stabilność jego pracy. Oczywiście czujnik ma jeszcze taki parametr jak "Response Time", czyli nawet jeśli warunki się zmienią, to czujnik potrzebuje 1-20s żeby to zauważyć, DHT ma około 5s.

Tutaj można porównać różne czujniki: http://www.kandrsmith.org/RJS/Misc/Hygrometers/calib_many.html, z własnych obserwacji wiem,  że odczyt HTU21D i Si7021 trwa około 50ms, a BME280 po około 2ms. Co do dokładności pomiarów to podzielam zdanie tego testu z linka. Mam teraz podłączone te czujniki i jak znajdę wzorcowany miernik to dopiszę jakie są odchyłki, na razie DHT jest mocno z boku innych odczytów, no ale może akurat on ma racje - nie wiem.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dziękuję za uwagi. Nie mam zbyt wiele czasu na kombinowanie, naukę, szukanie i kupno nowych rzeczy. Podsumowując, pracując na tym co mam muszę się liczyć z zawieszką czujnika. Jeszcze raz dziękuję za pomoc i cenne uwagi 🙂

  • Nie zgadzam się! 1

Udostępnij ten post


Link to post
Share on other sites

Jeśli przekopiowanie tych tych 3 linijek do swojego programu to problem

#include <avr/wdt.h>

void setup() {
wdt_enable(WDTO_4S);
 
}

void loop() {
wdt_reset();
 
}

to faktycznie trzeba  żyć z zawieszkami.

Udostępnij ten post


Link to post
Share on other sites

A zawiesza się Arduino czy DHT? Bo jeśli DHT to żaden watchdog nie pomoże o ile przy resecie nie zrobisz odłączania zasilania.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Witam po dłuższej nieobecności,

kupiłem NodeMCU v3. Po wgraniu przykładowego programu do łączenia i wpisaniu tokena połączenie działa z Blynkiem. Jednak jak próbuję dołączyć tam mój kod to niestety po wgraniu już nie ma połączenia. co może być przyczyną? Brak błedów po wgraniu.

KOD

#include "DHT.h"
#include <TM1637Display.h>
#define DHTPIN D1     // what pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)


DHT dht(DHTPIN, DHTTYPE);
const int CLK = 4; //Set the CLK pin connection to the display
const int DIO = 3; //Set the DIO pin connection to the display
const int CLK1 = 6; //Set the CLK pin connection to the display
const int DIO1 = 5; //Set the DIO pin connection to the display
const int CLK2 = 9; //Set the CLK pin connection to the display
const int DIO2 = 8; //Set the DIO pin connection to the display
int NumStep = 0;  //Variable to interate
TM1637Display tm1637a(CLK, DIO);  //set up the 4-Digit Display.
TM1637Display tm1637b(CLK1, DIO1);  //set up the 4-Digit Display.
TM1637Display tm1637c(CLK2, DIO2);  //set up the 4-Digit Display.
int resetPin = D2;
int przekaznik=D0;

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
// You should get Auth Token in the Blynk App.
char auth[] = "_hyKFQylC32c9eUlduUNgp_oM1c9RydD";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "NETGEAR";
char pass[] = "";

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);
}

void loop()
{
  Blynk.run();
}

Powiadomienie po wgraniu kodu

 

Szkic używa 279960 bajtów (26%) pamięci programu. Maksimum to 1044464 bajtów.
Zmienne globalne używają 28888 bajtów (35%) pamięci dynamicznej, pozostawiając 53032 bajtów dla zmiennych lokalnych. Maksimum to 81920 bajtów.
esptool.py v2.6
2.6
esptool.py v2.6
Serial port COM10
Connecting....
Chip is ESP8266EX
Features: WiFi
MAC: 2c:f4:32:20:bd:55
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 284112 bytes to 204394...

Writing at 0x00000000... (7 %)
Writing at 0x00004000... (15 %)
Writing at 0x00008000... (23 %)
Writing at 0x0000c000... (30 %)
Writing at 0x00010000... (38 %)
Writing at 0x00014000... (46 %)
Writing at 0x00018000... (53 %)
Writing at 0x0001c000... (61 %)
Writing at 0x00020000... (69 %)
Writing at 0x00024000... (76 %)
Writing at 0x00028000... (84 %)
Writing at 0x0002c000... (92 %)
Writing at 0x00030000... (100 %)
Wrote 284112 bytes (204394 compressed) at 0x00000000 in 215.2 seconds (effective 10.6 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

 

Edytowano przez hazi18
Dodanie kodu

Udostępnij ten post


Link to post
Share on other sites

Cześć, na początek daj #include "biblioteki blynka" na samą górę, gdzie ten Twój kod? W loopie masz tylko Blynka... 

Hasła nie masz czy wygumkowałeś? 

Udostępnij ten post


Link to post
Share on other sites

Dodałem na górę to co było poniżej

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include "DHT.h"
#include <TM1637Display.h>
#define DHTPIN D1     // what pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)


DHT dht(DHTPIN, DHTTYPE);
const int CLK = 4; //Set the CLK pin connection to the display
const int DIO = 3; //Set the DIO pin connection to the display
const int CLK1 = 6; //Set the CLK pin connection to the display
const int DIO1 = 5; //Set the DIO pin connection to the display
const int CLK2 = 9; //Set the CLK pin connection to the display
const int DIO2 = 8; //Set the DIO pin connection to the display
int NumStep = 0;  //Variable to interate
TM1637Display tm1637a(CLK, DIO);  //set up the 4-Digit Display.
TM1637Display tm1637b(CLK1, DIO1);  //set up the 4-Digit Display.
TM1637Display tm1637c(CLK2, DIO2);  //set up the 4-Digit Display.
int resetPin = D2;
int przekaznik=D0;

hasła nie mam. Zmiana miejsca biblioteki nie pomogła, zauważyłem jak zakomentowałem kawałek kodu (poniżej) to było połączenie. co może być tego powodem?

const int CLK = 4; //Set the CLK pin connection to the display
const int DIO = 3; //Set the DIO pin connection to the display
const int CLK1 = 6; //Set the CLK pin connection to the display
const int DIO1 = 5; //Set the DIO pin connection to the display
const int CLK2 = 9; //Set the CLK pin connection to the display
const int DIO2 = 8; //Set the DIO pin connection to the display
int NumStep = 0;  //Variable to interate
TM1637Display tm1637a(CLK, DIO);  //set up the 4-Digit Display.
TM1637Display tm1637b(CLK1, DIO1);  //set up the 4-Digit Display.
TM1637Display tm1637c(CLK2, DIO2);  //set up the 4-Digit Display.

 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Teraz napisz nam co oznacza np taki zapis:

const int clk = 4;

Bo mnie na kursie Forbota inaczej uczyli definiować piny... ale może się mylę... 

Edytowano przez SOYER

Udostępnij ten post


Link to post
Share on other sites
13 godzin temu, SOYER napisał:

Teraz napisz nam co oznacza np taki zapis:

const int clk = 4;

@SOYER tak też można, to nic złego 😉 Jest wiele metod, nie powinno to wpływać na działanie programu. Więcej na ten temat znajdziesz tutaj: https://www.arduino.cc/reference/en/language/variables/variable-scope--qualifiers/const/

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Marne mam pojęcie o czym piszecie:-/ ;), dyskusja poszła w ciekawym kierunku... jednak jak mniemam autora wątku interesuje rozwiązanie problemu, dlaczego dodanie tych "dziwnych" (dla mnie;)) define blokuje wykonywanie jego programu... 

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...