Mục lục:

Hộp thư được kết nối chạy bằng năng lượng mặt trời: 12 bước (có hình ảnh)
Hộp thư được kết nối chạy bằng năng lượng mặt trời: 12 bước (có hình ảnh)

Video: Hộp thư được kết nối chạy bằng năng lượng mặt trời: 12 bước (có hình ảnh)

Video: Hộp thư được kết nối chạy bằng năng lượng mặt trời: 12 bước (có hình ảnh)
Video: Hướng dẫn tự lắp đặt điện năng lượng độc lập tại nhà đơn giản - chi phí cực rẻ 2024, Tháng mười một
Anonim
Hộp thư được kết nối chạy bằng năng lượng mặt trời
Hộp thư được kết nối chạy bằng năng lượng mặt trời
Hộp thư được kết nối chạy bằng năng lượng mặt trời
Hộp thư được kết nối chạy bằng năng lượng mặt trời

Đối với Ible thứ hai của tôi, tôi sẽ mô tả cho bạn các tác phẩm của tôi về hộp thư được kết nối của tôi.

Sau khi đọc cuốn sách Có thể hướng dẫn này (+ nhiều cuốn khác), và vì hộp thư của tôi không ở gần nhà nên tôi muốn truyền cảm hứng cho tôi về các tác phẩm của Open Green Energy để kết nối hộp thư với máy chủ Domoticz của tôi.

Bàn thắng

  • Được Telegram thông báo khi có thư;
  • Được Telegram thông báo khi có bưu kiện;
  • Kiểm tra xem thư / bưu kiện đã được nhận chưa.

Hạn chế chính của tôi

Hộp thư cách nhà tương đối xa, và không thể kéo dây cáp điện lên đó để cung cấp điện cho bất cứ thứ gì.

Tôi đã phải tìm một giải pháp khác: năng lượng mặt trời là một giải pháp tốt!

BQT

  • Raspberry Pi (để lưu trữ các phần MQTT và Domoticz - không được đăng ở đây)
  • Một tài khoản Telegram Bot
  • Lolin D1 mini (hoặc Wemos…)
  • Đầu nối khối thiết bị đầu cuối trục vít plug-in
  • Bảng sạc pin Lithium TP4056
  • Bảng điều khiển năng lượng mặt trời quang điện 6V 2W
  • Pin Li-Ion 18650
  • Giá đỡ pin Li-Ion
  • PCB DIY hàn đồng nguyên mẫu Bảng mạch in
  • Analog Servo SG90
  • 3 công tắc Reed (một cho thư, một cho bưu kiện và một cho thanh toán)
  • Nam châm
  • Một số dây
  • Thùng gỗ: Vì không có bất kỳ máy in 3D nào, tôi nhận ra ngôi nhà nhỏ của mình bằng gỗ để thu các bộ phận điện tử…
  • Cáp Ethernet dự phòng
  • Bảng đột phá kết nối Ethernet RJ45

  • J-B Weld
  • Một số ổ bi
  • Vít, đai ốc, vòng đệm

Bước 1: Kế hoạch toàn cầu

Đề án toàn cầu
Đề án toàn cầu
Đề án toàn cầu
Đề án toàn cầu

Bài vẽ đẹp bao giờ cũng tốt hơn bài diễn văn dài;-)

Nhưng một số giải thích về MQTT, Domoticz và Telegram luôn được hoan nghênh!

MQTT (Message Queueing Telemetry Transport), là một giao thức nhắn tin, được sử dụng để gửi dữ liệu giữa các thiết bị và các hệ thống khác trong thế giới IoT (Internet vạn vật).

Không đi vào quá nhiều chi tiết, hoạt động của nó dựa trên nguyên tắc các máy khách kết nối với một máy chủ. Trong MQTT, máy khách được gọi là Người đăng ký hoặc Nhà xuất bản và máy chủ được gọi là Người môi giới.

Trong phần Có thể hướng dẫn này, tôi chỉ sử dụng một nhà xuất bản, Lolin có dây đến hộp thư của tôi: khi thư hoặc bưu kiện được phát hiện thông qua các địa chỉ liên hệ sậy được cài đặt trong hộp thư (Bước 1 trong shematic), nó sẽ gửi tin nhắn MQTT qua WIFI đến Nhà môi giới (Bước 2).

