Mục lục:

Tổng hợp Bài phát biểu Retro. Phần: 12 IoT, Tự động hóa gia đình: 12 bước (có hình ảnh)
Tổng hợp Bài phát biểu Retro. Phần: 12 IoT, Tự động hóa gia đình: 12 bước (có hình ảnh)

Video: Tổng hợp Bài phát biểu Retro. Phần: 12 IoT, Tự động hóa gia đình: 12 bước (có hình ảnh)

Video: Tổng hợp Bài phát biểu Retro. Phần: 12 IoT, Tự động hóa gia đình: 12 bước (có hình ảnh)
Video: Bạn thuận não trái hay phải? Cách test suy nghĩ #shots #vitamin #braintest #fyp #xuhuong #Drvitamin 2024, Tháng sáu
Anonim
Image
Image
Tổng hợp Bài phát biểu Retro. Phần: 12 IoT, Tự động hóa gia đình
Tổng hợp Bài phát biểu Retro. Phần: 12 IoT, Tự động hóa gia đình

Bài viết này là bài thứ 12 trong loạt bài về Tự động hóa gia đình Tài liệu hướng dẫn cách tạo và tích hợp Thiết bị tổng hợp giọng nói Retro IoT vào một hệ thống tự động hóa gia đình hiện có bao gồm tất cả các chức năng phần mềm cần thiết để cho phép triển khai thành công trong môi trường trong nước.

Hình 1 cho thấy thiết bị tổng hợp giọng nói IoT đã hoàn thành và Hình 2 cho thấy tất cả các bộ phận thành phần được sử dụng trong nguyên mẫu đã được giảm hệ số hình thức để đi vào sản phẩm cuối cùng.

Video cho thấy thiết bị đang hoạt động (trong quá trình thử nghiệm).

Giới thiệu

Như đã đề cập ở trên, chi tiết có thể hướng dẫn này hướng dẫn cách tạo Thiết bị tổng hợp giọng nói cổ điển IoT và dựa trên Dụng cụ tổng hợp SP0256-AL2.

Mục đích chính của nó là thêm tính năng tổng hợp giọng nói 'old school' vào mạng IoT. Tại sao bạn có thể hỏi 'old school'? Chà, bởi vì tôi đã ở khoảng những năm 80 khi những thứ này lần đầu tiên được sản xuất và tôi đã giao tiếp một cái với BBC Micro của mình nên đối với tôi, có một số mức độ hoài cổ xung quanh SP0256-AL2.

Tôi thích thử thách cố gắng tìm hiểu xem cái quái gì đang được nói bởi giọng nói của Dalek này hơn là nghe những âm thanh trầm bổng của một tiếng vọng Amazon hay Siri sành điệu. Thách thức ở chỗ nào mà tôi hỏi bạn?

Ồ, và chưa kể tôi cũng có một 'túi tải' các IC 'SP0256-AL2' nằm xung quanh.

Thiết bị cũng có khả năng đọc nhiệt độ và độ ẩm cục bộ để mở rộng hơn nữa thiết bị xung quanh của cơ sở hạ tầng IoT hiện có của tôi kết nối với mạng IoT dựa trên MQTT / OpenHAB được trình bày chi tiết trong loạt bài này về tự động hóa gia đình (HA), được xây dựng dựa trên mã được sử dụng lại lấy từ đây.

Trung tâm của nó là một ESP8266-07 chịu trách nhiệm giao tiếp MQTT và kiểm soát tất cả các chức năng của hệ thống (truy cập thẻ SD, điều khiển đèn led, cảm biến nhiệt độ / độ ẩm, điều khiển âm lượng, tổng hợp giọng nói). thẻ SD cục bộ, mặc dù các thông số hiệu chuẩn và bảo mật mạng cũng có thể được lập trình thông qua các ấn phẩm MQTT từ xa.

Tôi cần những bộ phận nào?

Xem hóa đơn vật tư tại đây

Tôi cần phần mềm nào?

  • Arduino IDE 1.6.9,
  • Arduino IDE được cấu hình để lập trình ESP8266-07 (tương tự như thế này). Sau đó, định cấu hình IDE như được chỉ ra trong mô tả chi tiết được cung cấp trong bản phác thảo phần mềm tại đây,
  • Python v3.5.2 nếu bạn muốn sử dụng khả năng kiểm tra tự động, chi tiết tại đây

