Skocz do zawartości

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.

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...

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?

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

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

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.

  • 3 miesiące później...
(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

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ś? 

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.

 

(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

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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...