Phần Broker được thực hiện bởi Mosquitto, được cài đặt trên Raspberry Pi (Bước 3).

Về Domoticz:

Như được mô tả trên trang nguồn, Domoticz là một "hệ thống tự động hóa tại nhà", cho phép bạn điều khiển các thiết bị khác nhau và nhận đầu vào từ các giao thức khác nhau: MQTT là một trong những giao thức được hỗ trợ…

Ngay sau khi thông tin đến được với anh ta (Bước 4), bạn có thể xác định các sự kiện: Trong trường hợp hộp thư, tôi đã chọn gửi thông báo Telegram (Bước 5).

Cuối cùng, ứng dụng Telegram được định cấu hình trên điện thoại của tôi (và cả vợ tôi nữa! - Bước 6): mục tiêu cuối cùng đã đạt được…

Bước 2: Shematic / đấu dây

Shematic / Hệ thống dây điện
Shematic / Hệ thống dây điện
Shematic / Hệ thống dây điện
Shematic / Hệ thống dây điện
Shematic / Hệ thống dây điện
Shematic / Hệ thống dây điện
Shematic / Hệ thống dây điện
Shematic / Hệ thống dây điện

Một từ về tương tự được đọc:

Trước hết, tôi nhận thấy sau một số nghiên cứu rằng Lolin mini D1 (như Wemos cũ), đã xây dựng bộ chia điện áp cho chân A0 (xem xét 220KΩ cho R1 và 100KΩ cho R2 - xem ở bên phải của biểu dữ liệu được liên kết), cho phép 3,2 Volts như điện áp đầu vào tương tự tối đa.

Xem xét điện áp đầu ra tối đa từ pin là 4, 2v (giới hạn bởi bảng sạc) và về mặt lý thuyết, bạn chỉ cần thêm một bộ thay thế bên ngoài (nối tiếp với R1) để tăng phạm vi điện áp đầu vào tối đa. Sau đó, nếu bạn thêm 100K nối tiếp với R1, bạn sẽ có kết quả sau:

Vin * R1 / (R1 + R2) = Vout

4, 2 * 320 nghìn / (320 nghìn + 100 nghìn) = 3, 2

Trong mạch của tôi, tôi đã chọn có thể điều chỉnh giá trị của nó, đó là lý do tại sao tôi thích sử dụng một điện trở có thể điều chỉnh trong mạch của mình: có thể nó sẽ vô dụng đối với bạn, nhưng trong tình huống của tôi, tôi đặt giá trị của nó thành khoảng 10KΩ để có một giá trị nhất quán trong Domoticz…

Lưu ý rằng chân A0 có độ phân giải 10 bit: điều này có nghĩa là trong bản phác thảo của bạn, việc đọc tương tự của bạn sẽ trả về giá trị từ 0 đến 1024.

Vì tôi muốn gửi một giá trị phần trăm đến Domoticz, tôi phải chia kết quả đọc tương tự cho 10, 24.

Bước 3: Quản lý năng lượng

Quản lý năng lượng
Quản lý năng lượng
Quản lý năng lượng
Quản lý năng lượng

Tất nhiên, tôi muốn hộp thư tự trị. Để đạt được mục tiêu của mình, tôi sử dụng các yếu tố sau:

  • pin Li-Ion 18650 4000mAh;
  • bảng điều khiển năng lượng mặt trời wich có thể cung cấp 6V / 2W;
  • một bảng sạc Pin Lithium TP4056.

Để chọn bảng điều khiển năng lượng mặt trời phù hợp nhất, tôi đã xem xét một số ví dụ, bao gồm ví dụ này: trong ví dụ này, bảng điều khiển năng lượng mặt trời 5,5V / 0,66W được sử dụng và có lẽ là đủ cho mục đích này. Trong trường hợp của tôi, và vì ESP8266 phải BẬT vào ban ngày và phải có thể chạy động cơ servo để giữ cho ngôi nhà luôn hướng ra ánh nắng mặt trời, tôi đã chọn một mô hình bảng điều khiển năng lượng mặt trời mạnh mẽ hơn (6V / 2W) - Nó cũng cho phép tôi dự đoán thời kỳ mùa đông đen tối và những ngày nhiều mây;-)