Tôi cần những công cụ nào?

  • Kính hiển vi ít nhất x3 (đối với hàn SMT),
  • Dụng cụ uốn đầu nối Molex (đối với đầu nối JST),
  • Sắt hàn SMD (với bút hàn chất lỏng và thuốc hàn cored từ chất lỏng),
  • Tua vít (nhiều loại),
  • Súng nhiệt,
  • Máy khoan (nhiều loại),
  • Bộ đếm handtool,
  • Tệp (nhiều loại),
  • Dremel (các bit khác nhau),
  • Cơ phó mạnh mẽ (nhỏ và lớn, giống như một người bạn đồng hành màu đen và boong),
  • Scalpel,
  • Thước cặp Vernier (được sử dụng để đo chế tạo và hữu ích để định cỡ các thành phần PCB),
  • Trình điều khiển Spanners và Nut (khác nhau),
  • Nhíp khỏe (dùng cho hàn SMT),
  • Cưa sắt trẻ em,
  • Máy khoan (với các mũi khoan khác nhau),
  • Kìm tốt (mũi nhọn và mũi hếch),
  • Máy cắt phẳng,
  • DMM với kiểm tra tính liên tục bằng âm thanh,
  • Phạm vi kỹ thuật số kênh đôi (tiện dụng để gỡ lỗi tín hiệu)

Tôi cần những kỹ năng gì?

  • Rất nhiều kiên nhẫn,
  • Rất nhiều kỹ năng thủ công và khả năng phối hợp tay / mắt tuyệt vời,
  • Kỹ năng hàn tuyệt vời,
  • Kỹ năng chế tạo tuyệt vời,
  • Khả năng hình dung trong 3 chiều,
  • Một số kiến thức về phát triển phần mềm với 'C' (nếu bạn muốn hiểu mã nguồn),
  • Một số kiến thức về Python (cách cài đặt và chạy các tập lệnh, nếu bạn muốn sử dụng thử nghiệm tự động),
  • Kiến thức về Arduino và IDE của nó,
  • Kiến thức tốt về điện tử,
  • Một số hiểu biết về mạng gia đình của bạn.

Các chủ đề được đề cập

  • Hướng dẫn sử dụng
  • Tổng quan về mạch
  • Sản xuất và lắp ráp PCB
  • Sự bịa đặt
  • Tổng quan về hệ thống phần mềm
  • Tổng quan về phần mềm
  • Hiệu chuẩn cảm biến
  • Quy ước đặt tên chủ đề MQTT
  • Gỡ lỗi & Tìm lỗi
  • Kiểm tra thiết kế
  • Phần kết luận
  • Tài liệu tham khảo được sử dụng

Liên kết loạt bài Đến phần 11: Bàn điều khiển máy tính để bàn IoT. Phần: 11 IoT, Tự động hóa gia đình

Bước 1: Hướng dẫn sử dụng

Hướng dẫn sử dụng
Hướng dẫn sử dụng
Hướng dẫn sử dụng
Hướng dẫn sử dụng
Hướng dẫn sử dụng
Hướng dẫn sử dụng

Hình 1 ở trên cho thấy mặt trước của Bộ tổng hợp giọng nói cổ điển và hình 2 ở phía sau.

Mặt trước bao vây

  1. Loa nướng
  2. Giắc cắm tai nghe 3,5 mm: Loa chính bị tắt khi cắm giắc cắm 3,5 mm.
  3. Đèn LED màu đỏ: Đèn LED này sáng trong khi một từ đang được nói khi giọng nói được bắt đầu thông qua một yêu cầu
  4. Đèn LED màu xanh lam: Đèn LED này sáng trong khi một từ đang được nói khi bài phát biểu được bắt đầu thông qua yêu cầu MQTT IoT.

Bao vây phía sau

  1. Nút Đặt lại: Được sử dụng để khôi phục cài đặt gốc thiết bị IoT ESP8266-07.
  2. Nút Flash: Khi được sử dụng cùng với Nút Reset sẽ cho phép ESP8266-07 nhấp nháy lại.
  3. Phích cắm Ăng-ten Wi-Fi (Phích cắm SMA): Đối với Ăng-ten Wi-Fi bên ngoài cho khả năng suy giảm đường truyền RF ít nhất vì lớp đóng bằng nhôm.
  4. Cổng lập trình bên ngoài: Để loại bỏ sự cần thiết phải tháo vỏ bọc để có quyền truy cập vào ESP8266-07 cho mục đích lập trình lại. Các chân lập trình của ESP8266-07 đã được đưa ra cổng lập trình bên ngoài. Hình 3 là bộ điều hợp lập trình.
  5. Đèn LED màu xanh lá cây: Đây là đèn LED của hệ thống IoT và được sử dụng để chỉ báo trạng thái chẩn đoán của thiết bị và khởi động và trong khi hoạt động.
  6. Cảm biến nhiệt độ / độ ẩm bên ngoài (AM2320)
  7. Khe cắm thẻ nhớ SD: Khe cắm này chứa tất cả dữ liệu cấu hình / bảo mật cùng với các trang máy chủ web.
  8. Giắc cắm cung cấp 2.1mm 6vdc

Bước 2: Tổng quan về mạch

Tổng quan về mạch
Tổng quan về mạch
Tổng quan về mạch
Tổng quan về mạch

Thiết bị Retro Speech Synth bao gồm hai PCB;

  • RetroSpeechSynthIoTBoard: Đây là một PCB chung, có thể tái sử dụng lại ESP8266-07 / 12 / 12E / 13
  • RetroSpeechSynthBoard: Đây là PCB SP0256-AL2 chung

