From 264f9e43504bbbf535ed399307fcbb2462314476 Mon Sep 17 00:00:00 2001 From: Exp10 TEITB Date: Mon, 27 Oct 2025 01:52:43 +0530 Subject: [PATCH] =?UTF-8?q?Added=20IoT=20NodeMCU=20=E2=86=92=20ServiceNow?= =?UTF-8?q?=20REST=20integration=20snippet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../NodeMCU_IoT_Sensor.ino | 66 ++++++++++++++++++ .../IoT_NodeMCU_ServiceNow_REST/README.md | 56 +++++++++++++++ .../ServiceNow_REST_Endpoint.js | 14 ++++ .../c_cpp_properties.json | 23 ++++++ .../example_output.png | Bin 0 -> 23518 bytes 5 files changed, 159 insertions(+) create mode 100644 Integration/IoT_NodeMCU_ServiceNow_REST/NodeMCU_IoT_Sensor.ino create mode 100644 Integration/IoT_NodeMCU_ServiceNow_REST/README.md create mode 100644 Integration/IoT_NodeMCU_ServiceNow_REST/ServiceNow_REST_Endpoint.js create mode 100644 Integration/IoT_NodeMCU_ServiceNow_REST/c_cpp_properties.json create mode 100644 Integration/IoT_NodeMCU_ServiceNow_REST/example_output.png diff --git a/Integration/IoT_NodeMCU_ServiceNow_REST/NodeMCU_IoT_Sensor.ino b/Integration/IoT_NodeMCU_ServiceNow_REST/NodeMCU_IoT_Sensor.ino new file mode 100644 index 0000000000..19e654e030 --- /dev/null +++ b/Integration/IoT_NodeMCU_ServiceNow_REST/NodeMCU_IoT_Sensor.ino @@ -0,0 +1,66 @@ + +--- + +## ⚡ 2. NodeMCU_IoT_Sensor.ino + +```cpp +#include +#include +#include + +#define DHTPIN D4 // Pin connected to sensor +#define DHTTYPE DHT11 // DHT 11 sensor + +const char* ssid = "YOUR_WIFI_SSID"; +const char* password = "YOUR_WIFI_PASSWORD"; +const char* serverName = "https://YOUR_INSTANCE.service-now.com/api/x_iot/iotdeviceapi/data"; +const char* user = "YOUR_SERVICENOW_USER"; +const char* userPassword = "YOUR_SERVICENOW_PASSWORD"; + +DHT dht(DHTPIN, DHTTYPE); + +void setup() { + Serial.begin(115200); + WiFi.begin(ssid, password); + dht.begin(); + Serial.print("Connecting to WiFi"); + while (WiFi.status() != WL_CONNECTED) { + delay(1000); + Serial.print("."); + } + Serial.println("\nConnected!"); +} + +void loop() { + float temperature = dht.readTemperature(); + float humidity = dht.readHumidity(); + + if (isnan(temperature) || isnan(humidity)) { + Serial.println("Failed to read from DHT sensor!"); + return; + } + + if (WiFi.status() == WL_CONNECTED) { + HTTPClient http; + http.begin(serverName); + http.setAuthorization(user, userPassword); + http.addHeader("Content-Type", "application/json"); + + String payload = "{"; + payload += "\"device_id\":\"PARK01\","; + payload += "\"status\":\"occupied\","; + payload += "\"temperature\":" + String(temperature) + ","; + payload += "\"humidity\":" + String(humidity); + payload += "}"; + + int httpCode = http.POST(payload); + String response = http.getString(); + + Serial.println(httpCode); + Serial.println(response); + http.end(); + } else { + Serial.println("WiFi not connected"); + } + delay(10000); // send every 10 seconds +} diff --git a/Integration/IoT_NodeMCU_ServiceNow_REST/README.md b/Integration/IoT_NodeMCU_ServiceNow_REST/README.md new file mode 100644 index 0000000000..35ec3ad6cb --- /dev/null +++ b/Integration/IoT_NodeMCU_ServiceNow_REST/README.md @@ -0,0 +1,56 @@ +# IoT NodeMCU → ServiceNow REST Integration + +## Overview +This snippet demonstrates how to send real-time sensor data (e.g., parking slot status, temperature, or humidity) from a **NodeMCU (ESP8266)** board to a **ServiceNow instance** using the REST API. +It shows how edge IoT devices can log events directly into ServiceNow tables such as `x_iot_device_data` or `incident`. + + + +## Components +- NodeMCU (ESP8266) +- DHT11 Temperature/Humidity sensor (or IR/Ultrasonic sensor) +- Wi-Fi connection +- ServiceNow instance with Scripted REST API enabled + + + +## NodeMCU Script (`NodeMCU_IoT_Sensor.ino`) +Connects to Wi-Fi, reads sensor data, and sends JSON payload to ServiceNow REST endpoint. + + + +## ServiceNow Scripted REST API (`ServiceNow_REST_Endpoint.js`) +Receives JSON payload and inserts into the `x_iot_device_data` table. + + + +## How to Use +1. **ServiceNow Setup** + - Navigate to **System Web Services → Scripted REST APIs** + - Create a new API called `IoTDeviceAPI` + - Add a resource `/data` + - Paste code from `ServiceNow_REST_Endpoint.js` + - Test via Postman + +2. **NodeMCU Setup** + - Update Wi-Fi credentials: `ssid` and `password` + - Update ServiceNow endpoint URL, username, and password + - Flash code using Arduino IDE + - Open Serial Monitor to verify successful data push + +3. **Verify in ServiceNow** + - Check `x_iot_device_data` table for new records + - Optional: create Flow Designer flow for automation + +## Example Output + +```json +{ + "device_id": "PARK01", + "status": "occupied", + "temperature": 28, + "humidity": 60, + "timestamp": "2025-10-27T14:23:05Z" +} + + diff --git a/Integration/IoT_NodeMCU_ServiceNow_REST/ServiceNow_REST_Endpoint.js b/Integration/IoT_NodeMCU_ServiceNow_REST/ServiceNow_REST_Endpoint.js new file mode 100644 index 0000000000..96094ff82a --- /dev/null +++ b/Integration/IoT_NodeMCU_ServiceNow_REST/ServiceNow_REST_Endpoint.js @@ -0,0 +1,14 @@ +(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) { + var body = JSON.parse(request.body.data); + + var rec = new GlideRecord('x_iot_device_data'); + rec.initialize(); + rec.device_id = body.device_id; + rec.status = body.status; + rec.temperature = body.temperature; + rec.humidity = body.humidity; + rec.timestamp = new GlideDateTime(); + rec.insert(); + + return { message: 'Data inserted successfully' }; +})(request, response); diff --git a/Integration/IoT_NodeMCU_ServiceNow_REST/c_cpp_properties.json b/Integration/IoT_NodeMCU_ServiceNow_REST/c_cpp_properties.json new file mode 100644 index 0000000000..38ef4829ee --- /dev/null +++ b/Integration/IoT_NodeMCU_ServiceNow_REST/c_cpp_properties.json @@ -0,0 +1,23 @@ +{ + "configurations": [ + { + "name": "Win32", + "includePath": [ + "${workspaceFolder}/**", + "C:/Users/ameet/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/*/cores/esp8266", + "C:/Users/ameet/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/*/libraries/**", + "C:/Users/ameet/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/*/tools/sdk/include", + "C:/Users/ameet/Documents/Arduino/libraries/**" + ], + "defines": [ + "ARDUINO=10819", + "ESP8266" + ], + "compilerPath": "C:/Users/ameet/AppData/Local/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/*/bin/xtensa-lx106-elf-g++.exe", + "cStandard": "c11", + "cppStandard": "c++17", + "intelliSenseMode": "gcc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/Integration/IoT_NodeMCU_ServiceNow_REST/example_output.png b/Integration/IoT_NodeMCU_ServiceNow_REST/example_output.png new file mode 100644 index 0000000000000000000000000000000000000000..896063ab6bdcb1580a4ab375eeddc619549e51e3 GIT binary patch literal 23518 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 XMP?_tad)66_c47P<2z-y>?8jJ9BhHD literal 0 HcmV?d00001