Ngoài ra, và để giảm tiêu thụ năng lượng ở mức tối đa, tôi đã chọn các tình huống sau:

  • biết rằng người đưa thư chỉ qua từ 7 giờ sáng đến 8 giờ tối, ESP được đặt trong DeepSleep phần còn lại của đêm;
  • Yếu tố không vượt qua giữa trưa thứ Bảy và sáng thứ Hai: ESP cũng được đặt ở chế độ DeepSleep trong thời gian này.
  • Trong khoảng thời gian từ 7 giờ sáng đến 8 giờ tối và để giảm mức tiêu thụ điện năng, tôi chỉ cần tắt giao diện mạng của ESP: mạng chỉ được khởi động lại khi có bưu kiện hoặc thư, chỉ đủ thời gian để gửi thông tin đến Domoticz. Tôi không cần phải được cảnh báo ngay lập tức và vài giây bổ sung cần thiết để khởi động lại giao diện mạng không có hại!

Một số giá trị về mức tiêu thụ ở các chế độ khác nhau mà tôi sử dụng cho Lolin - hãy xem biểu dữ liệu, trang 18:

  • Ở chế độ bình thường (với RF làm việc), mức tiêu thụ điện năng có thể tăng lên 170mA! Vì hộp thư của tôi cách nhà tôi khoảng 50 mét (và ở mức giới hạn của tín hiệu WIFI…) nên tôi cho rằng nguồn điện được sử dụng để duy trì kết nối ở mức tối đa…
  • Trong chế độ ngủ Modem, mức tiêu thụ điện năng giảm xuống còn 15mA. Nhưng như bạn có thể thấy trong biểu dữ liệu, nó không dừng hoàn toàn modem, vì ESP đang "duy trì kết nối Wi-Fi không truyền dữ liệu".
  • Trong chế độ Ngủ sâu, công suất giảm xuống 20uA.

Để chắc chắn rằng wifi không vẫn hoạt động một cách không cần thiết, tôi muốn tắt nó bằng các lệnh sau. Lưu ý nhiều cuộc gọi delay ()… Nếu không có chúng, sự cố ESP:

WiFi.disconnect ();

chậm trễ (1000); WiFi.mode (WIFI_OFF); chậm trễ (1000); WiFi.forceSleepBegin (); trì hoãn (1);

Nhìn chung, sau vài ngày hoạt động, nó có vẻ hoạt động và đặc biệt là tải chính xác:

  • điều này cho phép tôi chạy động cơ servo mỗi giờ để định vị ngôi nhà hướng về phía mặt trời;
  • Tôi cũng có thể cho phép mình kích hoạt lại giao diện mạng mỗi giờ để gửi cho Domoticz mức sạc pin.

Bước 4: Cài đặt Danh bạ Nam châm và Tháp Mười

Cài đặt Danh bạ Nam châm và Tháp Mười
Cài đặt Danh bạ Nam châm và Tháp Mười
Cài đặt Danh bạ Nam châm và Tháp Mười
Cài đặt Danh bạ Nam châm và Tháp Mười
Cài đặt Danh bạ Nam châm và Tháp Mười
Cài đặt Danh bạ Nam châm và Tháp Mười

Như thường lệ, tôi sử dụng Proxxon của mình để tạo hình vị trí của cây Sậy trên một miếng gỗ.

Để sửa phần tiếp xúc sậy trong lỗ của nó, tôi đã sử dụng một chút mối hàn J-B.

Đối với bưu kiện và đầu ra, một mảnh băng nhỏ, một chút cưa sắt, và mục tiêu đã đạt được!

Ưu điểm của hộp thư của tôi là nó bằng kim loại, tạo điều kiện thuận lợi cho việc định vị nam châm để nó tương tác đúng với các điểm tiếp xúc lau sậy.

Bước 5: Kết nối với Ngôi nhà nhỏ của tôi

Kết nối với Ngôi nhà nhỏ của tôi
Kết nối với Ngôi nhà nhỏ của tôi
Kết nối với Ngôi nhà nhỏ của tôi
Kết nối với Ngôi nhà nhỏ của tôi