Bảng kết nối IoT Retro Speech Synth

Bo mạch này cho phép hàn trực tiếp ổ cắm điện tử ESP8266-07 / 12 / 12E / 13 hoặc 0,1 có chứa PCB mang ESP8266.

Bo mạch được thiết kế để mở rộng I / O của nó qua kết nối I2C và có thể hỗ trợ các mức cung cấp 3v3 hoặc 5v thông qua Q1, Q2, R8-13.

Kết nối với bo mạch được thực hiện thông qua một trong hai tiêu đề J2 và J4, Một dải băng DIL IDC 8 chiều hoặc JST / Molex 5 chiều.

Cung cấp U2 và U3 3.3v và 5v trên quy định cung cấp trên tàu. Ngoài ra, nếu yêu cầu công suất dòng điện lớn hơn, các bộ điều chỉnh shunt nối tiếp ngoài bo mạch có thể được gắn qua các đầu nối J10 và J11 tương ứng.

Các đầu nối J1 và J3 cung cấp hỗ trợ thẻ SD bên ngoài qua SPI. J1 đã được thiết kế cho Molex 8 chiều và J3 có chân cắm trực tiếp để hỗ trợ khả năng tương thích với chân cắm cho PCB thẻ SD có sẵn với hỗ trợ 3v3 hoặc 5v.

Bảng Synth Speech Retro

Kiểm soát bo mạch này thông qua kết nối tuân thủ I2C 5v qua J1, J5 hoặc J6, đầu nối ribbon 4 chiều JST / Molex, 8 chiều DIL IDC hoặc 8 chiều IDC.

U2 MPC23017 cung cấp giao diện I2C song song với U3 SP0256-AL2 và LEDS D1 (Xanh lục), D2 (Đỏ) và D3 (Xanh lam). Đầu ra của Speech Synth được cấp cho bộ khuếch đại âm thanh CR1 TBA820M thông qua nồi tương tự RV1 hoặc nồi kỹ thuật số U1 MCP4561.

Digital Pot U1 cũng được điều khiển thông qua I2C tuân thủ 5v.

Lưu ý: Thiết bị ESP8266-07 được chọn vì nó có đầu nối IPX RF tích hợp cho phép thêm Anten WiFi bên ngoài vào vỏ nhôm.

Bước 3: Sản xuất và lắp ráp PCB

Sản xuất và lắp ráp PCB
Sản xuất và lắp ráp PCB
Sản xuất và lắp ráp PCB
Sản xuất và lắp ráp PCB
Sản xuất và lắp ráp PCB
Sản xuất và lắp ráp PCB
Sản xuất và lắp ráp PCB
Sản xuất và lắp ráp PCB

Hình 1 và 2 cho thấy các cụm phụ PCB đã hoàn thành và có dây nằm trên nền vỏ nhôm.

Hai PCB được thiết kế bằng Kicad v4.0.7, do JLCPCB sản xuất và do tôi lắp ráp và được hiển thị ở trên từ Pics 3 đến 13.

Bước 4: Chế tạo

Sự bịa đặt
Sự bịa đặt
Sự bịa đặt
Sự bịa đặt
Sự bịa đặt
Sự bịa đặt

Hình 1 cho thấy bố cục theo phong cách Thủ công Haynes của tất cả các bộ phận đúc sẵn trước khi lắp ráp cuối cùng.

Các bức ảnh 2… 5 hiển thị các bức ảnh khác nhau trong quá trình chế tạo vỏ máy với khoảng hở tối thiểu.

Bước 5: Tổng quan về hệ thống phần mềm

Tổng quan về hệ thống phần mềm
Tổng quan về hệ thống phần mềm
Tổng quan về hệ thống phần mềm
Tổng quan về hệ thống phần mềm

Thiết bị tổng hợp giọng nói cổ điển IoT này chứa sáu thành phần phần mềm chính như được hiển thị trong hình 1 ở trên.

Thẻ SD

