Thông báo

Collapse
No announcement yet.

Điều khiển thiết bị nhà bằng máy tính

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    [Posted by 58.187.71.254 via http://webwarper.net This is added while posting a message to avoid misuse.
    Try: http://webwarper.net/webwarper.exe Example of viewing: http://www.webwarper.net/ww/~av/dien...s/newreply.php ]

    Ợ, sao không chèn được ảnh vào bài nhỉ, không tải được mình phải chèn URL vậy mờ no được,
    qua đây vậy
    http://blog.360.yahoo.com/opendoor2507

    Comment


    • #17
      Các bạn ngâm cứu đỡ cách điều khiển LPT qua web trên môi trường Linux bằng CGI script ở trang này đã http://www.epanorama.net/circuits/parallel_output.html . Để bxngoc mày mò ráp cái mạch relay dùng ULN2003 rùi bxngoc sẽ viết cái script chạy trên windows.
      “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

      Comment


      • #18
        opendoor2507 có thể post cái schema hoàn chỉnh ghép nối ULN 2003 với LPT điều khiển 7 relay được không?
        “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

        Comment


        • #19
          Nào chúng ta cùng bắt tay xây dựng dự án căn nhà thông minh.
          Mục tiêu của dự án là:
          - Điều khiển các thiết bị điện nhà qua giao diện web (giai đoạn 1), trong trường hợp khẩn cấp không có sẵn internet có thể dùng SMS để điều khiển (giai đoạn 2)
          - Theo dõi hình ảnh nhà qua webcam hoặc camera (giai đoạn 2)
          - Báo động trộm, cháy, rò rỉ gas qua SMS hoặc telephone (giai đoạn 3)
          Yêu cầu:
          - Tính khà thi cao và chi phí thấp.
          Triển khai:
          - bxngoc sẽ xây dựng giải pháp software điều khiển. Các bạn khác (có hứng thú với dự án) sẽ xây dựng giải pháp điện tử.

          I) Chuẩn bị
          Dưới đây là các yêu cầu về phần cứng và phần mêm để thức hiện dự án.
          1) Phần cứng:
          - 1 PC với CPU tốc độ tối thiểu 1Ghz, 256 MB RAM, 20 G HDD
          - 1 telephone line + ADSL và modem ADSL
          - 1 mobile cũ có cable kết nối được với PC dùng để gởi và nhận SMS (bxngoc dùng Nokia 5110 cũ và cable tự chế) Tham khảo tại đây
          - 1 dial-up modem có support chức năng voice dùng để máy tính tự động gọi điện thoại cho bạn , bxngoc xài US Robotics voice (hàng secondhand), các modem voice rẻ tiền loại khác không xài được (làm treo máy tính khi thực hiện cuộc gọi)
          - 1 mạch điều khiển relay qua LPT
          - 1 webcam hoặc camera (nếu dùng camera thì phải có card capture vào máy tính)
          - Các cảm biến hồng ngoại, nhiệt độ, gas v.v...
          2) Phần mềm:
          - Windows 2000/XP
          - Internet Information Server (IIS)
          - Visual Studio 98
          - Các ActiveX liên quan (sẽ post sau)
          Last edited by bxngoc; 15-05-2006, 11:32.
          “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

          Comment


          • #20
            Trong phần này bxngoc sẽ trình bày về cài đặt IIS và viết ASP script để xuất nhập qua LPT.
            1) Cài đặt IIS
            Vào Add/Remove programs trong Settings\Control Panel. Bấm Add/Remove Windows Components trong Windows Components check vào Internet Information Services (IIS) và bấm Details...
            Trong dialog Internet Information Service chọn các mục sau:
            - Common Files
            - Internet Information Services Snap-in
            - World Wide Web Server
            Bấm OK và Next> máy tính có thể hỏi đĩa CD Windows 2000, cho đĩa Windows vào hoặc browse đến thư mục source bạn đã cài windows. Để máy tính hoàn tất việc cài đặt. Khi hộp thoại Completing the Windows Components Wizard hiện ra nhấn Finish.
            Thư mục web mặc định của IIS sẽ là Drive:\Inetpub\wwwroot, trong đó Drive là ổ đĩa bạn đã cài windows (mặc định là C
            Chúng ta cần viết một script nhỏ để kiểm tra IIS đã chạy tốt.
            Soạn một file hello.asp bằng notepad hoặc bất cứ chương trình soạn thảo nào vào save vào thư mục wwwroot

            <%
            Response.Write "It works!"
            %>

            Mở trình duyệt web của bạn lên (Internet Explorer hoặc Firefox) gõ vào ô Address địa chỉ sau: http://localhost/hello.asp Nếu trình duyệt hiện lên câu It works tức là IIS đã chạy tốt.

            Như chúng ta đã biết Windows 2000/XP không cho phép truy xuất trực tiếp phần cứng qua các hàm in/out port mà phải thông qua driver. Vấn đề viết driver cho in/out port nằm ngoài khả năng của bxngoc nên chúng ta dùng cái có sẵn và free. Các bạn vào tham khảo thư viện truy cập LPT trên win2k/xp tại http://www.logix4u.net/inpout32.htm
            download thư viện kèm source về.
            Giải nén file inpout32_source_and_bins.zip ra một thư mục tạm và chép binaries\dll\inpout32.dll vào thư mục C:\Winnt\system32 (là C:\windows\system32 trên XP)

            Việc lập trình hệ thống bằng cách gọi hàm API và truy cập phần cứng tương đối phức tạp. Để đơn giải người ta dùng công nghệ COM. Nói về COM và lập trình tạo COM rất dài dòng, các bạn hiểu nôm na là COM là một đối tượng hay hộp đen mà người ta đã lập trình để làm một việc gì đó, bạn không cần phải biết bên trong viết như thế nào mà chỉ cần biết cách cung cấp tham số, gọi hàm và nhận kết quả.
            Trong ASP việc sử dụng một COM được thực hiện như sau:

            Dim obj ' Biến tham chiếu đến COM
            Set obj = CreateObject("tên_đăng_ký_của_COM")

            ' Gán giá trị cho một thuộc tính (property) của COM
            obj.writeable_property_name = 123

            ' Đọc giá trị từ một thuộc tính của COM vào biến x
            x = obj.readable_property_name

            ' Gọi một hàm của COM
            obj.function_name(parameter1, parameter2,...) ' Trong đó function_name là tên hàm cần gọi, parameter1, parameter2 là các tham số nếu có.

            Quay lại vấn đề truy cập LPT, thư viện inpout32 cung cấp cho chúng ta 2 hàm API để In/Out LPT port là Inp32 và Out32. Làm thế nào để script ASP gọi được 2 hàm đó. Chúng ta sẽ viết một COM bằng VB để script ASP gọi 2 hàm đó.
            Attached Files
            Last edited by bxngoc; 15-05-2006, 15:32.
            “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

            Comment


            • #21
              Đây là sơ đồ chi tiết này bác bxngoc ơi,
              Hiện giờ dùng cách này, tạm thời chỉ điều khiển được 7 thiết bị điện trong nhà bác. Có thể bác dùng thêm một con ULN2003 và dùng nốt bit D7 của LPT để tăng lên 8 thiết bị (như nói trên, con này rẻ lắm mà có sẵn diode bảo vệ ở trong rồi dùng để đk relay không phải lắp thêm gì cả).
              Theo nguyên tắc dùng cả 8 bit D0--> D7, có thể lắp mạch ngoài để điều khiển tối đa 2^8 thiết bị cả thảy, nhưng giờ anh em mình cứ thử thế này cho đơn giản cái đã. Cái mạch 2^8 thiết bị, nhờ các cao thủ chỉ giáo sau vậy !

              Như trong mạch em vẽ, nếu bác muốn con relay 1 đóng, bác viết lệnh xuất ra LPT chuỗi nhị phân 8 bit : 0000 0001
              tương tự bác muốn bật thiết bị nối với relay 2 bác đẩy ra LPT số : 0000 0010
              ...v v.
              (http://blog.360.yahoo.com/opendoor2507)

              Comment


              • #22
                Trong phần này chúng ta sẽ tạo một COM để truy cập LPT từ script ASP. Chắc chắn máy tính của các bạn đã cài Visual Studio 98 như đã yêu cầu (nếu không thì nhanh chân chạy ra Bùi Thị Xuân mua một đĩa về cài). Bạn khởi động Visual Basic lên và tạo một ActiveX DLL project (xem đính kèm). Project mới được mở ra với tên là Project1 và có sẵn một Class Module là Class1 đang trắng.
                Nhấn chuột phải vào Project1 và chọn Project1 Properties... trong Project Name ta sẽ gõ: MyLPTCOM (đây là tên COM của chúng ta, oách chưa), Description: A simple DLL to read/write LPT port. Các mục còn lại giữ nguyên và nhấn OK.
                Tiếp đến ta đổi tên Class1 cho nó meaningful, nhấp chuột vào Class1, trong cửa số Properties (nếu không thấy cửa số này thì bấm nào nút có hình bàn tay chỉ vào một tài liệu trên toolbar) nhập Name: LPTAccess.
                Bây giờ ta lưu lại project để đề phòng cúp điện. VB sẽ hỏi đường dẫn để lưu MyLPTCOM.vbp và LPTAccess.cls, ta chọn lưu vào thư mục ví dụ là C:\LPT programming

                Bây giờ ta viết code cho LPTAccess.cls, các bạn copy và paste toàn bộ đoạn code sau vào cửa sổ soạn thảo của LPTAccess.cls

                Private Declare Function Inp Lib "inpout32.dll" _
                Alias "Inp32" (ByVal PortAddress As Integer) As Integer
                Private Declare Sub Out Lib "inpout32.dll" _
                Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

                Function InPort(PortAddress)
                InPort = Inp(PortAddress)
                End Function

                Sub OutPort(PortAddress, Value)
                Out PortAddress, Value
                End Sub

                Lưu project lại kẻo cúp điện

                Thế là xong, bây giờ chúng ta sẽ biên dịch để tao ra MyLPTCOM.dll là COM của chúng ta. Vào menu File chọn Make MyLPTCOM.dll, VB sẽ hỏi thư mục để lưu file biên dịch, ta chọn C:\winnt\system32 (chúng ta xem MyLPTCOM.dll như một file hệ thống nên lưu vào thư mục hệ thống của windows), bấm OK, nếu không có thông báo lỗi nào thì COM của chúng ta đã được tạo.

                Bây giờ chúng ta phải đăng ký MyLPTCOM.dll với windows, bấm Start chọn Run... và gõ Open: CMD và nhấn OK. Console của windows hiện ra (màn hình DOS quen thuộc ngày nào học vi tính căn bản), tại dấu nhắc C:\> gõ

                C:\>regsvr32 C:\winnt\system32\MyLPTCOM.dll nhân Enter

                Màn hình hiện ra thông báo DllRegisterServer in c:\winnt\system32\MyLPTCOM.dll succeeded. Nhấn OK, COM của chúng ta đã đăng ký thành công.

                Giải lao tí xíu

                Bây giờ ta có thể sử dụng MyLPTCOM trong script ASP như sau:

                ' Khai báo và khởi tạo COM
                ' Biến tham chiếu đến COM
                Dim objLPT
                ' Khởi tạo COM
                Set objLPT=Server.CreateObject("MyLPTCOM.LPTAccess")

                ' Để đọc từ cổng vào ta gọi
                Result = objLPT.InPort(&H379) ' Đọc thanh ghi trạng thái

                ' Để ghi ra cổng ta gọi
                objLPT.OutPort(&H378, value)

                ' Khi kết thúc truy xuất nhớ gọi

                Set objLPT = Nothing

                Các bạn có thể download toàn bộ source của MyLPTCOM và trang script ASP demo in/out LPT tại
                http://203.162.148.211/web2lpt.zip
                Last edited by bxngoc; 16-05-2006, 10:16.
                “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

                Comment


                • #23
                  Các bạn đã dùng web để đóng mở các thiết bị điện nhà qua LPT được chưa? Bước tiếp theo chúng ta sẽ cấu hình để truy cập web điều khiển của chúng ta từ internet. Yêu cầu là phải có đường ADSL. Các bạn download bài viết này của bác shinichi ở diễn đàn www.vninformatics.com (bxngoc phải đăng tên tác giả kẻo bác ấy kiện bxngoc ăn cắp bàn quyền) để nghâm cứu. Hoặc có thể tham khảo các bài viết về cấu hình Dynamic DNS ở các diễn đàn khác (vào Google search: DynDNS ADSL FPT Vietel)
                  Như vậy chúng ta đã có webserver nho nhỏ cho phép trước khi đi làm về ngồi tại văn phòng truy cập vào bật máy lạnh ở nhà lên sẵn sàng. Viết đến đây bxngoc thấy tùi thân quá vì nhà chưa có gắn máy lạnh nên không biết bật cái gì lên.
                  Phần tới bxngoc sẽ trình bày về dùng SMS để truy cập LPT đóng mở các thiết bị.
                  “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

                  Comment


                  • #24
                    Mới mua được cái cảm biến PIR để tích hợp vào dự án căn nhà thông mình. Post lên hỏi cách ghép nối PIR vào với PC mà hông ai trả lời. Buồn quá viết tiếp phần điều khiển qua SMS.
                    Ý tưởng điều khiển qua SMS như sau dùng một mobile cũ (có SIM card còn nhận được cuộc gọi) gắn với PC, chương trình điều khiển chờ nhận tin nhắn đến, kiểm tra số mobile nhắn đến hợp lệ (đề phòng người khác nhắn tin đến đóng mở máy lạnh nhà mình), thông dịch lệnh (có 2 lệnh cơ bản là lệnh đóng/mở thiết bị và lệnh query tình trạng) và gởi điều khiển ra LPT.
                    Để lập trình gởi/ nhận SMS người ta dùng tập lệnh AT. Đây là tập lệnh chuẩn dành để giao tiếp cho modem. Các bạn sẽ thắc mắc là cái modem thì dính dáng gì ở đây? Một số model của mobile khi gắn với PC qua RS232, USB, IR và cài driver sẽ được máy tính hiểu như một cái modem. Có nghĩa là ta có thể dùng để dial-up trong trường hợp đi công tác vùng sâu, vùng xa mà kẹt không có line telephone mà cần và net để check email quan trọng. Chuyên nghiệp hơn thì dùng GSM modem là loại modem thay vì xài telephone line cố định thì gắn SIM card vào. Loại này tương đối mắc tiền khoảng 300-400USD.
                    Việc lập trình bằng lệnh AT tương đối phức tạp, tuy nhiên nó có ưu điểm là có thể viết software tương thích cho các loại modem và mobile có hỗ trợ AT. Trong dự án của chúng ta do yêu cầu về sự đơn giản và giá thành thấp nên mình sẽ không đi sâu về lập trình AT mà sử dụng component có sẵn. Các bạn thấy đấy công việc của người lập trình hệ thống giống như thợ xây đem ghép những viên gạch lại thành căn nhà hoàn chỉnh.
                    Chúng ta thấy là một số điện thoại của Nokia có cable để kết nối với PC để tải nhạc, logo, ringtones v.v.. bxngoc không quan tâm những thứ xa xỉ đó mà quan tâm đến SMS. Thay vì dùng AT để communicate với PC, Nokia phát triển ra một protocol riêng để truyền và nhận dữ liệu qua FBUS và MBUS. FBUS là giải pháp mới hơn và cho phép full-duplex communication giữa PC và mobile. Các bạn có thể tham khảo tài liệu về FBUS & MBUS tại đây. Tra cứu các model nào của Nokia có hỗ trợ FBUS tại đây.
                    Chúng ta không cần phải nghiên cứu kỹ FBUS làm gì mà chỉ quan tâm làm sao để kết nối mobile với PC, do đó chúng ta cần một sợi cable nối. Cách nhanh nhất là ra thegioimobi.com mua một cái giá khoảng 90K-100K. Còn không thì build một cái mạch với con MAX232, vài capitors và diode với giá khoảng 20K. Sơ đồ mạch đây. Mạch này bxngoc đã ráp chạy thành công với Nokia 5110 (Ngày xưa Nokia Đồng Nam bán cái cable này với CD Nokia Data Suite giá gần 2 triệu...) Với các mobile khác chỉ cần xem lại sơ đồ chân đấu nối FBUS là xong http://pinouts.ru/pin_CellularPhones-Nokia.shtml.
                    Sau khi ráp xong cable, chúng ta cần viết chương trình để nhận SMS xử lý. Như bxngoc đã nói chúng ta là công việc thợ xây. Vật liệu chúng ta cần là Nokia PC Connectivity SDK 2.1 Developer Version, cho phép chúng ta lập trình cho chú dế mà không cần phải quan tâm AT commands, FBUS protocol. Download SDK tại đây. Chú ý bạn phải đăng ký làm member của Nokia forum mới download được.
                    Trong khi các bạn download, bxngoc đi uống cafe giải lao tí...
                    Last edited by bxngoc; 29-05-2006, 16:05.
                    “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

                    Comment


                    • #25
                      Nguyên văn bởi bxngoc
                      Để lập trình gởi/ nhận SMS người ta dùng tập lệnh AT. Đây là tập lệnh chuẩn dành để giao tiếp cho modem. Việc lập trình bằng lệnh AT tương đối phức tạp, tuy nhiên nó có ưu điểm là có thể viết software tương thích cho các loại modem và mobile có hỗ trợ AT.
                      Có phải tập lệnh lập trình AT có phải do bọn Viện Tiêu chuẩn viễn thông đưa ra không anh ?

                      Ví dụ AT+CGMI: xác định nhà sản xuất
                      AT+CGMM: model
                      AT+CMGS:gửi tin nhắn

                      Nếu đúng tập lệnh trên,em viết 5 min = VB là xong. hehe ...
                      Em code nguồn toàn bộ cái trên bằng C#, nên chuyển sang VB thì muỗi.

                      Comment


                      • #26
                        Nguyên văn bởi phamthaihoa
                        Có phải tập lệnh lập trình AT có phải do bọn Viện Tiêu chuẩn viễn thông đưa ra không anh ?

                        Ví dụ AT+CGMI: xác định nhà sản xuất
                        AT+CGMM: model
                        AT+CMGS:gửi tin nhắn

                        Nếu đúng tập lệnh trên,em viết 5 min = VB là xong. hehe ...
                        Em code nguồn toàn bộ cái trên bằng C#, nên chuyển sang VB thì muỗi.
                        Đúng rồi đó, nhưng việc kiếm một chú dế có support AT commands thì hơi bị khó mà mua GSM modem chuyên dụng thì mắc tiền. Trong khi kiếm một chú dế Nokia có FBUS thì rẻ tiền và phổ biến, nên bxngoc chọn cách dùng SDK của Nokia. Khi hệ thống đã tương đối hoàn chỉnh thì ta sẽ chuẩn hóa lại cho tương thích với các loại dế và modem.
                        “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

                        Comment


                        • #27
                          Nguyên văn bởi bxngoc
                          Mới mua được cái cảm biến PIR để tích hợp vào dự án căn nhà thông minh. Post lên hỏi cách ghép nối PIR vào với PC mà hông ai trả lời. Buồn quá viết tiếp phần điều khiển qua SMS....
                          Hình như trả lời rồi mà... Bác cần gì nữa thế.
                          Vẫn biết mỗi lần xa là một lần về lại...

                          Comment


                          • #28
                            Nguyên văn bởi qmk
                            Hình như trả lời rồi mà... Bác cần gì nữa thế.
                            bxngoc đã có cách ghép nối PIR với computer qua cổng COM rùi, nhưng phải tốn 1 con PIC và MAX232. Và lại máy tính bxngoc có một cổng COM thì để dành cho nối chú dế Nokia 5110 rùi. Chắc phải nối PIR qua DAQ device quá.
                            “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

                            Comment


                            • #29
                              Thế này đi bác dùng một con Atmega162 nối dế vào một cổng com của nó, cổng com kia nối lên máy tính, nối PIR và các thiết bị khác nối vào con Atmega162 này. Nếu bác có thể viết C thì học AVR và làm cái này trong vòng 2 tuần. Hứa là 2 tuần nữa hướng dẫn bác AVR rồi mà

                              Hơi khó một tẹo là bác không biết giao thức chi tiết cái FBUS mà chỉ dùng SDK.

                              Tôi nghĩ cách nháy máy hay hơn nhắn tin. Vì nhắn tin mất một cái di động đặt thường trực ở nhà lại lo nạp pin cho nó nữa. Tôi mà là trộm tôi lụm con dế trước nhưng phần cứng hơi phức tạp một tí.
                              Vẫn biết mỗi lần xa là một lần về lại...

                              Comment


                              • #30
                                Nguyên văn bởi qmk
                                Nếu bác có thể viết C thì học AVR và làm cái này trong vòng 2 tuần.
                                bxngoc biết lập trình C và MFC. Thế đủ chưa

                                Nguyên văn bởi qmk
                                Hơi khó một tẹo là bác không biết giao thức chi tiết cái FBUS mà chỉ dùng SDK.
                                Không biết FBUS protocol thì có thể học ở link ở trên. bxngoc xài SDK vì tính dùng webcam chụp hình tên trộm sau đó dùng picture SMS gởi đi. AVR có làm được không? Nếu qmk biết giao tiếp module camera với AVR hay PIC thì pót lên

                                Nguyên văn bởi qmk
                                Tôi nghĩ cách nháy máy hay hơn nhắn tin. Vì nhắn tin mất một cái di động đặt thường trực ở nhà lại lo nạp pin cho nó nữa. Tôi mà là trộm tôi lụm con dế trước nhưng phần cứng hơi phức tạp một tí.
                                Cái di động có thể bỏ trong ngăn kéo khóa lại, cắm luôn bộ sạc vào khỏi lo hết pin. Có một cách khác là gởi SMS qua net bằng cách email đến Vinaphone, Mobile fone hoặc Viettel, hoặc chọc thẳng vào SMSC (Short Message Service Center) của bọn chúng.
                                “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

                                Comment

                                Về tác giả

                                Collapse

                                nguyendinhvan Tìm hiểu thêm về nguyendinhvan

                                Bài viết mới nhất

                                Collapse

                                Đang tải...
                                X