Để có thể dễ dàng kết nối và ngắt kết nối cáp đi đến các địa chỉ liên lạc bằng cây sậy từ hộp thư đến nhà, tôi đã chọn sử dụng đầu nối Ethernet.

Bạn có thể sử dụng mô hình này hoặc, giống như tôi, sử dụng một tấm chắn Arduino Ethernet cũ được treo trong ngăn kéo của tôi: Anh ấy không đau khổ, anh ấy dũng cảm trước lưỡi cưa, cái chết của anh ấy nhanh chóng ^^

Chỉ một lời về lá chắn Ethernet Arduino này: đừng mong đợi sẽ có 8 trình điều khiển riêng biệt… Cáp được ghép nối bởi 2 bên trong tấm chắn… Nó khiến tôi phát điên trong thời gian dài !!!

Bước 6: Trong nhà…

Ở trong nhà …
Ở trong nhà …
Ở trong nhà …
Ở trong nhà …

Chỉ đủ chỗ để cố định giá đỡ pin, đặt servo và đầu nối cái RJ45.

Bước 7: Để nó có thể xoay…

Hãy để nó có thể xoay…
Hãy để nó có thể xoay…
Hãy để nó có thể xoay…
Hãy để nó có thể xoay…
Hãy để nó có thể xoay…
Hãy để nó có thể xoay…
Hãy để nó có thể xoay…
Hãy để nó có thể xoay…

Mục tiêu là để nó tiếp xúc với ánh nắng mặt trời…

Để cho khả năng quay được, tôi đã sử dụng một vít dài làm trục, với một số đai ốc và hai ổ bi…

Cho đến bây giờ, tôi sử dụng servo SG90 (mô-men xoắn: 1,8kg / cm ở 4,8v).

Để biến ngôi nhà (và vài gam của nó) là đủ. Mặt khác, tôi không chắc rằng các bánh răng bằng nhựa của nó có chống được những cơn gió giật thường xuyên ở vùng của tôi trong một thời gian dài hay không.

Tôi đã đặt hàng một chiếc khác (mô-men xoắn MG995: 9,4kg / cm ở 4,8v), cũng không đắt lắm, nhưng với bánh răng kim loại.

Đó sẽ là điều tiếp theo phải làm khi tôi nhận được nó: Tôi dựa vào hộp thư được kết nối của mình để thông báo cho tôi về sự xuất hiện của anh ấy!

Bước 8: Một số thử nghiệm

Image
Image

Một số lưu ý:

Bản phác thảo này chỉ để mô phỏng các thay đổi của giờ trong ngày để cho phép tôi kiểm soát vị trí của servo.

  • Với SG90: không cần thêm nhu cầu, nó có thể hoạt động với điện áp OUT đến từ bộ điều khiển pin.
  • Nhưng, với MG 995:

    • Tổng góc quay không giống nhau (rộng hơn): Tôi đã phải sử dụng thêm một hàm để giảm nó (Servo_Delta ()).
    • Cần một bước DC / DC để cung cấp đủ điện áp cho servo… để được tiếp tục…