Đây là Hệ thống Lưu trữ Flash SD SPI bên ngoài và được sử dụng để chứa các thông tin sau (xem hình 2 ở trên);

  • Biểu tượng và 'Trang chủ cấu hình Speech Synth' index.htm: Được thiết bị IoT cung cấp khi thiết bị này không thể kết nối với mạng IoT WiFi của bạn (thường do thông tin bảo mật không chính xác hoặc sử dụng lần đầu) và cung cấp cho người dùng phương tiện cấu hình từ xa các cảm biến mà không cần flash lại nội dung SD mới. Nó cũng chứa index1.htm, mqtt.htm và sp0256.htm, đây là các trang web được phục vụ cục bộ có thể truy cập qua trình duyệt web cho phép kiểm soát giới hạn hệ thống giọng nói qua
  • Thông tin bảo mật: Thông tin này lưu giữ thông tin được sử dụng khi thiết bị IoT bật nguồn để kết nối với mạng IoT WiFi và MQTT Broker của bạn. Thông tin được gửi qua 'Trang chủ Cấu hình Speech Synth' được ghi vào tệp này ('secvals.txt').
  • Thông tin Hiệu chuẩn: Thông tin chứa trong các tệp ('calvals1.txt' và 'calvals2.txt') được sử dụng để hiệu chỉnh các cảm biến nhiệt độ / độ ẩm trên bo mạch nếu cần thiết. Hằng số hiệu chuẩn có thể được ghi vào thiết bị IoT thông qua lệnh MQTT từ nhà môi giới MQTT hoặc bằng cách nhấp nháy lại thẻ SD. 'calvals1.txt' gắn với cảm biến AM2320 và 'calvals2.txt' gắn với DHT22.
  • Giá trị hệ thống có thể định cấu hình của người dùng: Thông tin có trong tệp này ('confvals.txt'), do người dùng chọn, kiểm soát các phản hồi nhất định của hệ thống, chẳng hạn như mức âm lượng kỹ thuật số ban đầu, thông báo tự động 'hệ thống sẵn sàng' trên đăng ký nhà môi giới MQTT, v.v.

Máy chủ mDNS

Chức năng này được gọi khi thiết bị IoT không kết nối được với mạng WiFi của bạn dưới dạng một trạm WiFi và thay vào đó, nó đã trở thành một điểm truy cập WiFi giống như một bộ định tuyến WiFi trong nước. Trong trường hợp của một bộ định tuyến như vậy, bạn thường sẽ kết nối với nó bằng cách nhập Địa chỉ IP của một cái gì đó như 192.168.1.1 (thường được in trên nhãn dán vào hộp) trực tiếp vào thanh URL trình duyệt của bạn, sau đó bạn sẽ nhận được một trang đăng nhập để nhập tên người dùng và mật khẩu để cho phép bạn định cấu hình thiết bị. Đối với ESP8266-07 ở chế độ AP (chế độ Điểm truy cập), thiết bị mặc định là địa chỉ IP 192.168.4.1, tuy nhiên với máy chủ mDNS đang chạy, bạn chỉ phải nhập tên thân thiện với con người 'SPEECHSVR.local' vào thanh URL của trình duyệt để xem 'Trang chủ Cấu hình Speech Synth'.

Khách hàng MQTT

Máy khách MQTT cung cấp tất cả các chức năng cần thiết để; kết nối với nhà môi giới MQTT mạng IoT của bạn, đăng ký các chủ đề bạn chọn và xuất bản tải trọng cho một chủ đề nhất định. Tóm lại, nó cung cấp chức năng cốt lõi của IoT.

Máy chủ web

Máy chủ web này có hai mục đích;

  1. Nếu thiết bị IoT không thể kết nối với mạng WiFi có SSID, P / W, v.v. được xác định trong tệp Thông tin bảo mật được giữ trên Thẻ SD, thiết bị sẽ trở thành Điểm truy cập. Sau khi được kết nối với mạng WiFi do Access Point cung cấp, sự hiện diện của Máy chủ Web HTTP cho phép bạn kết nối trực tiếp với thiết bị và thay đổi cấu hình của thiết bị thông qua việc sử dụng Trình duyệt Web HTTP mà mục đích là để cung cấp 'Cấu hình Speech Synth Trang chủ 'trang web cũng được giữ trên thẻ SD.
  2. Sau khi Thiết bị tổng hợp giọng nói cổ điển IoT đã kết nối với mạng WiFi và nhà môi giới MQTT, nếu được truy cập, Máy chủ web HTTP sẽ tự động phân phối trang web HTTP cho phép kiểm soát giới hạn thiết bị IoT để nói một số cụm từ cố định và khả năng chu kỳ hai đèn LED đỏ và xanh lam phía trước.

Trạm WiFi

Chức năng này cung cấp cho thiết bị IoT khả năng kết nối với mạng WiFi trong nước bằng cách sử dụng các thông số trong tệp Thông tin bảo mật, nếu không có chức năng này, thiết bị IoT của bạn sẽ không thể đăng ký / xuất bản lên MQTT Broker.

Điểm truy cập WiFi

Khả năng trở thành Điểm truy cập WiFi là phương tiện mà thiết bị IoT cho phép bạn kết nối với thiết bị đó và thực hiện các thay đổi cấu hình thông qua trạm WiFi và trình duyệt (chẳng hạn như Safari trên Apple iPad). Điểm truy cập này phát SSID = "SPEECHSYN" + 6 chữ số cuối cùng của địa chỉ MAC của thiết bị IoT. Mật khẩu cho mạng kín này được đặt tên theo hình tượng là 'MẬT KHẨU'

Bước 6: Tổng quan về phần mềm

Tổng quan về phần mềm
Tổng quan về phần mềm
Tổng quan về phần mềm
Tổng quan về phần mềm
Tổng quan về phần mềm
Tổng quan về phần mềm

Mở đầu

