Skocz do zawartości
Mrpatryk

Przesyłanie danych na strone WWW

Pomocna odpowiedź

Ta dyskusja już dawno nie ma sensu, albo chociaż związku z tematem watku - więc może prośba do moderatora o wydzielanie tej zaciętej dyskusji do oddzielnego tematu? W każdym razie moje podsumowanie jest takie: oryginalny kod działa tak samo z const, jak i z define. Natomiast ogólnie lepiej używać define niż const, a najlepiej constexpr. Chyba że ktoś ma inne zdanie, ja chętnie dowiem się czegoś nowego 🙂

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
15 minut temu, SOYER napisał:

autora wątku interesuje rozwiązanie problemu, dlaczego dodanie tych "dziwnych" (dla mnie;)) define blokuje wykonywanie jego programu... 

Strzelam: bo autor w programie posługuje się zamiast nazwami pinów NodeMCU (np. D6, co oznacza GPIO12, czyli pin do dyspozycji programisty grzecznie podłączony do nogi oznaczonej D6 na NodeMCU) cyferkami (np. 6, co oznacza GPIO6, który to pin podłączony wyłącznie wewnętrznie odpowiedzialny jest za komunikację z pamięcią flash i próba jakichś operacji na tym pinie powoduje natychmiastowy crash)?

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Część dyskusji została wydzielona do osobnego tematu:

 

Udostępnij ten post


Link to post
Share on other sites

@hazi18 poszukaj co nieco o numeracji pinów na nodeMCU, też się na tym kiedyś przejechałem....

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

hej, mam numerację Noda i powiem szczerze, że to co pisze @ethanak miałoby sens bo ja się nie skupiłem na zmianie wszystkich pinów... zrobię to i dam znać.

Udostępnij ten post


Link to post
Share on other sites

Hej, zmieniłem piny i wczytało i połączyło się, dzięki za uwagę 🙂

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Hej, mam kolejny problem, próbuję przekazać dane z Noda na Blynka. w Blynk jest opisane jak to zrobić ale ta opcja nie działa. Wykorzystuję aktualnie ten kod i tez nie działa jak powinien, pokazuje temp 1.0*C i się nie zmienia. Co może być zrobione źle?

BLYNK_READ(V1) //Blynk app has something on V1
{
  sensorData = digitalRead(D1); //reading the sensor on D1
  Blynk.virtualWrite(V1, sensorData); //sending to Blynk
}

 

Udostępnij ten post


Link to post
Share on other sites

@hazi18 wczytaj się proszę w dokumentację Blynka, do czego innego służy BLYNK_READ() - - to zapis z apki do hardware, a Blynk.virtualWrite() to zapis z hardware do apki... 

Nie myl też pinów virtual z fizycznymi. 

Wystarczy Blynk.virtualWrite(V1, sensorData);

w aplikacji twoim value display ustawiasz jako źródło V1 i musi działać... 

Poczytaj tu:

http://docs.blynk.cc/#blynk-main-operations-get-data-from-hardware

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Hej,

Dzięki wielkie za linka, odczyt działa tylko, że ... w serial print mam prawidłową temperaturę a w Blynk rośnie i aktualnie mam 203 stopnie....

Udostępnij ten post


Link to post
Share on other sites

pokaż cały kod, bo tak to zgadywanki... 

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
#include "DHT.h"
//#include <TM1637Display.h>
#define DHTPIN D1     // what pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)
#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[] = "TP-LINK";
char pass[] = "";

DHT dht(DHTPIN, DHTTYPE);
/*const int CLK = D3; //Set the CLK pin connection to the display
const int DIO = D4; //Set the DIO pin connection to the display
const int CLK1 = D5; //Set the CLK pin connection to the display
const int DIO1 = D6; //Set the DIO pin connection to the display
const int CLK2 = D7; //Set the CLK pin connection to the display
const int DIO2 = D8; //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;*/
//BlynkTimer timer;
 int sensorData;

void setup(void)
{
  // Debug console
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  
  /* digitalWrite(resetPin, HIGH);
  delay(1000);
  digitalWrite(resetPin, LOW);
  pinMode(przekaznik,OUTPUT);  // ustawienie pinu jako wyjście
  digitalWrite(przekaznik,LOW); // ustawienie na nim stanu niskiego
  tm1637a.setBrightness(0x0a);  //set the diplay to maximum brightness
  tm1637b.setBrightness(0x0a);  //set the diplay to maximum brightness
  tm1637c.setBrightness(0x0a);  //set the diplay to maximum brightness
  Serial.begin(9600); //Begin serial communication*/

  dht.begin();
}
BLYNK_READ(V1) //Blynk app has something on V1
{
  //sensorData = digitalRead(D1); //reading the sensor on D1
  Blynk.virtualWrite(1, millis() / 1000); //sending to Blynk
}
void loop(void)

{ 
  Blynk.run();
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  int i=0;
if (dht.readTemperature()>=36.5)  // wywołanie funkcji warunkowej
{
    // digitalWrite(przekaznik,HIGH);  // włączenie przekaźnika   
    Serial.print("Humidity: "); 
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: "); 
    Serial.print(t);
    Serial.println(" *C");

}

  else  // wywołanie funkcji warunkowej
  {
//   digitalWrite(przekaznik,LOW);  // wyłączenie przekaźnika
   Serial.print("Humidity: "); 
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: "); 
    Serial.print(t);
    Serial.println(" *C");  
  } 
    //  tm1637a.showNumberDec(h); //Display the Variable value;
    //  tm1637b.showNumberDec(t); //Display the Variable value;
      
      
   /* for (i; i <= 10; i++) {
     tm1637c.showNumberDec(i); //Display the Variable value;  
    delay(1000);
    }  */
  
}

Zrobione według wytycznych podanej przez Cb strony

Screenshot_20191004-134717.png

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Po kolei:

w aplikacji w Reading rate daj PUSH, a w szkicu wywal z setupa blynk_read bo przecież z apki nic nie wysyłasz, a Blynk.virtualWrite() wywal z setupa do loopa, ale koniecznie w jakimś timerze, np. co 10 sekund timer odpala to Blynk.virtualWrite(1, cośtam). 

Jak nie radzisz sobie z angielskim to wszystko masz tu: Blynk.pl

 

Edytowano przez SOYER
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Hej,

 zastosowałem się do Twoich instrukcji i dalej mi liczy co 1 w górę... a co do angielskiego to trochę rozumiem i z tego co wyczytałem w punkcie "Get data from hardware" - pobierz dane z urządzenia to właśnie jest tam taki kod

BLYNK_READ(V5) // Widget in the app READs Virtal Pin V5 with the certain frequency
{
  // This command writes Arduino's uptime in seconds to Virtual Pin V5
  Blynk.virtualWrite(5, millis() / 1000);
}

Więc albo ja coś źle zrozumiałem że mnie poprawiłeś albo oni źle napisali...

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

pokaż ten kod w którym to zastosowałeś się do moich instrukcji... 

i napisz mi co oznacza ten zapis millis() /1000? co zwraca? 

Edytowano przez SOYER

Udostępnij ten post


Link to post
Share on other sites
#include "DHT.h"
#define DHTPIN D1     // what pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)
#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[] = "TP-LINK";
char pass[] = "";

DHT dht(DHTPIN, DHTTYPE);

void setup(void)
{
  // Debug console
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  
  dht.begin();
}

void loop(void)

{ 
  Blynk.run();
  Blynk.virtualWrite(1, millis() / 1000); //sending to Blynk
}

 

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, aby zacząć 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...