#include //#include #include //#include #include #include #include /* //define the pins for wemos #define ss 15 //15 #define rst 5//16 #define dio0 4//2 */ //define pins for esp8266 my board #define ss 4//5 #define rst 16 #define dio0 5//4 #define pixpin 10 //esp board gpio10 Adafruit_NeoPixel pixel = Adafruit_NeoPixel(1, pixpin, NEO_GRB + NEO_KHZ800); int counter = 0; // Replace with your network credentials (STATION) const char* ssid = "pinky"; const char* password = "1234"; typedef struct struct_message { int red; int green; int blue; int node; int timer; } struct_message; struct_message myMessage; ESP8266WebServer server(80); const char index_html[] PROGMEM = R"rawliteral( Pink-to-matic Pager

Pink-to-matic Pager

Timer :

Red :

Green :

Blue :

)rawliteral"; void LoraSendPacket() { // debug //Serial.println("send LoRa message"); pixel.setPixelColor(0, myMessage.red, myMessage.green, myMessage.blue); pixel.show(); LoRa.beginPacket(); yield(); LoRa.write(myMessage.red); LoRa.write(myMessage.green); LoRa.write(myMessage.blue); LoRa.write(myMessage.node); LoRa.write(myMessage.timer); LoRa.write(counter); LoRa.endPacket(); // debug //Serial.println("end LoRa message"); pixel.clear(); pixel.show(); } void setup() { myMessage.red = random(0, 254); myMessage.green = random(0, 254); myMessage.blue = random(0, 254); // Initialize Serial Monitor Serial.begin(115200); pixel.begin(); // INITIALIZE NeoPixel strip object (REQUIRED) pixel.show(); // Turn OFF all pixels ASAP pixel.setBrightness(50); // Set BRIGHTNESS to about 1/5 (max = 255) // Set the device as a Station and Soft Access Point simultaneously WiFi.mode(WIFI_AP_STA); WiFi.softAP(ssid); IPAddress IP = WiFi.softAPIP(); Serial.print("AP IP address: "); Serial.println(IP); LoRa.setPins(ss, rst, dio0); // debug //Serial.println("start LoRa Sender"); if (!LoRa.begin(866E6)) { Serial.println("Starting LoRa failed!"); while (1); } // Change sync word (0xF3) to match the receiver // The sync word assures you don't get LoRa messages from other LoRa transceivers // ranges from 0-0xFF LoRa.setSyncWord(0xF3); // debug // Serial.println("LoRa Initializing OK!"); server.on("/", HTTP_GET, handleRoot); // Call the 'handleRoot' function when a client requests URI "/" server.on("/dat", HTTP_GET, handleData); // Call the 'handleData' function when a GET request is made to URI "/dat" server.onNotFound(handleNotFound); server.begin(); } void loop() { server.handleClient(); static unsigned long lastEventTime = millis(); static const unsigned long EVENT_INTERVAL_MS = 5000; if ((millis() - lastEventTime) > EVENT_INTERVAL_MS) { //events.send("ping", NULL, millis()); lastEventTime = millis(); } } void handleRoot() { server.send(200, "text/html", index_html); // debug // Serial.println("server show index"); } void handleData() { String inputMessage = "No message sent"; String inputParam = "none"; // debug //Serial.println("server handle data "); if (server.arg("r")) { inputMessage = server.arg("r"); myMessage.red = inputMessage.toInt(); } if (server.arg("g")) { inputMessage = server.arg("g"); myMessage.green = inputMessage.toInt(); } if (server.arg("b")) { inputMessage = server.arg("b"); myMessage.blue = inputMessage.toInt(); } if (server.arg("n")) { inputMessage = server.arg("n"); myMessage.node = inputMessage.toInt(); } if (server.arg("t")) { inputMessage = server.arg("t"); myMessage.timer = inputMessage.toInt(); } // debug //Serial.print("inputMessage = "); // debug // Serial.println(inputMessage); LoraSendPacket(); server.send(200, "text/html", index_html); } void handleNotFound() { server.send(404, "text/plain", "404: Not found"); // Send HTTP status 404 (Not Found) when there's no handler for the URI in the request }