Để biên dịch thành công mã nguồn này, bạn sẽ cần một bản sao cục bộ của mã và các thư viện được nêu bên dưới trong Bước 12, Tài liệu tham khảo được sử dụng. Nếu bạn không chắc chắn về cách cài đặt thư viện Arduino, hãy truy cập vào đây.

Tổng quat

Phần mềm sử dụng máy trạng thái như được hiển thị trong hình 1 ở trên (bản sao đầy đủ của nguồn trong kho lưu trữ GitHub của tôi tại đây). Có 5 trạng thái chính như được nêu dưới đây;

  • TRONG ĐÓ

    Trạng thái khởi tạo này là trạng thái đầu tiên được nhập sau khi bật nguồn

  • NOCONFIG

    Trạng thái này được nhập nếu sau khi khởi động, tệp tin secvals.txt không hợp lệ hoặc bị thiếu được phát hiện. Trong trạng thái này, Trang cấu hình sẽ hiển thị

  • PENDING NW

    Trạng thái này là tạm thời, được nhập trong khi không có kết nối mạng WiFi

  • ĐANG ĐANG MQTT

    Trạng thái này là tạm thời, được nhập sau khi kết nối mạng WiFi đã được thực hiện và trong khi không tồn tại kết nối với nhà môi giới MQTT trên mạng đó

  • TÍCH CỰC

    Đây là trạng thái hoạt động bình thường được nhập sau khi cả kết nối mạng WiFi và kết nối MQTT Broker đã được thiết lập. Chính trong trạng thái này, nhiệt độ, chỉ số nhiệt và độ ẩm tại Thiết bị tổng hợp giọng nói Retro IoT thường xuyên được công bố cho Nhà môi giới MQTT. Ở trạng thái này, Trang chủ Speech Synth sẽ hiển thị

Các sự kiện điều khiển chuyển đổi giữa các trạng thái được mô tả trong hình 1 ở trên. Chuyển đổi giữa các trạng thái cũng được điều chỉnh bởi các tham số SecVals sau đây;

  • Địa chỉ IP nhà môi giới MQTT thứ nhất. Ở dạng thập phân chấm chấm AAA. BBB. CCC. DDD
  • Cổng môi giới MQTT thứ 2. Ở dạng Số nguyên.
  • Kết nối MQTT Broker thứ 3 cố gắng thực hiện trước khi chuyển từ chế độ STA sang chế độ AP. Ở dạng Số nguyên.
  • SSID mạng WiFi thứ 4. Trong văn bản biểu mẫu miễn phí.
  • Mật khẩu mạng WiFi thứ 5. Trong văn bản biểu mẫu miễn phí.

Như đã đề cập ở trên nếu thiết bị IoT không thể kết nối dưới dạng Trạm WiFi với mạng WiFi, SSID và P / W của người đó được xác định trong secvals.txt được giữ trên Thẻ SD, thiết bị IoT sẽ trở thành Điểm truy cập. Sau khi được kết nối với điểm truy cập này, nó sẽ cung cấp 'Trang chủ cấu hình Speech Synth' như được hiển thị ở trên trong Pic 2 (bằng cách nhập 'SPEECHSVR.local' hoặc 192.168.4.1 vào thanh địa chỉ URL của trình duyệt của bạn). Trang chủ này cho phép cấu hình lại Thiết bị tổng hợp giọng nói Retro IoT thông qua trình duyệt

Truy cập từ xa trong khi ở trạng thái HOẠT ĐỘNG

Sau khi kết nối với MQTT Broker, bạn cũng có thể hiệu chỉnh lại và cấu hình lại thiết bị thông qua các ấn phẩm chủ đề MQTT. Tệp calvals.txt có quyền truy cập R / W và secvals.txt có quyền truy cập chỉ ghi được hiển thị.

Cũng như đã đề cập ở trên, khi ở chế độ hoạt động, bạn có thể truy cập Speech Synth qua giao diện HTTP bằng cách nhập 'SPEECHSVR.local' hoặc 192.168.4.1 vào thanh địa chỉ URL của trình duyệt của bạn. Giao diện dựa trên HTTP này cho phép điều khiển cơ bản của Speech Synth. Các bức ảnh 3, 4 và 5 hiển thị các trang web có sẵn.

Người dùng gỡ lỗi

Trong trình tự khởi động, Hệ thống màu xanh lá cây của thiết bị IoT được dẫn đầu ở phía sau của vỏ bọc đưa ra phản hồi gỡ lỗi sau đây;

  • 1 Đèn flash ngắn: Không có tệp cấu hình nằm trên thẻ SD (secvals.txt)
  • 2 Nhấp nháy ngắn: Thiết bị IoT đang cố gắng kết nối với mạng WiFi
  • Chiếu sáng liên tục: Thiết bị IoT đang cố gắng kết nối với MQTT Broker
  • Tắt: Thiết bị đang hoạt động.

Chức năng của thiết bị tổng hợp giọng nói Retro IoT ở trạng thái HOẠT ĐỘNG

