Skip to content

Instantly share code, notes, and snippets.

@vansterdev
vansterdev / Build.cs
Created May 5, 2023 01:43
Unreal HTTP Listener
PublicDependencyModuleNames.AddRange(
new string[]
{
"HTTP",
"HTTPServer",
"Networking",
"Sockets",
"VaRest", // 我的專案是使用這個處理 Json
}
);
@vansterdev
vansterdev / HttpLauncher.h
Created May 5, 2023 01:45
Unreal HTTP Listener
#pragma once
#include "CoreMinimal.h"
#include "Sybsystems/GameInstanceSybsystem.h"
#include "HttpLauncher.generated.h"
UCLASS()
class API_NAME UHttpLauncher : public UGameInstanceSubsystem
{
GENERATED_BODY()
@vansterdev
vansterdev / HttpLauncher.cpp
Created May 5, 2023 01:46
Unreal HTTP Listener
#include "HttpLauncher.h"
TWeakObjectPtr<UHttpLauncher> UHttpLauncher::_instance == nullptr;
UHttpLauncher* UHttpLauncher::Instance() { return _instance.Get(); }
void UHttpLauncher::Initialize(FSubsystemCollectionBase& Collection)
{
_instance = this;
}
@vansterdev
vansterdev / HttpListener.h
Created May 5, 2023 01:46
Unreal HTTP Listener
#pragma once
#include "CoreMinimal.h"
#include "HttpServerRequest.h"
#include "HttpResultCallback.h"
#include "UHttpListener.generated.h"
UCLASS()
class API_NAME UHttpListener : public UObject
{
@vansterdev
vansterdev / HttpListener.cpp
Created May 5, 2023 01:47
Unreal HTTP Listener
#include "HttpPath.h"
#include "IHttpRouter.h"
#include "HttpServerHttpVersion.h"
#include "HttpServerModule.h"
#include "HttpServerResponse.h"
#include "Sockets.h"
#include "SocketSubsystem.h"
UHttpListener::UHttpListener()
{
@vansterdev
vansterdev / esp32.h
Created May 5, 2023 03:21
物聯網開發 設定
// WiFi Info
const char* WIFI_SSID = "YOUR_WIFI_SSID";
const char* WIFI_PASS = "YOUR_WIFI_PASSWORD";
// Device Info
const char* DEVICE_NAME = "YOUR_CUSTOM_DEVICE_ID_OR_NAME";
const int DEVICE_WIFI_CONNECT_TIME_OUT = 15;
// Firebase Info
const char FIREBASE_PRIVATE_KEY[] PROGMEM = "YOUR_PROJECT_PRIVATE_KEY";
@vansterdev
vansterdev / main.c
Created May 5, 2023 03:22
物聯網 WiFi 連線 function
#include <WiFi.h>
void connectToWiFi() {
// 設定 WiFi 模式
WiFi.mode(WIFI_STA);
// 設定名稱
WiFi.setHostname(DEVICE_NAME);
// Connect
WiFi.begin(WIFI_SSID, WIFI_PASS);
@vansterdev
vansterdev / main.c
Created May 5, 2023 03:23
定義連線伺服器 function
#include <Firebase_ESP_Client.h>
#include <addons/TokenHelper.h>
// Firebase Variable
FirebaseData data;
FirebaseConfig config;
FirebaseAuth auth;
void connectToServer() {
auth.user.email = "User email";
@vansterdev
vansterdev / main.c
Created May 5, 2023 03:23
定義上傳資料 function
void uploadData() {
// 設定 HTTP POST 參數
FirebaseJson payload;
payload.set("deviceId", DEVICE_NAME);
// 直接從腳位抓直帶入
payload.set("moisture", analogRead(A0);
if (Firebase.functions.callFunction(&data,
FIREBASE_ID,
FIREBASE_PROJECT_LOCATION,
@vansterdev
vansterdev / main.c
Created May 5, 2023 03:24
main function
bool taskCompleted = false;
void setup() {
Serial.begin(115200);
connectToWiFi();
connectToServer();
}
void loop() {
if (Firebase.ready() && !taskCompleted) {