Orion IoT Code Repository
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

130 lines
3.5 KiB

#include <ESP8266WiFi.h>
#include <WiFiServerSecureBearSSL.h>
#include <CertStoreBearSSL.h>
#include <ESP8266WiFiScan.h>
#include <WiFiClient.h>
#include <BearSSLHelpers.h>
#include <WiFiClientSecureAxTLS.h>
#include <WiFiServerSecure.h>
#include <WiFiClientSecureBearSSL.h>
#include <WiFiUdp.h>
#include <ESP8266WiFiGeneric.h>
#include <WiFiServerSecureAxTLS.h>
#include <ESP8266mDNS.h>
#include <ESP8266WebServer.h>
#include <ESP8266WiFiGratuitous.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WiFiAP.h>
#include <WiFiClientSecure.h>
#include <ESP8266WiFiType.h>
#include <ESP8266WiFiSTA.h>
#include <WiFiServer.h>
#include <ESP8266HTTPClient.h>
#define BLUE_LED_PIN 12
#define RED_LED_PIN 13
#define GREEN_LED_PIN 14
const char* ssid = "****";
const char* password = "****";
uint8_t serverStatusState = 0;
ESP8266WebServer server(80);
void _serverInitFailedBlinking();
void _handleRequest();
void __notFoundHandler();
void _initController();
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
/* Initiate pin mode */
pinMode(BLUE_LED_PIN, OUTPUT);
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(RED_LED_PIN, OUTPUT);
/* Starting initial led start up */
delay(700);
digitalWrite(GREEN_LED_PIN, HIGH);
delay(700);
digitalWrite(GREEN_LED_PIN, LOW);
delay(700);
digitalWrite(BLUE_LED_PIN, HIGH);
delay(700);
digitalWrite(BLUE_LED_PIN, LOW);
delay(700);
digitalWrite(RED_LED_PIN, HIGH);
delay(700);
digitalWrite(RED_LED_PIN, LOW);
delay(1000);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting...");
}
Serial.println("Connected with local IP address as: ");
Serial.println(WiFi.localIP());
if ( MDNS.begin("esp8266") ) {
_initController();
server.begin();
Serial.println("Server Started...");
} else {
_serverInitFailedBlinking();
Serial.println("mDNS responder failed to start. Please re-start the esp8266");
}
}
void loop() {
if ( WiFi.status() == WL_CONNECTED ) {
digitalWrite(GREEN_LED_PIN, HIGH);
} else {
digitalWrite(GREEN_LED_PIN, LOW);
}
server.handleClient();
}
void _serverInitFailedBlinking() {
/*
RED LIGHT BLINKING FOR 3 TIMES MEANS THE SERVER START UP HAS BEEN FAILED.
THE BEST THING YOU CAN DO IS RESTART THE ESP8266
*/
digitalWrite(RED_LED_PIN, HIGH);
delay(400);
digitalWrite(RED_LED_PIN, LOW);
delay(400);
digitalWrite(RED_LED_PIN, HIGH);
delay(400);
digitalWrite(RED_LED_PIN, LOW);
delay(400);
digitalWrite(RED_LED_PIN, HIGH);
delay(400);
digitalWrite(RED_LED_PIN, LOW);
}
void _handleRequest() {
digitalWrite(BLUE_LED_PIN, HIGH);
server.send(200, "application/json", "{\"status\": true, \"message\": \"This sensor is on development progress. Please wait for the initial launch.\"}");
digitalWrite(BLUE_LED_PIN, LOW);
}
void _notFoundHandler() {
digitalWrite(RED_LED_PIN, HIGH);
server.send(404, "application/json", "{\"status\": true, \"message\": \"This sensor is on development progress. Please wait for the initial launch.\"}");
digitalWrite(RED_LED_PIN, LOW);
}
void _initController() {
server.on("/", HTTP_GET, []() {
digitalWrite(BLUE_LED_PIN, HIGH);
server.send(200, "application/json", "{\"status\": true, \"message\": \"Hello from ORION CONTROLLER\"}");
digitalWrite(BLUE_LED_PIN, LOW);
});
server.on("/get-dht-sensor-value", HTTP_POST, _handleRequest);
server.onNotFound(_notFoundHandler);
}