Khi ở trạng thái HOẠT ĐỘNG, ESP8266 đi vào một vòng lặp liên tục gọi các chức năng sau; timer_update (), checkTempetherAndHumidity () và handleSpeech (). Kết quả ròng của nó đã được thiết kế để cung cấp cho người dùng giao diện HTTP hoặc MQTT, phục vụ liền mạch bộ xử lý giọng nói trên bo mạch với các âm vị theo yêu cầu và xuất bản các giá trị tham số xung quanh cục bộ qua MQTT.

Một danh sách toàn diện của tất cả các đăng ký chủ đề và các ấn phẩm bao gồm các giá trị trọng tải được bao gồm trong mã nguồn.

Bước 7: Hiệu chuẩn cảm biến

Hiệu chuẩn cảm biến
Hiệu chuẩn cảm biến

Khi thiết bị IoT bật nguồn, như một phần của trình tự khởi động, hai tệp có tên 'cavals1.txt' và 'cavals2.txt' được đọc từ Thẻ SD.

Nội dung của các tệp này là các hằng số hiệu chuẩn như được chỉ ra ở trên trong hình 1.

  1. 'caval1.txt': Được sử dụng bởi AM2320 bên ngoài
  2. 'caval2.txt': Được sử dụng bởi DHT22 nội bộ

Các hằng số hiệu chuẩn này được sử dụng để điều chỉnh các số đọc thu được từ hai cảm biến để đưa chúng phù hợp với thiết bị tham chiếu. Còn một giá trị khác xác định chiến lược báo cáo cho từng thiết bị và được mô tả bên dưới cùng với quy trình sau để hiệu chuẩn các cảm biến.

Chiến lược báo cáo

Tham số này xác định cách cảm biến từ xa báo cáo mọi thay đổi cục bộ của tham số môi trường xung quanh đối với nó. Nếu giá trị 0 được chọn, cảm biến từ xa sẽ công bố bất kỳ thay đổi nào mà nó nhìn thấy về nhiệt độ hoặc độ ẩm mỗi khi cảm biến tương ứng được đọc (khoảng 10 giây một lần). Bất kỳ giá trị nào khác sẽ trì hoãn việc xuất bản thay đổi 1… 60 phút. Việc sửa đổi tham số này cho phép tối ưu hóa lưu lượng mạng MQTT. Cần lưu ý rằng dữ liệu nhiệt độ và độ ẩm từ DHT22 được đọc luân phiên do những hạn chế của cảm biến.

Hiệu chuẩn nhiệt độ

Để hiệu chỉnh cảm biến nhiệt độ, tôi đã làm theo quy trình tương tự như đã nêu ở đây bước 4, một lần nữa sử dụng mối quan hệ y = mx + c đơn giản. Tôi đã sử dụng Cảm biến nhiệt độ, độ ẩm IoT # 1 làm thiết bị tham chiếu. Giá trị từ cảm biến được tính bằng độ celcius.

Hiệu chỉnh độ ẩm

Vì tôi không có phương tiện nào để ghi lại hoặc thậm chí kiểm soát độ ẩm xung quanh cục bộ một cách chính xác, nên để hiệu chỉnh cảm biến, tôi đã sử dụng cách tiếp cận tương tự như ở trên ở bước 4, một lần nữa sử dụng Cảm biến số 1 làm tài liệu tham khảo. Tuy nhiên ở trên đã nói, gần đây tôi đã tìm thấy một bài báo tuyệt vời trên web mô tả cách hiệu chỉnh cảm biến độ ẩm. Tôi cũng có thể thử cách tiếp cận này vào một lúc nào đó trong tương lai. Giá trị từ cảm biến tính theo% tuổi của độ ẩm tương đối.

Bước 8: Quy ước đặt tên chủ đề MQTT

Quy ước đặt tên chủ đề MQTT
Quy ước đặt tên chủ đề MQTT
Quy ước đặt tên chủ đề MQTT
Quy ước đặt tên chủ đề MQTT

Như đã đề cập trong phần Có thể hướng dẫn trước đó (tại đây), tôi đã giải quyết quy ước đặt tên chủ đề được nêu trong hình 1 ở trên.

Cụ thể, 'AccessMethod / DeviceType / whichDevice / Action / SubDevice' Nó không hoàn hảo nhưng nó cho phép áp dụng các bộ lọc hữu ích để xem tất cả các đầu ra cảm biến cho một chủ đề tham số nhất định, do đó cho phép dễ dàng so sánh như trong hình 2 ở trên với MQTTSpy.

Dự án này là trường hợp đầu tiên trong đó một thiết bị chứa nhiều hơn một nguồn gốc của cùng một loại ấn phẩm. I E. Hai cảm biến nhiệt độ / độ ẩm, từ các thiết bị phụ bên trong và bên ngoài.

Nó cũng hỗ trợ các nhóm chức năng hợp lý có thể mở rộng hợp lý trong một thiết bị IoT nhất định.

