Foxyball
10.02.2022 19:29:16 25061Arduino 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); }
Коментари
Остави коментар
Моля, първо влезте във вашия профил Вход.