5 changed files with 119 additions and 0 deletions
@ -0,0 +1,5 @@ |
|||||
|
.pio |
||||
|
.vscode/.browse.c_cpp.db* |
||||
|
.vscode/c_cpp_properties.json |
||||
|
.vscode/launch.json |
||||
|
.vscode/ipch |
@ -0,0 +1,10 @@ |
|||||
|
{ |
||||
|
// See http://go.microsoft.com/fwlink/?LinkId=827846 |
||||
|
// for the documentation about the extensions.json format |
||||
|
"recommendations": [ |
||||
|
"platformio.platformio-ide" |
||||
|
], |
||||
|
"unwantedRecommendations": [ |
||||
|
"ms-vscode.cpptools-extension-pack" |
||||
|
] |
||||
|
} |
@ -0,0 +1,17 @@ |
|||||
|
; PlatformIO Project Configuration File |
||||
|
; |
||||
|
; Build options: build flags, source filter |
||||
|
; Upload options: custom upload port, speed and extra flags |
||||
|
; Library options: dependencies, extra library storages |
||||
|
; Advanced options: extra scripting |
||||
|
; |
||||
|
; Please visit documentation for the other options and examples |
||||
|
; https://docs.platformio.org/page/projectconf.html |
||||
|
|
||||
|
[env:esp32dev] |
||||
|
platform = espressif32 |
||||
|
board = esp32dev |
||||
|
framework = arduino |
||||
|
monitor_speed = 115200 |
||||
|
lib_deps = |
||||
|
bblanchon/ArduinoJson@^7.3.1 ;^-> ALT 94 (držím celou dobu alt a čísla stisknu na numericke klavesnici a pak pustím alt) |
@ -0,0 +1,76 @@ |
|||||
|
#include <Arduino.h> |
||||
|
#include <WiFi.h> |
||||
|
#include <HTTPClient.h> |
||||
|
#include <ArduinoJson.h> |
||||
|
|
||||
|
const char* ssid = "12XKM"; |
||||
|
const char* password = "ProsimTeNevim"; |
||||
|
|
||||
|
HTTPClient http; |
||||
|
const char* apiUrl = "https://icanhazdadjoke.com"; |
||||
|
const int fetchInterval = 15000; //1000ms=1s
|
||||
|
|
||||
|
void fetchAndPrintDadJoke() { |
||||
|
Serial.println("---Zacinam stahovat vtip---"); |
||||
|
|
||||
|
http.begin(apiUrl); |
||||
|
http.addHeader("Accept","application/json"); |
||||
|
http.addHeader("User-Agent","ESP32 student project for API testing"); |
||||
|
int httpCode = http.GET(); |
||||
|
|
||||
|
if(httpCode > 0) { |
||||
|
Serial.printf("Server odpověděl HTTP Kodem: %d\n",httpCode); |
||||
|
|
||||
|
if(httpCode == HTTP_CODE_OK) { |
||||
|
String payload = http.getString(); |
||||
|
JsonDocument doc; |
||||
|
DeserializationError error = deserializeJson(doc,payload); |
||||
|
if(error) { |
||||
|
Serial.print("Chyb pri parsovani JSONu:"); |
||||
|
Serial.println(error.c_str()); |
||||
|
} else { |
||||
|
const char* joke = doc["joke"]; |
||||
|
if(joke){ |
||||
|
Serial.println("-------JOKE-------"); |
||||
|
Serial.println(joke); |
||||
|
Serial.println("--------------"); |
||||
|
} else { |
||||
|
Serial.println("Chyba: klič 'joke' nenalezen JSON odpovědi"); |
||||
|
Serial.println("Prijaty JSON (pro kontrolu):"); |
||||
|
Serial.println(payload); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} else { |
||||
|
//třeba při 404 nebo 500
|
||||
|
Serial.printf("Server vratil chybny HTTP kod: %d\n", httpCode); |
||||
|
String errorPayload = http.getString(); |
||||
|
Serial.println("Telo chybove hlasky:"); |
||||
|
Serial.println(errorPayload); |
||||
|
} |
||||
|
|
||||
|
} else { |
||||
|
Serial.printf("CHYBA pri odesilani: %s\n",http.errorToString(httpCode).c_str()); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
void setup() { |
||||
|
Serial.begin(115200); |
||||
|
Serial.println("ESP32 Dad Joke Fetcher"); |
||||
|
Serial.print("Pripojovaní k Wifi:"); |
||||
|
Serial.println(ssid); |
||||
|
WiFi.begin(ssid,password); |
||||
|
while (WiFi.status() != WL_CONNECTED) { |
||||
|
Serial.print("."); |
||||
|
delay(300); |
||||
|
} |
||||
|
Serial.println("WiFi připojena"); |
||||
|
Serial.print("IP adresa:"); |
||||
|
Serial.println(WiFi.localIP()); |
||||
|
} |
||||
|
|
||||
|
void loop() { |
||||
|
fetchAndPrintDadJoke(); |
||||
|
Serial.println("\nCekam" + String(fetchInterval/1000)+ "vterin pred stazenim dalsiho vtipu..."); |
||||
|
delay(fetchInterval); |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
|
||||
|
This directory is intended for PlatformIO Test Runner and project tests. |
||||
|
|
||||
|
Unit Testing is a software testing method by which individual units of |
||||
|
source code, sets of one or more MCU program modules together with associated |
||||
|
control data, usage procedures, and operating procedures, are tested to |
||||
|
determine whether they are fit for use. Unit testing finds problems early |
||||
|
in the development cycle. |
||||
|
|
||||
|
More information about PlatformIO Unit Testing: |
||||
|
- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html |
Loading…
Reference in new issue