{"id":3905,"date":"2026-03-31T15:30:00","date_gmt":"2026-03-31T15:30:00","guid":{"rendered":"https:\/\/pirhome.com\/?p=3905"},"modified":"2026-03-31T15:30:00","modified_gmt":"2026-03-31T15:30:00","slug":"pir-occupancy-counter-smart-office","status":"publish","type":"post","link":"https:\/\/www.pirhome.com\/?p=3905","title":{"rendered":"PIR-Based Occupancy Counter for Smart Office"},"content":{"rendered":"<h2>Project Overview<\/h2>\n<p>This project creates an occupancy counter that tracks how many people are in a room. Using two PIR sensors placed at a doorway, the system detects direction of movement (entry vs. exit) and maintains a count of current occupants. The count is displayed on an LCD and can be sent to a server for occupancy monitoring.<\/p>\n<p><strong>Difficulty:<\/strong> Intermediate<br \/>\n<strong>Estimated time:<\/strong> 3-4 hours<br \/>\n<strong>Estimated cost:<\/strong> $30-40<\/p>\n<h2>How It Works<\/h2>\n<p>Two PIR sensors are placed at the top and bottom of a doorway (or left and right). When a person passes through, the order in which the sensors trigger indicates direction:<\/p>\n<ul>\n<li>Sensor A then Sensor B = entry (count +1)<\/li>\n<li>Sensor B then Sensor A = exit (count -1)<\/li>\n<\/ul>\n<p>The system maintains a running count of people in the room, displayed on an LCD. An ESP32 can send occupancy data to a server or cloud platform.<\/p>\n<h2>Materials Needed<\/h2>\n<ul>\n<li><strong>Arduino Uno or ESP32<\/strong> (1)<\/li>\n<li><strong>HC-SR501 PIR sensors<\/strong> (2)<\/li>\n<li><strong>LCD display<\/strong> (16&#215;2 with I2C)<\/li>\n<li><strong>Push buttons<\/strong> (for resetting count)<\/li>\n<li><strong>LEDs<\/strong> (red and green for status)<\/li>\n<li><strong>Resistors<\/strong> (220\u03a9 for LEDs, 10k for buttons)<\/li>\n<li><strong>Jumper wires<\/strong><\/li>\n<li><strong>Power supply<\/strong> (5V 1A)<\/li>\n<li><strong>Project enclosure<\/strong><\/li>\n<\/ul>\n<h2>Circuit Diagram<\/h2>\n<h3>Connection Table<\/h3>\n<table border=\"1\">\n<thead>\n<tr>\n<th>Component<\/th>\n<th>Pin<\/th>\n<th>Arduino Pin<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Sensor A (Entry)<\/td>\n<td>VCC<\/td>\n<td>5V<\/td>\n<\/tr>\n<tr>\n<td>Sensor A (Entry)<\/td>\n<td>GND<\/td>\n<td>GND<\/td>\n<\/tr>\n<tr>\n<td>Sensor A (Entry)<\/td>\n<td>OUT<\/td>\n<td>Digital Pin 2<\/td>\n<\/tr>\n<tr>\n<td>Sensor B (Exit)<\/td>\n<td>VCC<\/td>\n<td>5V<\/td>\n<\/tr>\n<tr>\n<td>Sensor B (Exit)<\/td>\n<td>GND<\/td>\n<td>GND<\/td>\n<\/tr>\n<tr>\n<td>Sensor B (Exit)<\/td>\n<td>OUT<\/td>\n<td>Digital Pin 3<\/td>\n<\/tr>\n<tr>\n<td>LCD (I2C)<\/td>\n<td>VCC<\/td>\n<td>5V<\/td>\n<\/tr>\n<tr>\n<td>LCD (I2C)<\/td>\n<td>GND<\/td>\n<td>GND<\/td>\n<\/tr>\n<tr>\n<td>LCD (I2C)<\/td>\n<td>SDA<\/td>\n<td>A4 (SDA)<\/td>\n<\/tr>\n<tr>\n<td>LCD (I2C)<\/td>\n<td>SCL<\/td>\n<td>A5 (SCL)<\/td>\n<\/tr>\n<tr>\n<td>Reset Button<\/td>\n<td>One pin<\/td>\n<td>Digital Pin 4 (with 10k pull-up)<\/td>\n<\/tr>\n<tr>\n<td>Reset Button<\/td>\n<td>Other pin<\/td>\n<td>GND<\/td>\n<\/tr>\n<tr>\n<td>Green LED<\/td>\n<td>Anode<\/td>\n<td>Digital Pin 5 (through 220\u03a9)<\/td>\n<\/tr>\n<tr>\n<td>Green LED<\/td>\n<td>Cathode<\/td>\n<td>GND<\/td>\n<\/tr>\n<tr>\n<td>Red LED<\/td>\n<td>Anode<\/td>\n<td>Digital Pin 6 (through 220\u03a9)<\/td>\n<\/tr>\n<tr>\n<td>Red LED<\/td>\n<td>Cathode<\/td>\n<td>GND<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Arduino Code<\/h2>\n<pre><code>#include &lt;Wire.h&gt;\n#include &lt;LiquidCrystal_I2C.h&gt;\n\n\/\/ Pin definitions\nconst int sensorA = 2;  \/\/ Entry sensor (outside)\nconst int sensorB = 3;  \/\/ Exit sensor (inside)\nconst int resetButton = 4;\nconst int ledGreen = 5;\nconst int ledRed = 6;\n\n\/\/ LCD (16x2, I2C address 0x27)\nLiquidCrystal_I2C lcd(0x27, 16, 2);\n\n\/\/ Variables\nint occupancy = 0;\nbool sensorATriggered = false;\nbool sensorBTriggered = false;\nunsigned long sensorATime = 0;\nunsigned long sensorBTime = 0;\nunsigned long lastEventTime = 0;\nconst unsigned long eventWindow = 2000; \/\/ 2 seconds to pair triggers\nconst int maxOccupancy = 50; \/\/ Safety limit\n\nvoid setup() {\n  Serial.begin(9600);\n  \n  \/\/ Initialize pins\n  pinMode(sensorA, INPUT);\n  pinMode(sensorB, INPUT);\n  pinMode(resetButton, INPUT_PULLUP);\n  pinMode(ledGreen, OUTPUT);\n  pinMode(ledRed, OUTPUT);\n  \n  \/\/ Initialize LCD\n  lcd.init();\n  lcd.backlight();\n  lcd.setCursor(0, 0);\n  lcd.print(\"Occupancy Counter\");\n  lcd.setCursor(0, 1);\n  lcd.print(\"Initializing...\");\n  \n  Serial.println(\"Occupancy Counter Starting...\");\n  Serial.println(\"Waiting 60 seconds for sensor warm-up...\");\n  delay(60000);\n  \n  updateDisplay();\n  Serial.println(\"System Ready\");\n}\n\nvoid updateDisplay() {\n  lcd.clear();\n  lcd.setCursor(0, 0);\n  lcd.print(\"People in room:\");\n  lcd.setCursor(0, 1);\n  lcd.print(\"    \");\n  lcd.setCursor(5, 1);\n  lcd.print(occupancy);\n  \n  \/\/ Update LEDs\n  if (occupancy > 0) {\n    digitalWrite(ledGreen, HIGH);\n    digitalWrite(ledRed, LOW);\n  } else {\n    digitalWrite(ledGreen, LOW);\n    digitalWrite(ledRed, HIGH);\n  }\n  \n  Serial.print(\"Occupancy: \");\n  Serial.println(occupancy);\n}\n\nvoid processEntry() {\n  occupancy++;\n  if (occupancy > maxOccupancy) occupancy = maxOccupancy;\n  Serial.println(\"Entry detected (+1)\");\n  updateDisplay();\n}\n\nvoid processExit() {\n  occupancy--;\n  if (occupancy < 0) occupancy = 0;\n  Serial.println(\"Exit detected (-1)\");\n  updateDisplay();\n}\n\nvoid checkTriggers() {\n  unsigned long now = millis();\n  \n  \/\/ Check sensor A (entry)\n  if (digitalRead(sensorA) == HIGH &#038;&#038; !sensorATriggered) {\n    sensorATriggered = true;\n    sensorATime = now;\n    Serial.println(\"Sensor A triggered\");\n  }\n  \n  \/\/ Check sensor B (exit)\n  if (digitalRead(sensorB) == HIGH &#038;&#038; !sensorBTriggered) {\n    sensorBTriggered = true;\n    sensorBTime = now;\n    Serial.println(\"Sensor B triggered\");\n  }\n  \n  \/\/ Determine direction if both triggered within window\n  if (sensorATriggered &#038;&#038; sensorBTriggered) {\n    if (abs((long)(sensorATime - sensorBTime)) < eventWindow) {\n      if (sensorATime < sensorBTime) {\n        \/\/ A first, then B = entry\n        processEntry();\n      } else {\n        \/\/ B first, then A = exit\n        processExit();\n      }\n    }\n    \/\/ Reset trigger flags\n    sensorATriggered = false;\n    sensorBTriggered = false;\n  }\n  \n  \/\/ Timeout: clear single triggers after window\n  if (sensorATriggered &#038;&#038; (now - sensorATime > eventWindow)) {\n    sensorATriggered = false;\n    Serial.println(\"Sensor A timeout - ignored\");\n  }\n  if (sensorBTriggered && (now - sensorBTime > eventWindow)) {\n    sensorBTriggered = false;\n    Serial.println(\"Sensor B timeout - ignored\");\n  }\n}\n\nvoid loop() {\n  \/\/ Check reset button\n  if (digitalRead(resetButton) == LOW) {\n    delay(50);\n    if (digitalRead(resetButton) == LOW) {\n      occupancy = 0;\n      updateDisplay();\n      Serial.println(\"Occupancy reset to 0\");\n      while (digitalRead(resetButton) == LOW) {\n        delay(10);\n      }\n    }\n  }\n  \n  checkTriggers();\n  delay(50);\n}\n<\/code><\/pre>\n<h2>ESP32 Version with Wi-Fi Data Logging<\/h2>\n<p>For remote monitoring, use an ESP32 and send occupancy data to a server:<\/p>\n<pre><code>#include &lt;WiFi.h&gt;\n#include &lt;HTTPClient.h&gt;\n\nconst char* ssid = \"YourWiFiSSID\";\nconst char* password = \"YourWiFiPassword\";\nconst char* serverURL = \"http:\/\/yourserver.com\/api\/occupancy\";\n\nvoid sendOccupancyData() {\n  if (WiFi.status() == WL_CONNECTED) {\n    HTTPClient http;\n    http.begin(serverURL);\n    http.addHeader(\"Content-Type\", \"application\/json\");\n    String payload = \"{\\\"occupancy\\\":\" + String(occupancy) + \"}\";\n    int httpCode = http.POST(payload);\n    http.end();\n  }\n}\n\n\/\/ Call sendOccupancyData() after each occupancy change\n<\/code><\/pre>\n<h2>Installation Steps<\/h2>\n<ol>\n<li><strong>Position sensors:<\/strong> Mount one sensor on each side of the doorway at 1.5-2m height. Point them slightly downward and toward the doorway center. Ensure fields overlap.<\/li>\n<li><strong>Adjust sensor settings:<\/strong> Set both sensors to minimum hold time (5 seconds) and maximum sensitivity.<\/li>\n<li><strong>Connect circuit:<\/strong> Assemble on breadboard and test sensor pairing.<\/li>\n<li><strong>Upload code:<\/strong> Load code to Arduino and open Serial Monitor to debug.<\/li>\n<li><strong>Calibrate:<\/strong> Walk through doorway several times to verify direction detection is accurate.<\/li>\n<li><strong>Adjust event window:<\/strong> If people move quickly through the door, reduce <code>eventWindow<\/code>. If slowly, increase.<\/li>\n<li><strong>Final mounting:<\/strong> Secure sensors and enclosure, route wires neatly.<\/li>\n<\/ol>\n<h2>Calibration Tips<\/h2>\n<ul>\n<li><strong>Sensor spacing:<\/strong> Place sensors 30-50cm apart for clear direction detection.<\/li>\n<li><strong>Avoid overlapping fields:<\/strong> Ensure sensors trigger sequentially, not simultaneously.<\/li>\n<li><strong>Test with groups:<\/strong> People walking together may be counted as one; adjust sensitivity to detect individuals.<\/li>\n<li><strong>Test with children:<\/strong> Ensure sensors are positioned to detect children as well as adults.<\/li>\n<\/ul>\n<h2>Troubleshooting<\/h2>\n<ul>\n<li><strong>Direction detection inaccurate:<\/strong> Adjust sensor positions and event window. Ensure sensors are not triggered simultaneously.<\/li>\n<li><strong>Multiple counts for one person:<\/strong> Reduce sensor hold time to minimum. Add debouncing in code.<\/li>\n<li><strong>Missed counts:<\/strong> Increase sensor sensitivity. Ensure sensors cover the entire doorway width.<\/li>\n<li><strong>Count drifting over time:<\/strong> Implement periodic reset or add a confirmation mechanism (e.g., door contact sensor).<\/li>\n<li><strong>False triggers from pets:<\/strong> Use pet-immune lenses or mount sensors higher.<\/li>\n<\/ul>\n<h2>Project Extensions<\/h2>\n<ul>\n<li><strong>Door contact sensor:<\/strong> Add a magnetic reed switch to only count when the door is open, reducing false counts from motion near door.<\/li>\n<li><strong>Real-time clock:<\/strong> Log occupancy by time of day to analyze peak usage patterns.<\/li>\n<li><strong>Thermal printer:<\/strong> Add a thermal printer to print occupancy reports on demand.<\/li>\n<li><strong>Traffic light indicator:<\/strong> Add a traffic light outside the room to indicate occupancy status (green = available, red = full).<\/li>\n<li><strong>Email alerts:<\/strong> Send email when occupancy reaches maximum capacity.<\/li>\n<li><strong>Integration with reservation system:<\/strong> Connect to booking platform to show real-time room availability.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>This occupancy counter provides accurate, real-time room occupancy data. It&#8217;s ideal for meeting rooms, shared workspaces, and any area where capacity management is important. With Wi-Fi integration, occupancy data can be accessed remotely and used to optimize space utilization.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Project Overview This project creates an occupancy counter that tracks how many people are in a room. Using two PIR sensors placed at a doorway, the system detects direction of movement (entry vs. exit) and maintains a count of current occupants. The count is displayed on an LCD and can be sent to a server [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-3905","post","type-post","status-publish","format-standard","hentry","category-projects"],"blocksy_meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\r\n<title>PIR-Based Occupancy Counter for Smart Office - PIRHOME<\/title>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"http:\/\/www.pirhome.com\/?p=3905\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"PIR-Based Occupancy Counter for Smart Office - PIRHOME\" \/>\r\n<meta property=\"og:description\" content=\"Project Overview This project creates an occupancy counter that tracks how many people are in a room. Using two PIR sensors placed at a doorway, the system detects direction of movement (entry vs. exit) and maintains a count of current occupants. The count is displayed on an LCD and can be sent to a server [&hellip;]\" \/>\r\n<meta property=\"og:url\" content=\"http:\/\/www.pirhome.com\/?p=3905\" \/>\r\n<meta property=\"og:site_name\" content=\"PIRHOME\" \/>\r\n<meta property=\"article:published_time\" content=\"2026-03-31T15:30:00+00:00\" \/>\r\n<meta name=\"author\" content=\"nic@nicsky.com\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"nic@nicsky.com\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/?p=3905#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/?p=3905\"},\"author\":{\"name\":\"nic@nicsky.com\",\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/#\\\/schema\\\/person\\\/41049b5236f9c77c9314997d070db3e3\"},\"headline\":\"PIR-Based Occupancy Counter for Smart Office\",\"datePublished\":\"2026-03-31T15:30:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/?p=3905\"},\"wordCount\":658,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/#organization\"},\"articleSection\":[\"Projects\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/www.pirhome.com\\\/?p=3905#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/?p=3905\",\"url\":\"http:\\\/\\\/www.pirhome.com\\\/?p=3905\",\"name\":\"PIR-Based Occupancy Counter for Smart Office - PIRHOME\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/#website\"},\"datePublished\":\"2026-03-31T15:30:00+00:00\",\"breadcrumb\":{\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/?p=3905#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/www.pirhome.com\\\/?p=3905\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/?p=3905#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\\\/\\\/www.pirhome.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PIR-Based Occupancy Counter for Smart Office\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/#website\",\"url\":\"http:\\\/\\\/www.pirhome.com\\\/\",\"name\":\"PIRHOME\",\"description\":\"PIR &amp; Motion Sensor\",\"publisher\":{\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/www.pirhome.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/#organization\",\"name\":\"PIRHOME\",\"url\":\"http:\\\/\\\/www.pirhome.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.pirhome.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-\u5fae\u4fe1\u56fe\u7247_2026-02-19_222409_472.jpg\",\"contentUrl\":\"https:\\\/\\\/www.pirhome.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-\u5fae\u4fe1\u56fe\u7247_2026-02-19_222409_472.jpg\",\"width\":512,\"height\":512,\"caption\":\"PIRHOME\"},\"image\":{\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"http:\\\/\\\/www.pirhome.com\\\/#\\\/schema\\\/person\\\/41049b5236f9c77c9314997d070db3e3\",\"name\":\"nic@nicsky.com\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/271d4eaab48e299e4fce771a8c43c537be3ac77a3115cc7de802a6c8b692d971?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/271d4eaab48e299e4fce771a8c43c537be3ac77a3115cc7de802a6c8b692d971?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/271d4eaab48e299e4fce771a8c43c537be3ac77a3115cc7de802a6c8b692d971?s=96&d=mm&r=g\",\"caption\":\"nic@nicsky.com\"},\"sameAs\":[\"http:\\\/\\\/www.pirhome.com\"],\"url\":\"https:\\\/\\\/www.pirhome.com\\\/?author=1\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PIR-Based Occupancy Counter for Smart Office - PIRHOME","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.pirhome.com\/?p=3905","og_locale":"en_US","og_type":"article","og_title":"PIR-Based Occupancy Counter for Smart Office - PIRHOME","og_description":"Project Overview This project creates an occupancy counter that tracks how many people are in a room. Using two PIR sensors placed at a doorway, the system detects direction of movement (entry vs. exit) and maintains a count of current occupants. The count is displayed on an LCD and can be sent to a server [&hellip;]","og_url":"http:\/\/www.pirhome.com\/?p=3905","og_site_name":"PIRHOME","article_published_time":"2026-03-31T15:30:00+00:00","author":"nic@nicsky.com","twitter_card":"summary_large_image","twitter_misc":{"Written by":"nic@nicsky.com","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/www.pirhome.com\/?p=3905#article","isPartOf":{"@id":"http:\/\/www.pirhome.com\/?p=3905"},"author":{"name":"nic@nicsky.com","@id":"http:\/\/www.pirhome.com\/#\/schema\/person\/41049b5236f9c77c9314997d070db3e3"},"headline":"PIR-Based Occupancy Counter for Smart Office","datePublished":"2026-03-31T15:30:00+00:00","mainEntityOfPage":{"@id":"http:\/\/www.pirhome.com\/?p=3905"},"wordCount":658,"commentCount":0,"publisher":{"@id":"http:\/\/www.pirhome.com\/#organization"},"articleSection":["Projects"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/www.pirhome.com\/?p=3905#respond"]}]},{"@type":"WebPage","@id":"http:\/\/www.pirhome.com\/?p=3905","url":"http:\/\/www.pirhome.com\/?p=3905","name":"PIR-Based Occupancy Counter for Smart Office - PIRHOME","isPartOf":{"@id":"http:\/\/www.pirhome.com\/#website"},"datePublished":"2026-03-31T15:30:00+00:00","breadcrumb":{"@id":"http:\/\/www.pirhome.com\/?p=3905#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.pirhome.com\/?p=3905"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/www.pirhome.com\/?p=3905#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/www.pirhome.com\/"},{"@type":"ListItem","position":2,"name":"PIR-Based Occupancy Counter for Smart Office"}]},{"@type":"WebSite","@id":"http:\/\/www.pirhome.com\/#website","url":"http:\/\/www.pirhome.com\/","name":"PIRHOME","description":"PIR &amp; Motion Sensor","publisher":{"@id":"http:\/\/www.pirhome.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.pirhome.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/www.pirhome.com\/#organization","name":"PIRHOME","url":"http:\/\/www.pirhome.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/www.pirhome.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.pirhome.com\/wp-content\/uploads\/2026\/02\/cropped-\u5fae\u4fe1\u56fe\u7247_2026-02-19_222409_472.jpg","contentUrl":"https:\/\/www.pirhome.com\/wp-content\/uploads\/2026\/02\/cropped-\u5fae\u4fe1\u56fe\u7247_2026-02-19_222409_472.jpg","width":512,"height":512,"caption":"PIRHOME"},"image":{"@id":"http:\/\/www.pirhome.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"http:\/\/www.pirhome.com\/#\/schema\/person\/41049b5236f9c77c9314997d070db3e3","name":"nic@nicsky.com","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/271d4eaab48e299e4fce771a8c43c537be3ac77a3115cc7de802a6c8b692d971?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/271d4eaab48e299e4fce771a8c43c537be3ac77a3115cc7de802a6c8b692d971?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/271d4eaab48e299e4fce771a8c43c537be3ac77a3115cc7de802a6c8b692d971?s=96&d=mm&r=g","caption":"nic@nicsky.com"},"sameAs":["http:\/\/www.pirhome.com"],"url":"https:\/\/www.pirhome.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/www.pirhome.com\/index.php?rest_route=\/wp\/v2\/posts\/3905","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pirhome.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pirhome.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pirhome.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pirhome.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3905"}],"version-history":[{"count":1,"href":"https:\/\/www.pirhome.com\/index.php?rest_route=\/wp\/v2\/posts\/3905\/revisions"}],"predecessor-version":[{"id":4066,"href":"https:\/\/www.pirhome.com\/index.php?rest_route=\/wp\/v2\/posts\/3905\/revisions\/4066"}],"wp:attachment":[{"href":"https:\/\/www.pirhome.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3905"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pirhome.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3905"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pirhome.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}