Khi triển khai các chủ đề này trong phần mềm, tôi đã sử dụng các chuỗi chủ đề được mã hóa cứng với các số nhận dạng cố định, được nhúng cho mỗi thiết bị thay vì tạo động các chủ đề tại thời điểm chạy để tiết kiệm RAM và giữ hiệu suất cao.

Lưu ý: Nếu bạn không chắc chắn về cách sử dụng MQTTSpy, hãy xem tại đây 'Thiết lập Nhà môi giới MQTT. Phần 2: IoT, Tự động hóa gia đình '

Bước 9: Gỡ lỗi và tìm lỗi

Gỡ lỗi & Tìm lỗi
Gỡ lỗi & Tìm lỗi

Nói chung, đối với các dự án sở thích của tôi, nếu có thể, tôi có xu hướng xây dựng một nguyên mẫu phần cứng đại diện mà phần mềm được phát triển, tôi hiếm khi gặp bất kỳ vấn đề nào khi tích hợp phần mềm vào phần cứng nền tảng cuối cùng.

Tuy nhiên, trong dịp này, tôi đã gặp một lỗi ngắt quãng kỳ lạ, theo đó một số âm vị sẽ phát ra nhưng những âm vị khác thì không.

Sau một số lần gỡ lỗi ban đầu của PCB Synth Speech bằng cách sử dụng Arduino Uno để nguồn âm vị và chứng minh rằng bo mạch này đang hoạt động, tôi đã xác định phạm vi các dòng I2C giữa PCB IoT và Speech Synth PCB. Xem Pic 1 ở trên.

Bạn có thể thấy rõ 'răng cưa' / cạnh hàm mũ đối với tín hiệu I2C trên các dấu vết.

Đây thường là một dấu hiệu cho thấy giá trị kéo lên của I2C quá cao ngăn cản điện áp đường dây phục hồi đủ nhanh trong một mạch thoát hở.

Khi 'làm việc xung quanh', tôi đã song song hai điện trở kéo lên R12 và R13 với 10Ks để tạo ra 4K7 và đủ chắc chắn rằng Speech Synth 'bùng nổ'

Loại lỗi này ngược lại với những gì có thể xảy ra khi gỡ lỗi các loại dự án này. Nhìn chung, hầu hết các mô-đun dựa trên I2C được mua từ Ebay có xu hướng đi kèm với bộ kéo 10K hoặc 4K7 đã được trang bị sẵn. Nếu bạn có ý định sử dụng> 5 mô-đun I2C, mỗi mô-đun có 4K7 pull up, thì tải tổng thể là 940R sẽ là quá lớn cho giai đoạn đầu ra của tổng thể. Cách khắc phục là khử hàn tất cả trừ một bộ điện trở kéo lên trên mỗi mô-đun. Tốt hơn là một trong những vật lý xa chủ nhất.

Một mẹo hữu ích và đáng ghi nhớ khi thiết kế thiết bị điện tử với thiết bị I2C.

Bước 10: Kiểm tra thiết kế

Image
Image
Kiểm tra thiết kế
Kiểm tra thiết kế
Kiểm tra thiết kế
Kiểm tra thiết kế

Thử nghiệm được thực hiện bằng hai phương pháp; Thủ công và Tự động.

Đầu tiên, thủ công và thường được sử dụng trong quá trình phát triển mã ban đầu là sử dụng MQTT Spy để thực hiện tất cả các chủ đề đã đăng ký có sẵn và kiểm tra các phản hồi đã xuất bản (được mô tả trong hình 2 ở trên). Vì đây là một quá trình thủ công nên có thể tốn thời gian và dễ xảy ra lỗi khi quá trình phát triển mã đang diễn ra, mặc dù việc thực thi thủ công cho phép phạm vi 100%.

MQTTSpy được chọn để kiểm tra thủ công vì nó là một công cụ tuyệt vời để định dạng thủ công một tải trọng nhất định và xuất bản nó lên bất kỳ chủ đề nào một cách dễ dàng. Nó cũng hiển thị một bản ghi rõ ràng, có đóng dấu thời gian, rất hữu ích cho việc gỡ lỗi (hình 3 ở trên).

Cách tiếp cận thứ hai, tự động đã được áp dụng khi mã nguồn trở nên phức tạp hơn (> 3700 dòng). Độ phức tạp tăng lên có nghĩa là chu kỳ kiểm tra thủ công dài hơn và các bài kiểm tra phức tạp hơn. Để cải thiện độ tin cậy, tính xác định và chất lượng của các thử nghiệm, thử nghiệm tự động đã được sử dụng thông qua trình điều hành thử nghiệm python (hình 1). Xem Bước # 10 trong phần Có thể hướng dẫn này về cách thử nghiệm tự động được giới thiệu. Bản sao đầy đủ của các bài kiểm tra tự động được sử dụng trong Tài liệu hướng dẫn này có sẵn tại đây.

Đoạn video về trình tự kiểm tra tự động đang hoạt động được hiển thị ở trên. Trình tự thực hiện các bước sau;

  • Tự động qua MQTT

    • Kết nối với đường trục MQTT và thông báo 'Hệ thống đã sẵn sàng'
    • Đèn LED xanh tập thể dục
    • Đèn LED đỏ tập thể dục
    • Đèn LED xanh tập thể dục
    • Kiểm tra hoạt động của Digital Pot
    • Nói bằng Âm vị
    • Nói bằng cách sử dụng Mã Hex cho Âm vị
    • Nói bằng cách sử dụng mã để sửa các cụm từ
    • Một chút vui nhộn của Dr Who and the Daleks.
  • Thủ công qua HTTP / Chrome

    • Đèn LED xanh dương tập thể dục
    • Đèn LED đỏ tập thể dục
    • Nói các cụm từ cố định 'Steven Quinn', 'System Ready' và 'Hello World'
    • Có máy chủ HTTP, phục vụ

      • Thông tin chi tiết về chip Speech Synth
      • Chi tiết MQTT

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

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

Mặc dù phải mất rất nhiều công sức với các tập tin và bài tập, v.v. đặc biệt là đối với lưới loa, tôi nghĩ kết quả là đẹp mắt về mặt thẩm mỹ và đóng gói thành một vỏ bọc nhỏ, đẹp. Tôi có thể đã làm cho nó nhỏ hơn nhưng nó sẽ cần phải có một PCB và tôi đã cố tình chia nó thành hai để tôi có thể sử dụng lại PCB vào một ngày sau đó cho các dự án khác. Vì vậy, đó là một thỏa hiệp hạnh phúc.

Phần mềm hoạt động tốt, thiết bị IoT đã hoạt động ổn định được một thời gian mà không gặp bất kỳ vấn đề gì.

Tôi đã theo dõi nhiệt độ và độ ẩm thông qua Grafana và so sánh với một thiết bị đặt cùng vị trí. Hai giá trị môi trường tương quan tốt, ngụ ý rằng việc hiệu chuẩn là hợp lý (hoặc ít nhất là chúng tương tự nhau).

Tôi đã ngừng triển khai lệnh từ ('WFD / SpeechTH / 1 / Word / Command') vì tôi đã hết thời gian và cần phải tiếp tục. Tôi cũng có thể truy cập lại điều này nếu và khi tôi thiết lập cơ sở dữ liệu MySQL. Hiện tại, tôi đang sử dụng InfluxDB.

Bước 12: Tài liệu tham khảo được sử dụng

Các nguồn sau đây đã được sử dụng để tập hợp Tài liệu hướng dẫn này lại với nhau; Mã nguồn cho Thiết bị tổng hợp giọng nói Retro IoT (phần này chứa bản sao của mọi thứ)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • Bởi: Nick O'Leary
  • Mục đích: Cho phép thiết bị xuất bản hoặc đăng ký các chủ đề MQTT với một Nhà môi giới nhất định
  • Từ:

DHT.h

  • Bởi: Adafruit
  • Mục đích: Thư viện Arduino cho DHT11DHT22, v.v. Cảm biến nhiệt độ & độ ẩm
  • Từ:

Adafruit_AM2320.h / Adafruit_Sensor.h

  • Bởi: Adafruit
  • Mục đích: Thư viện Arduino cho AM2320, v.v. Cảm biến nhiệt độ & độ ẩm
  • Từ:

MCP4561_DIGI_POT.h

  • Bởi: Steve Quinn
  • Mục đích: Thư viện Arduino cho chiết áp kỹ thuật số MCP4561
  • Từ:

Adafruit_MCP23017.h

  • Bởi: Steve Quinn
  • Mục đích: Thư viện Arduino cho Bộ mở rộng cổng MCP23017 I2C. Đây là một fork GITHub từ Adafruit-MCP23017-Arduino-Library, bởi Adafruit.
  • Từ:

Cho vui

https://haynes.com/en-gb/

Sản xuất PCB

https://jlcpcb.com/

Cài đặt thư viện Arduino bổ sung

https://www.arduino.cc/en/Guide/Libraries

Cách Kiểm tra và Hiệu chỉnh Cảm biến Độ ẩm

https://www.allaboutcircuits.com/projects/how-to-check-and-calibrate-a-humidity-sensor/?utm_source=All+About+Circuits+Members&utm_campaign=ffeee38e54-EMAIL_CAMPAIGN_sensor/?utm_source=All+About+Circuits+Members&utm_campaign=ffeee38e54-EMAIL_CAMPAIGN_2018 /

Biểu dữ liệu SP0256-AL2

https://www.futurebots.com/spo256.pdf

Cửa hàng Speech chip

https://www.speechchips.com/shop/

Cuộc thi Arduino 2019
Cuộc thi Arduino 2019
Cuộc thi Arduino 2019
Cuộc thi Arduino 2019

Về nhì trong Cuộc thi Arduino 2019

Đề xuất: