Skocz do zawartości

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
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
  • 2 tygodnie później...

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
}

 

@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
#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

(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

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

(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
#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
}

 

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