/*

- TEST với SG90: không cần thêm nhu cầu, nó có thể hoạt động với điện áp OUT đến từ bộ điều khiển pin - ĐỐI VỚI MG 995: - sử dụng chức năng Servo_Delta ()… - Cần DC / DC Step up để cung cấp đủ điện áp cho servo… để được tiếp tục: * / #include bool Logs = true; Servo myservo; #define PIN_SERVO D2 // vị trí servo cho: 7h, 8h, 9h, 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h, 18h, 19h, 20h, 21h // int Arr_Servo_Pos = {177, 173, 163, 148, 133, 118, 100, 80, 61, 41, 28, 15, 2, 2, 2}; int Arr_Servo_Pos = {180, 175, 165, 150, 135, 120, 102, 82, 63, 43, 30, 15, 0, 0, 0}; int cũ; int pos; int i; void setup () {Serial.begin (115200); } void loop () {for (i = 7; i <= 22; i ++) {old = i; if (i == 7) {if (Nhật ký) Serial.println ("Positionne le servo pour 7 Heure"); myservo.attach (PIN_SERVO); for (int index = Arr_Servo_Pos [(sizeof (Arr_Servo_Pos) / sizeof (Arr_Servo_Pos [0])) -1]; index 7 && i = Arr_Servo_Pos [i-7]; index -) {if (Logs) Serial.println (mục lục); if (Nhật ký) Serial.print ("Giá trị điều chỉnh:"); if (Nhật ký) Serial.println (Servo_Delta (chỉ mục)); chậm trễ (200); //myservo.write(Servo_Delta(index)); myservo.write (chỉ mục); } trễ (15); myservo.write (Arr_Servo_Pos [i-7]); // ghi lại giá trị cuối cùng để tránh chuyển động giật khi datach myservo.detach (); }}} delay (2000); }} int Servo_Delta (int value) {int Temp_val; Temp_val = (giá trị * 0,80) +9; trả về Temp_val; }

Bước 9: Ngôi nhà nhỏ

Ngôi nhà nhỏ
Ngôi nhà nhỏ
Ngôi nhà nhỏ
Ngôi nhà nhỏ
Ngôi nhà nhỏ
Ngôi nhà nhỏ

Như tôi đã nói trước đây, tôi không nhận được bất kỳ máy in 3D nào. Vì vậy, tôi quyết định sử dụng thùng rau cũ…

Có thể thời tiết sẽ không kéo dài, nhưng đến lúc đó, tôi sẽ có thời gian để xem xét một giải pháp khác (hoặc một người bạn sở hữu máy in 3D): để bảo vệ gỗ, tôi đã thêm rất nhiều vecni ở khắp mọi nơi…

Bạn có thể thấy "những chiếc rèm xinh xắn"… Đó là những gì sẽ xảy ra khi bạn nhờ vợ làm công việc đó ^^

Bước 10: Phác thảo

Đang tiến hành… Nhưng có vẻ là ổn định

Tôi vẫn đang làm việc trên mã: vì đây không phải là phiên bản chính thức nên chúng tôi hoan nghênh nhận xét / lời khuyên của bạn;-)

Một số nhận xét:

  • Chúng có nhiều độ trễ () trong mã: điều này là để tránh nhiều sự cố của Lolin, đặc biệt là trong khi dừng một mạng khởi động…
  • Tôi không tìm thấy cách dễ dàng và đáng tin cậy để lấy phương vị mặt trời: đó là lý do tại sao tôi cố định giá trị servo theo chức năng của những gì tôi quan sát được… Bạn có một cách hay (và đơn giản) để lấy nó, tôi quan tâm! theo dõi để nghiên cứu tại đây, ngay cả khi tôi thích API trực tuyến cung cấp cho tôi phương vị trực tiếp theo ngày, giờ và vị trí địa lý…
  • Về kỹ thuật ngủ: vì Lolin là Bộ xử lý Tensilica 32 bit, giá trị tối đa của nó cho một số nguyên 32 bit không dấu là 4294967295… sau đó, nó cung cấp khoảng 71 phút tối đa cho khoảng thời gian ngủ sâu. Đó là lý do tại sao tôi ngủ L'ESP nhiều lần trong khoảng 60 phút…

CHỈNH SỬA - 2018-10-08:

Tôi phát hiện ra servo có rất nhiều chuyển động giật, đặc biệt là trước khi tệp đính kèm (), tách () và mỗi khi Lolin thức dậy từ deepSleep ().

Trong khi nghiên cứu thêm một chút về bảng dữ liệu, tôi nhận ra hai điều:

  • Trên biểu dữ liệu Lolin, đầu ra D4 đã được kết nối với BUILTIN_LED…
  • Trên biểu dữ liệu ESP8266ex, chúng ta biết rằng đầu ra D4 được sử dụng làm UART 1 / U 1 TXD (Bộ phát bộ thu không đồng bộ đa năng). Nó cũng được chỉ định rằng UART1 này được sử dụng để in nhật ký.

Khi đọc những thông tin này, tôi nhận ra rằng đầu ra D4 không phải là một ý tưởng hay, đặc biệt là để quản lý động cơ servo!

Vì vậy, bây giờ đầu ra được sử dụng để điều khiển động cơ servo là D2, mã bên dưới đã được cập nhật cho phù hợp.

//****************************************

Ngày kết thúc: 08 / Ngày khổ sở: 08 / Phiên bản: 0.9.4 Phiên bản IDE Arduino: 1.8.6 Tốc độ tải lên: 921600 Loại de carte dans l'IDE: "LOLIN (WEMOS) D1 R2 & mini" Carte shape tuyển dụng: LOLIN (WEMOS) D1 R2 & mini (https://www.amazon.fr/gp/product/B01ELFAF1S/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1) Chức năng Pin ESP-8266 Pin Utilization locale ------- -------------------------------------------------- ------------------------------------ TXD TXD RX RXD RXD A0 Đầu vào tương tự, đầu vào tối đa 3.3V A0 Tension d'alimentaion D0 IO GPIO16 Connecté à RST (pour le deep.sleep) D1 IO, SCL GPIO5 D2 IO, SDA GPIO4 Servo moteur D3 IO, 10k kéo lên GPIO0 D4 IO, 10k kéo lên, BUILTIN_LED GPIO2 D5 IO, SCK GPIO14 Reed Relève D6 IO, MISO GPIO12 Reed lettre D7 IO, MOSI GPIO13 Reed colis D8 IO, 10k pull-down, SS GPIO15 G Ground GND 5V 5V - 3V3 3.3V 3.3V RST Reset RST Connecté à D0 (pour le deep.sleep) **************************************** / #include bool Logs = true; // wifi const char * ssid = "LOL"; const char * password = "LOL"; IPAddress ip (192, 168, 000, 000); IPAddress dns (192, 168, 000, 000); Cổng IPAddress (192, 168, 000, 000); Mạng con IPAddress (255, 255, 000, 000); Máy khách WiFiClient; // Servo #include #define PIN_SERVO D2 Servo myservo; // vị trí servo cho: 7h, 8h, 9h, 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h, 18h, 19h, 20h, 21h int Arr_Servo_Pos = {179, 175, 165, 150, 135, 120, 102, 82, 63, 43, 30, 15, 1, 1, 1}; // Reeds # xác định mã PIN_SWITCH_OUT D5 byte Old_Switch_State_OUT; byte Switch_State_OUT; # xác định mã PIN_SWITCH_IN_PARCEL D6 byte Cũ_Switch_State_IN_PARCEL; byte Switch_State_IN_PARCEL; # xác định mã PIN_SWITCH_IN_LETTER D7 byte Cũ_Switch_State_IN_LETTER; byte Switch_State_IN_LETTER; công tắc dài không dấuPressTime; const unsigned long DEBOUCE_TIME = 200; // Tương tự #define PIN_ANALOG A0 // MQTT #include const char * MQTT_Server_IP = "Địa chỉ MQTT của bạn"; const int MQTT_Server_Port =; int IDX_Letter_Box =; int IDX_Parcel_Box =; int IDX_Letter_Box_Battery =; PubSubClient ClientMQTT (máy khách); char MQTT_Message_Buff [70]; Chuỗi MQTT_Pub_String; // Tension float vcc; // NTP #include time_t tnow; int Old_Time = 0; int Int_Heures = 0; int Int_Minutes = 0; int Int_Sleep_Duration = 63; void setup () {Serial.begin (115200); mạng (đúng); pinMode (PIN_SWITCH_OUT, INPUT_PULLUP); Old_Switch_State_OUT = digitalRead (PIN_SWITCH_OUT); pinMode (PIN_SWITCH_IN_LETTER, INPUT_PULLUP); Old_Switch_State_IN_LETTER = digitalRead (PIN_SWITCH_IN_LETTER); pinMode (PIN_SWITCH_IN_PARCEL, INPUT_PULLUP); Old_Switch_State_IN_PARCEL = digitalRead (PIN_SWITCH_IN_PARCEL); SendBatteryLevel (); mạng (sai); // NTP set tnow = time (nullptr); Int_Heures = String (ctime (& tnow)). Chuỗi con (11, 13).toInt (); Int_Minutes = String (ctime (& tnow)). Chuỗi con (14, 16).toInt (); // Ngủ sâu cả đêm if (! ((Int_Heures> = 7) && (Int_Heures <= 20))) {Serial.print ("Sleep pour la nuit ("); Serial.print (Int_Sleep_Duration - Int_Minutes); Serial. println ("phút)"); giấc ngủ (Int_Sleep_Duration - Int_Minutes); }} void loop () {// NTP set tnow = time (nullptr); Int_Heures = String (ctime (& tnow)). Chuỗi con (11, 13).toInt (); Int_Minutes = String (ctime (& tnow)). Chuỗi con (14, 16).toInt (); //Serial.println(String(ctime(&tnow))); //Serial.println ("Heure:" + String (ctime (& tnow)). Substring (11, 13)); //Serial.println (String (ctime (& tnow)). Substring (11, 13).toInt ()); // Quản lý Servo if (Old_Time! = Int_Heures) {Old_Time = Int_Heures; if (Int_Heures == 7) {if (Nhật ký) Serial.println ("Positionne le servo pour 7 Heure"); myservo.attach (PIN_SERVO); for (int index = Arr_Servo_Pos [(sizeof (Arr_Servo_Pos) / sizeof (Arr_Servo_Pos [0])) -1]; index 7 && Int_Heures = Arr_Servo_Pos [Int_Heures-7]; index -) {if (Logs) Serial.println (mục lục); chậm trễ (200); myservo.write (chỉ mục); } trễ (15); myservo.write (Arr_Servo_Pos [Int_Heures-7]); // ghi lại giá trị cuối cùng để tránh chuyển động giật cục khi tách myservo.detach (); } mạng (true); SendBatteryLevel (); mạng (sai); }}} // Ngủ sâu nếu thứ bảy sau 13 giờ if ((String (ctime (& tnow)). Substring (0, 3) == "Sat") && (Int_Heures> = 13)) {if (Logs) Serial.print ("Sleep pour le samedi aprés midi ("); if (Logs) Serial.print (Int_Sleep_Duration - Int_Minutes); if (Nhật ký) Serial.println ("phút)"); giấc ngủ (Int_Sleep_Duration - Int_Minutes); } // Deepsleep if chủ nhật if (String (ctime (& tnow)). Substring (0, 3) == "Sun") {if (Logs) Serial.print ("Sleep pour le dimanche ("); if (Logs) Serial.print (Int_Sleep_Duration - Int_Minutes); if (Nhật ký) Serial.println ("phút)"); giấc ngủ (Int_Sleep_Duration - Int_Minutes); } // Quản lý tháp canh Switch_State_OUT = digitalRead (PIN_SWITCH_OUT); if (Switch_State_OUT! = Old_Switch_State_OUT) {if (millis () - switchPressTime> = DEBOUCE_TIME) {switchPressTime = millis (); if (Switch_State_OUT == HIGH) {Serial.println ("Courrier repeatvé!"); mạng (đúng); chậm trễ (5000); MQTT_Pubilsh (IDX_Letter_Box, 0, "0"); chậm trễ (5000); MQTT_Pubilsh (IDX_Parcel_Box, 0, "0"); chậm trễ (5000); mạng (sai); }} Old_Switch_State_OUT = Switch_State_OUT; } Switch_State_IN_LETTER = digitalRead (PIN_SWITCH_IN_LETTER); if (Switch_State_IN_LETTER! = Old_Switch_State_IN_LETTER) {if (millis () - switchPressTime> = DEBOUCE_TIME) {switchPressTime = millis (); if (Switch_State_IN_LETTER == HIGH) {Serial.println ("Courrier goingvé!"); mạng (đúng); chậm trễ (5000); MQTT_Pubilsh (IDX_Letter_Box, 1, "Tòa án"); chậm trễ (5000); mạng (sai); }} Old_Switch_State_IN_LETTER = Switch_State_IN_LETTER; } Switch_State_IN_PARCEL = digitalRead (PIN_SWITCH_IN_PARCEL); if (Switch_State_IN_PARCEL! = Old_Switch_State_IN_PARCEL) {if (millis () - switchPressTime> = DEBOUCE_TIME) {switchPressTime = millis (); if (Switch_State_IN_PARCEL == HIGH) {Serial.println ("colis comevé!"); mạng (đúng); chậm trễ (5000); MQTT_Pubilsh (IDX_Parcel_Box, 1, "Colis"); chậm trễ (5000); mạng (sai); }} Old_Switch_State_IN_PARCEL = Switch_State_IN_PARCEL; }} void SendBatteryLevel () {delay (5000); vcc = analogRead (PIN_ANALOG) /10.24; if (Nhật ký) Serial.println ("\ tTension seekvée:" + String (vcc, 0)); MQTT_Pubilsh (IDX_Letter_Box_Battery, 0, String (vcc, 0)); chậm trễ (5000); } void sleep (int Min_Duration) {ESP.deepSleep (Min_Duration * 60e6); } void network (bool UpDown) {if (UpDown) {Serial.print ("Khởi động mạng"); WiFi.forceSleepWake (); trì hoãn (1); // init WIFI WiFi.config (ip, dns, gateway, subnet); WiFi.begin (ssid, mật khẩu); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } delay (5000); Serial.println ("."); Serial.print ("\ tConnected - Địa chỉ IP:"); Serial.println (WiFi.localIP ()); // init MQTT ClientMQTT.setServer (MQTT_Server_IP, MQTT_Server_Port); // Init NTP Serial.print ("\ tTime Synch."); configTime (0, 0," fr.pool.ntp.org "); setenv (" TZ "," CET-1CEST, M3.5.0, M10.5.0 / 3 ", 0); while (time (nullptr) <= 100000) {Serial.print ("."); Delay (100);} Serial.println (".");} Else {Serial.println ("Mạng dừng."); WiFi.disconnect (); delay (1000); WiFi.mode (WIFI_OFF); delay (1000); WiFi.forceSleepBegin (); delay (1);}} void renect () {while (! ClientMQTT.connected ()) {Serial.print (" / tTìm kết nối MQTT… "); // Cố gắng kết nối if (ClientMQTT.connect (" ESP8266ClientBAL ")) {Serial.println (" đã kết nối ");} else {Serial.print (" fail, rc = "); Serial.print (ClientMQTT.state ()); Serial.println ("thử lại sau 5 giây"); // Chờ 5 giây trước khi thử lại độ trễ (5000);}}} void MQTT_Pubilsh (int Int_IDX, int N_Value, String S_Value) {if (! ClientMQTT.connected ()) renect (); vcc = analogRead (PIN_ANALOG) /10.24; Serial.println ("\ tGửi thông tin tới MQTT…"); MQTT_Pub_String = "{" idx / ":" + Chuỗi (Int_IDX) + ", \" Pin / ":" + Chuỗi (vcc, 0) + ", \" nvalue / ":" + N_Value + ", \" svalue / ": \" "+ S_Value +" / "}"; MQTT_Pub_String.toCharArray (MQTT_Message_Buff, MQTT_Pub_String.length () + 1); ClientMQTT.publish ("domoticz / in", MQTT_Message_Buff); ClientMQTT.disconnect (); }

Bước 11: Domoticz

Domoticz
Domoticz
Domoticz
Domoticz
Domoticz
Domoticz

Ở Domoticz:

Để sử dụng chung:

  • Tạo hai "Dummy (Không có gì, sử dụng cho công tắc ảo)":

    1. Đầu tiên cho các chữ cái…
    2. Thứ hai cho bưu kiện…
  • Đối với mỗi người trong số họ, cá nhân hóa thông báo;
  • Tất nhiên, bạn cần thiết lập mã thông báo Tegegram của mình.

Tùy chọn:

Bạn có thể thêm "Cảm biến tiện ích" để giám sát mức sạc pin của mình.

Mẹo: tại đây bạn có thể tìm thấy rất nhiều biểu tượng tùy chỉnh miễn phí…

Bước 12: Kết luận

Phần kết luận
Phần kết luận
Phần kết luận
Phần kết luận

Hy vọng tài liệu hướng dẫn này sẽ giúp bạn:

  • có tạo hộp thư được kết nối của riêng bạn hay không;
  • hoặc chỉ để cung cấp cho bạn một số ý tưởng cho các dự án của bạn!

Nếu bạn có ý tưởng cải tiến, tôi sẽ lắng nghe!

PS: xin lỗi vì tiếng anh của tôi, Google dịch giúp tôi rất nhiều nhưng có lẽ không hoàn hảo;-)

Đề xuất: