4K Dual-Lens Solar Pan/Tilt Security Camera, Tapo C675D Kit
(function (window, document) { var sendMessage = function () { window.parent.postMessage( JSON.stringify({ id: "product-overview-iframe", height: document.body.scrollHeight + 70, } ), "*", ); if ($(window).width() > 736) { $("[name=viewport]").attr("content", "width=1366"); } else { $("[name=viewport]").attr( "content", "width=device-width, initial-scale=1", ); } }; $(function () { sendMessage(); }); $(window).load(function () { setTimeout(function () { sendMessage(); }, 1000); }); $(window).on("resize", sendMessage); })(window, document); window.addEventListener( "message", function (e) { var data = JSON.parse(e.data); if (data.func == "iframeScroll") { window.iframeScrollTop = data.iframeScrollTop; window.iframeWindowHeight = data.iframeWindowHeight; $(window).trigger("scroll"); } }, false, ); #div_overview { font-size: 16px; font-weight: 400; color: #32343a; line-height: 1.6; } #div_overview .h2-box { display: none; background: #f0f2f8; } #div_overview .h2-box a { display: block; font-size: 1.125em; line-height: 1; padding: 0.833333333em 20px; color: inherit; text-decoration: none; } @media (max-width: 736px) { #div_overview .h2-box { display: block; } } Overview Ultra‑Wide View. Precision Zoom. Solar‑Powered 4K Dual-Lens Pan/Tilt Camera Tapo C675D KIT See Wide and Up Close and Never Miss a Thing Security That Sees the Whole Story Dual‑Lens 4K Clarity Every Angle Every Detail AI on Both Lenses Local & Cloud Storage Coverage That Closes the Gaps Ultra Wide‑Angle Lens 169° FOV Coverage Pan/Tilt Telephoto Lens 360° Tracking with Zoom Color Night Vision Tap & Track Zoom 24/7 Continuous Capture Red‑Blue Light & Sound Alarm For People Who Value Real Visibility • Spaces Deserving Better Coverage • Users Wanting Sharper Detail • Busy Users Wanting Faster Alerts Maintenance‑Free Power Built for any Condition The Big Picture and the Fine Details See the whole scene and the action in one device. Capture the Full Story in a Single Frame See more of your property at a glance. The ultra‑wide lens delivers expansive coverage with crisp clarity from corner to corner. 169° Ultra‑Wide FOV Stay Locked on the Action The telephoto pan/tilt zoom lens follows movement with remarkable accuracy, capturing crisp close‑up details like faces, license plates, and more. 360° Auto‑Tracking 5x Telephoto Zoom Multiple Perspectives in One Device Mount it where coverage matters most and monitor driveways, yards, and key entry points with greater flexibility—reducing blind spots without adding extra cameras. Fixed Lens Pan/Tilt Lens Camera 1 Pan/Tilt Lens Fixed Lens Camera 2 Camera 1 Double the View: Two areas at once. Backyard Side Yard Camera 2 Total Perspective: Context plus detail. Front Yard Key Monitoring Area Auto Zoom Tracking Instantly locks onto motion and zooms in with precision, capturing crystal‑clear 4K detail without manual control◇. Tap to Zoom In Tap anywhere in the scene to instantly zoom in and view sharp 4K close‑ups exactly where you want to focus. Synchronized Smart Tracking Dual‑lens synchronized tracking keeps both views actively following movement, maintaining full‑scene context and detailed close‑ups at the same time. See Every Detail in True 4K Clarity Dual 4K lenses capture every detail with exceptional clarity. From wide scenes to close‑up moments, everything is recorded in true 4K resolution. Sharp, Vivid Color at Night Starlight Color Night Vision with built‑in spotlights for vivid nighttime detail, plus IR mode for clear visbility in total darkness. 02:00 pm Day View 09:00 pm Starlight Color Night Vision 09:00 pm IR Vision *Actual camera footage 24/7 Continuous Capture Capture all activity day and night, not just when motion is detected‡ Farther Detection. Faster Alerts. No Missed Motion. When 24/7 monitoring is enabled, the extended 60 ft detection range and smarter motion sensing means quicker alerts and no missed activity. Built‑In Solar Power, Fully Wire‑Free Place your camera anywhere without needing an outlet. With just 90 minutes† of direct sunlight, the integrated solar panel supports daily operation, reducing the need for manual recharging. The built‑in battery ensures reliable performance even during cloudy days△. Subscription‑Free Detection on Every Lens AI Person Detection Our built-in AI in both lenses detect people instantly. Get accurate alerts and clear views the moment someone enters your space. AI Vehicle Detection From driveways to street views, Tapo 675D KIT identifies and alerts car activity all captured in 4K clarity. AI Pet Detection Tapo's AI distinguishes pets from people, so you'll get real‑time alerts whether your dog is in the yard or cat is near the door. Rapid Alerts. Instant Deterrence. When alarm mode is active, detected activity triggers red‑and‑blue flashing lights and a built‑in siren to deter intruders, while sending an instant notification to your phone. Reliable Protection in Any Weather IP65‑rated protection keeps Tapo C675D KIT performing in rain, dust, and extreme temperatures, providing steady, year‑round security without needing an outlet. Full Control in Tapo App Custom Activity Zones Custom Privacy Zones Smart Playback and Sharing Custom Activity Zones Select specific areas within the camera's view to monitor and receive alerts only when motion or events occur in those selected zones. Custom Activity Zones Custom Privacy Zones Smart Playback and Sharing Custom Privacy Zones Create privacy zones to block recording in specific parts of your camera's view. Keep personal spaces private for total peace of mind. Custom Activity Zones Custom Privacy Zones Smart Playback and Sharing Smart Playback & Sharing Quickly find, replay, and share important moments. Slide through the timeline or tap to download event clips, then share them instantly with family and friends. Full Control in Tapo App Custom Activity Zones Custom Privacy Zones Smart Play back & Sharing Custom Activity Zones Select specific areas within the camera's view to monitor and receive alerts only when motion or events occur in those selected zones. Custom Privacy Zones Create privacy zones to block recording in specific parts of your camera's view. Keep personal spaces private for total peace of mind. Smart Playback & Sharing Quickly find, replay, and share important moments. Slide through the timeline or tap to download event clips, then share them instantly with family and friends. const lightModesScroll = document.querySelector( "[data-light-modes-scroll]", ); const lightModesSticky = document.querySelector( "[data-light-modes-sticky]", ); const lightModesSlides = Array.from( document.querySelectorAll("[data-light-modes-slide]"), ); const mobileSwiperElement = document.querySelector( "[data-light-modes-mobile-swiper]", ); const mobilePaginationElement = document.querySelector( "[data-light-modes-mobile-pagination]", ); const mobileDots = Array.from( document.querySelectorAll("[data-light-modes-mobile-dot]"), ); const swiperSrc = "https://static.tp-link.com/assets/js/plugins/swiper-5.4.1/swiper.min.js"; let swiperInstance = null; let scrollListenerAdded = false; let ticking = false; let scrollLength = 0; const clamp = (value, min, max) => Math.min(max, Math.max(min, value)); const resetScrollHeight = () => { if (!lightModesScroll || !lightModesSticky) return; const slide = lightModesSticky.querySelector(".light-modes-slide"); const slideHeight = slide ? slide.getBoundingClientRect().height : 0; const stepCount = Math.max(lightModesSlides.length - 1, 1); scrollLength = slideHeight * stepCount; const baseHeight = lightModesSticky.offsetHeight; lightModesScroll.style.height = `${baseHeight + scrollLength}px`; }; const renderCrossFade = () => { if (!lightModesScroll || lightModesSlides.length === 0) return; const rect = lightModesScroll.getBoundingClientRect(); const maxScroll = scrollLength || 1; const scrolled = clamp(-rect.top, 0, maxScroll); const progress = clamp(scrolled / maxScroll, 0, 1); const total = lightModesSlides.length; const exact = progress * (total - 1); const index = Math.floor(exact); const t = exact - index; const overlap = 0.15; const fadeOutEnd = 0.5 + overlap / 2; const fadeInStart = 0.5 - overlap / 2; for (let k = 0; k < total; k += 1) { lightModesSlides[k].style.opacity = "0"; } const current = lightModesSlides[index]; const next = lightModesSlides[index + 1]; if (current) current.style.opacity = `${clamp((fadeOutEnd - t) / fadeOutEnd, 0, 1)}`; if (next) next.style.opacity = `${clamp((t - fadeInStart) / (1 - fadeInStart), 0, 1)}`; }; const handleScroll = () => { if (ticking) return; ticking = true; requestAnimationFrame(() => { renderCrossFade(); ticking = false; }); }; const addScrollListener = () => { if (scrollListenerAdded) return; window.addEventListener("scroll", handleScroll, { passive: true, }); scrollListenerAdded = true; }; const removeScrollListener = () => { if (!scrollListenerAdded) return; window.removeEventListener("scroll", handleScroll); scrollListenerAdded = false; }; const destroySwiper = () => { if (!swiperInstance) return; swiperInstance.destroy(true, true); swiperInstance = null; if (mobileSwiperElement) { mobileSwiperElement .querySelector(".swiper-wrapper") ?.removeAttribute("style"); mobileSwiperElement .querySelectorAll(".swiper-slide") .forEach((slide) => slide.removeAttribute("style")); } }; const ensureSwiper = () => new Promise((resolve) => { if (window.Swiper) { resolve(); return; } const existingScript = document.querySelector( "script[data-light-modes-swiper]", ); if (existingScript) { existingScript.addEventListener("load", () => resolve(), { once: true, }); return; } const script = document.createElement("script"); script.src = swiperSrc; script.defer = true; script.dataset.lightModesSwiper = "true"; script.onload = () => resolve(); document.head.appendChild(script); }); const initMobileSwiper = () => { if (!mobileSwiperElement || !window.Swiper) return; if (swiperInstance) return; swiperInstance = new Swiper(mobileSwiperElement, { loop: true, initialSlide: 0, slidesPerView: 1, }); const setActiveDot = (index) => { mobileDots.forEach((dot) => { const primary = Number( dot.getAttribute("data-light-modes-mobile-dot"), ); const alt = dot.getAttribute( "data-light-modes-mobile-dot-alt", ); const isActive = primary === index || (alt !== null && Number(alt) === index); dot.classList.toggle("is-active", isActive); }); console.log("Active slide index:", index); }; setActiveDot(swiperInstance.realIndex ?? 0); swiperInstance.on("slideChange", () => setActiveDot(swiperInstance.realIndex ?? 0), ); mobileDots.forEach((dot) => { dot.addEventListener("click", () => { const targetIndex = Number( dot.getAttribute("data-light-modes-mobile-dot"), ); if (!Number.isNaN(targetIndex)) { swiperInstance.slideToLoop(targetIndex); } }); }); }; const handleResize = async () => { const isMobile = window.innerWidth < 865; if (isMobile) { removeScrollListener(); destroySwiper(); await ensureSwiper(); initMobileSwiper(); return; } destroySwiper(); resetScrollHeight(); renderCrossFade(); addScrollListener(); }; const init = () => { handleResize(); window.addEventListener("resize", handleResize); window.addEventListener("load", () => { resetScrollHeight(); renderCrossFade(); }); }; if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } astro-island, astro-slot, astro-static-slot { display: contents; } (() => { var e = async (t) => { await ( await t() )(); }; (self.Astro || (self.Astro = {})).load = e; window.dispatchEvent(new Event("astro:load")); })(); (() => { var A = Object.defineProperty; var g = (i, o, a) => o in i ? A(i, o, { enumerable: !0, configurable: !0, writable: !0, value: a, }) : (i[o] = a); var d = (i, o, a) => g(i, typeof o != "symbol" ? o + "" : o, a); { let i = { 0: (t) => m(t), 1: (t) => a(t), 2: (t) => new RegExp(t), 3: (t) => new Date(t), 4: (t) => new Map(a(t)), 5: (t) => new Set(a(t)), 6: (t) => BigInt(t), 7: (t) => new URL(t), 8: (t) => new Uint8Array(t), 9: (t) => new Uint16Array(t), 10: (t) => new Uint32Array(t), 11: (t) => (1 / 0) * t, }, o = (t) => { let [l, e] = t; return l in i ? i[l](e) : void 0; }, a = (t) => t.map(o), m = (t) => typeof t != "object" || t === null ? t : Object.fromEntries( Object.entries(t).map(([l, e]) => [l, o(e)]), ); class y extends HTMLElement { constructor() { super(...arguments); d(this, "Component"); d(this, "hydrator"); d(this, "hydrate", async () => { var b; if (!this.hydrator || !this.isConnected) return; let e = (b = this.parentElement) == null ? void 0 : b.closest("astro-island[ssr]"); if (e) { e.addEventListener("astro:hydrate", this.hydrate, { once: !0, }); return; } let c = this.querySelectorAll("astro-slot"), n = {}, h = this.querySelectorAll( "template[data-astro-template]", ); for (let r of h) { let s = r.closest(this.tagName); s != null && s.isSameNode(this) && ((n[ r.getAttribute("data-astro-template") || "default" ] = r.innerHTML), r.remove()); } for (let r of c) { let s = r.closest(this.tagName); s != null && s.isSameNode(this) && (n[r.getAttribute("name") || "default"] = r.innerHTML); } let p; try { p = this.hasAttribute("props") ? m(JSON.parse(this.getAttribute("props"))) : {}; } catch (r) { let s = this.getAttribute("component-url") || "", v = this.getAttribute("component-export"); throw ( v && (s += ` (export ${v})`), console.error( `[hydrate] Error parsing props for component ${s}`, this.getAttribute("props"), r, ), r ); } let u; (await this.hydrator(this)(this.Component, p, n, { client: this.getAttribute("client"), }), this.removeAttribute("ssr"), this.dispatchEvent(new CustomEvent("astro:hydrate"))); }); d(this, "unmount", () => { this.isConnected || this.dispatchEvent(new CustomEvent("astro:unmount")); }); } disconnectedCallback() { (document.removeEventListener( "astro:after-swap", this.unmount, ), document.addEventListener( "astro:after-swap", this.unmount, { once: !0 }, )); } connectedCallback() { if ( !this.hasAttribute("await-children") || document.readyState === "interactive" || document.readyState === "complete" ) this.childrenConnectedCallback(); else { let e = () => { (document.removeEventListener( "DOMContentLoaded", e, ), c.disconnect(), this.childrenConnectedCallback()); }, c = new MutationObserver(() => { var n; ((n = this.lastChild) == null ? void 0 : n.nodeType) === Node.COMMENT_NODE && this.lastChild.nodeValue === "astro:end" && (this.lastChild.remove(), e()); }); (c.observe(this, { childList: !0 }), document.addEventListener("DOMContentLoaded", e)); } } async childrenConnectedCallback() { let e = this.getAttribute("before-hydration-url"); (e && (await import(e)), this.start()); } async start() { let e = JSON.parse(this.getAttribute("opts")), c = this.getAttribute("client"); if (Astro[c] === void 0) { window.addEventListener( `astro:${c}`, () => this.start(), { once: !0 }, ); return; } try { await Astro[c]( async () => { let n = this.getAttribute("renderer-url"), [h, { default: p }] = await Promise.all([ import(this.getAttribute("component-url")), n ? import(n) : () => () => {}, ]), u = this.getAttribute("component-export") || "default"; if (!u.includes(".")) this.Component = h[u]; else { this.Component = h; for (let f of u.split(".")) this.Component = this.Component[f]; } return ((this.hydrator = p), this.hydrate); }, e, this, ); } catch (n) { console.error( `[astro-island] Error hydrating ${this.getAttribute("component-url")}`, n, ); } } attributeChangedCallback() { this.hydrate(); } } (d(y, "observedAttributes", ["props"]), customElements.get("astro-island") || customElements.define("astro-island", y)); } })(); Secure Ways to Secure Your Footage Local MicroSD Storage Store footage directly on a microSD card up to 512GB§ (sold separately) for private and reliable access. No subscription or internet connection required. Tapo Care Cloud Storage Receive notifications with detection snapshots, encrypted protection, data backups, and up to 30 days of video history with Tapo Care cloud services (subscription required). Unified Video Management Tapo H500 and H200 (sold separately) offer a simple, centralized way to view and store clips from your entire Tapo camera network. Manage and review footage from all your devices in one place for easier security control. Local MicroSD Storage Store footage directly on a microSD card up to 512GB§ (sold separately) for private and reliable access. No subscription or internet connection required. Tapo Care Cloud Storage Unified Video Management Stay Connected, Clearly, and Seamlessly Two‑Way Audio Noise Reduction Hear and speak clearly through your Tapo camera with built‑in noise reduction. Whether you're greeting a visitor or calming your pet, every word comes through crisp and clear. Smart Integration Control your camera hands‑free with Alexa and Google Assistant. View live feeds, manage alerts, or automate routines. Dual‑band Wi‑Fi (2.4G/5GHz) Connect the camera to 5 GHz for faster speed or 2.4 GHz for longer range. Enjoy more stable connectivity for lag‑free Dual 4K live viewing. section.product-footnotes { background: #f7f8f8; display: grid; gap: 1rem; margin: 0 auto; padding: 20px 0; @media (width < 770px) { max-width: 640px; width: calc(100vw - 40px); } } section.product-footnotes .product-footnotes--container { margin: 0 auto; max-width: 87.5em; } section.product-footnotes .footnotes-text { display: grid; gap: clamp(0.5rem, 1.174rem + -0.87vw, 1rem); } section.product-footnotes .footnotes-text p { color: #808080; font-size: clamp(0.8rem, 0.565rem + 0.174vw, 0.75rem); line-height: clamp(1.2rem, 0.922rem + 1.391vw, 1.4rem); margin-bottom: 0; max-width: 100ch; } § microSD card purchased separately. Actual storage capacity depends on the size of the microSD card used. Subscribe for cloud storage at https://www.tapo.com/tapocare/ ‡ 24/7 Capture enables battery-powered cameras to take images at customizable intervals (such as every 1s, 5s, 10s, or up to 60s) even when no objects are detected, ensuring round-the-clock surveillance while conserving power. When an object is detected, the camera automatically switches to a standard recording mode, reducing missed events and false alerts. △ Up to 3 months on a single charge under standard usage conditions. based on TP-Link laboratory tests with 240s of use per day. Increased usage of 300s per day reduces battery to 80 days. Actual battery life may vary due to device settings, router specifications, usage, and environmental factors. † 90 minutes of sunlight time is based on standard environmental conditions (1000W/m2, 25°C, AM1.5) and specified working scenes (up to 100 events triggered per day). Actual required time of sunlight may vary. ◇ Auto Zoom requires updating to the latest Tapo app and device firmware.
More you might like
Related
4K Solar Dual‑Lens PTZ Camera
Related
Dual Lens Solar Camera 4K WiFi Outdoor
Related
Dual Lens Solar Camera 4K WiFi Outdoor
Related