Arduino Uno Wifi Rev2 GET заявка

Foxyball
Foxyball
10.02.2022 19:29:16 25061

Arduino Uno Wifi Rev2 GET заявка

От 2 седмици се опитваме да накараме arduino-то да записва в тестово php файлче ( post.php) стойностите от сензорите за температура и влажност в почвата.

Докато при http работеше нормално, при https не искаше да записва нищо.В последствие се оказа се, че проблемът е SSL сертификата на сайтовете...

С малко сърч установихме, че решението е да се зададе 443 порт и да се използва connectSSL , а не стандартното connect. 

Предстои да се направи да не записва данните в някакво тхт файлче, а да записва в база данни (MySQL), откъдето ще се извличат и използват за по-интересни цели...

Това е кодът, който използвахме за GET заявка до post.php като за първи стъпки с arduino:

 

#include 
#include "DHT.h"
#define DHTTYPE DHT11   // DHT 11

#define DHTPIN 2  // Digital pin connected to the DHT sensor
#define SensorPin A0 

DHT dht(DHTPIN, DHTTYPE);


char ssid[] = ""; // wifi name
char pass[] = ""; // wifi pass

int status = WL_IDLE_STATUS;

char server[] = "balikgstudio.eu";


float sensorValue = 0; 
String postData;
String postVariable = "?temp=";

WiFiClient client;

void setup() {

  Serial.begin(9600);
    dht.begin();

  while (status != WL_CONNECTED) {
    Serial.print("Opit za vruzka s: ");
    Serial.println(ssid);
    status = WiFi.begin(ssid, pass);
    delay(10000);
  }

  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());
  IPAddress ip = WiFi.localIP();
  IPAddress gateway = WiFi.gatewayIP();
  Serial.print("IP Address: ");
  Serial.println(ip);
}

void loop() {
    // Wait a few seconds between measurements.
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print(F(" Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.print(F("C "));
  Serial.print(f);
  Serial.print(F("F  Heat index: "));
  Serial.print(hic);
  Serial.print(F("C "));
  Serial.print(hif);
  Serial.println(F("F"));



sensorValue = sensorValue + analogRead(SensorPin); 
sensorValue = sensorValue/100.0; 
  

  postData = postVariable + t + "&hum=" + h+ "&vlajnost=" + sensorValue ;



 
  if (client.connectSSL(server, 443)) {
    client.println("GET /arduino/post.php"+postData+" HTTP/1.1");
    client.println("Host: balikgstudio.eu");
    client.println("Content-Type: application/x-www-form-urlencoded");
    client.print("Content-Length: ");
    client.println(postData.length());
    client.println();
    client.print(postData);
  }

  if (client.connected()) {
    client.stop();
  }
  Serial.println(postData);

  delay(3000);
}

Коментари

Няма коментари

Остави коментар

Моля, първо влезте във вашия профил Вход.