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

  • #31
    Nguyên văn bởi bxngoc
    bxngoc biết lập trình C và MFC. Thế đủ chưa
    Đủ rồi. Ý tôi nói là viết AVR bằng C nó nhanh hơn ấy mà. Chỉ cần chỉ bác setup công cụ là bắt đầu được thôi.
    Nguyên văn bởi bxngoc
    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
    Vì SDK không cài trên AVR được. Cần phải biết chi tiết protocol thì mới viết trên AVR được. AVR có thể kết nối sử dụng MCU CAM còn Webcam thì thua.
    Bác còn định quay hình trộm nữa Hi hi lãng mạn lắm đó.
    IP-Cam thì sao.
    Nguyên văn bởi bxngoc
    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.
    Cách này đỡ tốn hơn đấy.
    Last edited by qmk; 30-05-2006, 16:29.
    Vẫn biết mỗi lần xa là một lần về lại...

    Comment


    • #32
      Nguyên văn bởi qmk
      AVR có thể kết nối sử dụng MCU CAM còn Webcam thì thua.
      Bác còn định quay hình trộm nữa Hi hi lãng mạn lắm đó.
      IP-Cam thì sao.
      Đã nói là nhà thông minh thì phải nhận diện ra chủ nhân. Trước khi biết dùng đến PIR để detect motion (2 tháng trước) thì bxngoc nghiên cứu detect motion bằng video capture từ webcam và camera. Và vô tình lụn được bí kíp nhận dạng bằng hình ảnh để biết ai là người nhà, hàng xóm, người lạ và chó mèo. Đồng thời cũng nhận dạng được emotion của người (vui, buồn, giận) . Từ đó nảy sinh ra ý tưởng có thể lập trình để chiều đi làm về computer sẽ says "Chào bác bxngoc đã đi làm về a." và bật ngay kênh VTV1 để bxngoc xem film chuyện.

      Hạ hồi sẽ rõ.
      “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


      • #33
        Ngày xưa bạn tôi có giải quyết bài toán phần biệt mặt người này bằng mạng nơron độ chính xác khoảng 70%. Dựa vào chấm điểm vào mắt mũi lông mày gì đó rồi huấn luyện mạng. Hồi đấy còn sinh viên chắc giờ thì có thể nâng tỉ lệ cao hơn được rồi.

        Hihi càng nói chuyện càng thấy bác ngoc lãng mạn
        Vẫn biết mỗi lần xa là một lần về lại...

        Comment


        • #34
          Viết tới đây bxngoc hơi bối rối các bác cứ nhảy vào biểu SDK không xài được cho AVR. Đề bài đang là "Điều khiển thiết bị nhà bằng máy tính" và đang giải quyết nhu cầu của manhnd
          Nguyên văn bởi manhnd
          Cơ mà em muốn điều khiển được nó qua con PDA của em ở nhà..vv..., Đề bài à thế này :
          Thiết bị trong nhà gồm máy lạnh, máy giặt, máy bơm nước, lò vi sóng, tử lạnh, quạt thông gió. Em đang ngồi tại văn phòng cơ quan đầu đau như búa bổ vì làm việc căng thẳng bây giờ muốn về nhà tắm nước nóng phát, bật cái quạt thông gió lên cho nó mát, bật cái máy lạnh lên. chỉ cần khi về đến nhà là mọi thứ đủ cả.
          Đường thuê bao ADSL của FPT tốc độ cao, cài một cái Server ở nhà ( Mặc định là có xin được bọn nó 1 cái địa chỉ IP tĩnh ).
          Câu hỏi 1 : Làm thế nào em có thể ngồi ở máy tính văn phòng công ty ( Rất xa ) có thể quan sát nhà mình qua IP Camera, kiểm tra trạng thái Bật/ Tắt của các thiết bị trong nhà mình.
          Câu hỏi 2 : Làm thế nào để khi về nhà em vừa ngồi xem TV vừa hỏi bà xã "Em ơi em có tắm nước nóng không Anh bật bình nước nóng lên nhé, Em ơi đĩa thịt bò trong lò vi sóng được 10 phút chín rồi đấy"
          Các bác thấy thế nào. Cũng hay đấy chứ.
          Thế thì em giải quyết bài toán bằng technology nào miễn sao điều khiển được thiết bị qua LPT thôi chứ.
          Nếu các bác thích điều khiển bằng AVR thì tại sao không mở một luồng "Điều khiển thiết bị nhà bằng AVR"

          Nên tiếp hay thôi?
          “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


          • #35
            Bây giờ chúng ta bắt đầu cài Nokia Connectivity SDK đã download về. Chạy chương trình NCL21.exe và cắm đầu nhấn nút Next cho đến màn hình này

            Nếu chú dế được nối vào công COM thì chọn mục Cable Connection. Nếu nối qua infrared thì chọn Infrafred. Nếu xài dế xịn như N70 thì chọn Bluetooth Connection.
            Bấm Next, chương trình cài đặt sẽ detect xem chú dế đã nối vào PC chưa

            Nếu máy tính không detect ra thì don't panic, chúng ta sẽ check lại cable và config sau

            Sau đó tiếp tục cắm đầu nhấn nút Next cho đến khi quá trình cài đặt hoàn tất và máy tính sẽ yêu cầu reboot lại. Sau khi máy tính khởi động lại chúng ta sẽ thấy một icon ở status như thế này (icon trong hình tròn màu xanh)

            Chúng ta double click vào icon và màn hình này sẽ hiện ra

            Nếu chú dế đã được nối vào máy tính bằng cable thì sẽ hiện ở trong mục Phone.
            “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


            • #36
              Sau khi cài đặt SDK thành công chúng ta có thể xem các ví dụ trong thư mục c:\Program Files\Nokia\Nokia PC Connectivity SDK 2.1\Samples viết bằng các ngôn ngữ Delphi, VB, VBA, C++. Mở file Nokia PC Connectivity SDK 2.1 for Nokia Phone.pdf để xem reference về SDK. Nếu nóng lòng thì mở ví dụ viết bằng VB trong thư mục SMS để gởi thử một tin nhắn vào số SIM gắn trong chú dế đã nối vào PC bằng cable.

              Giao diện chính chương trình


              Màn hình tin nhắn vừa nhận được
              “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


              • #37
                Bây giờ chúng ta bắt đầu viết chương trình điều khiển thiết bị bằng SMS. Mở VB lên và tạo một project; đổi tên Project1 thành SMSController và Form1 thành MainForm.
                Vào menu Project\References check vào ô Nokia SMS Adapter (PC Suite 3.7) để sử dụng SDK trong project.
                Right click trên SMS Controller (SMS Controller.vbp) để add một Module và đổi tên Module1 thành modPublic. Khi báo các hàm in/out port trong modPublic như sau:
                Code:
                Public Declare Function Inp Lib "inpout32.dll" _
                Alias "Inp32" (ByVal PortAddress As Integer) As Integer
                Public Declare Sub Out Lib "inpout32.dll" _
                Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
                (Chú ý là thư viện inpout32.dll đã được cài đặt theo hướng dẫn ở phần truy cập LPT qua web script)

                Mở phần code của MainForm ra và khai báo các đối tượng sau:
                Code:
                Option Explicit
                Private WithEvents puISink As SMS3ASuiteLib.SMS_SuiteAdapter
                
                Public puSMSSuiteAdapter As SMS3ASuiteLib.SMS_SuiteAdapter
                Đối tượng puISink là để fire các events khi có một tin nhắn mới gởi đến (ShortMsgReceived) và khi có một tin nhắn được gởi đi (ShortMsgSent).

                Đối tượng puSMSSuiteAdapter là controller để chương trình giao tiếp với chức năng SMS của mobile

                Chúng ta viết hàm Form_Load như sau

                Code:
                Private Sub Form_Load()
                '   Khởi tạo đối tượng 
                    Set puSMSSuiteAdapter = New SMS3ASuiteLib.SMS_SuiteAdapter
                '   Gán puISink = puSMSSuiteAdapter để puISink fire các events
                    Set puISink = puSMSSuiteAdapter
                '   Bắt đầu listen các event SMS từ mobile
                    Call puSMSSuiteAdapter.StartListeningEvents        
                End Sub
                Một thói quen tốt là viết luôn hàm Form_Unload để khi chương trình kết thúc sẽ giải phóng bộ nhớ do các đối tượng được tạo và giải phóng các thiết bị. Nếu các bạn quên điều nay thì khi chạy lại chương trình hoặc chạy chương trình khác có sử dụng chung thiết bị thì sẽ không truy cập được vào thiết bị.

                Code:
                Private Sub Form_Unload(Cancel As Integer)
                ' Kết thúc làm việc với mobile
                    Call puSMSSuiteAdapter.Terminate
                ' Giải phóng đối tượng
                    Set puISink = Nothing
                    Set puSMSSuiteAdapter = Nothing    
                End Sub
                Trước khi viết hàm xử lý tin nhắn nhận đến để điều khiển thiết bị chúng ta có một số quy ước sau:
                - Để đảm bảo tránh người khác vô tình hay cố ý gởi tin nhắn đến hệ thống có thể điều khiển thiết bị theo yêu cầu hoặc bị rối loạn lên, hệ thống chỉ sử lý các tin nhắn từ một số mobile quy định trước (các bạn có thể mở rộng bằng cách yêu cầu user id / password)
                Khai báo các hằng số ở đầu chương trình
                Code:
                ' Thay bằng số mobile thực của bạn
                Const MY_OWN_NUMBER = "091899999"
                Const DATA_PORT = &H378
                Const STATUS_PORT = &H379
                Const CONTROL_PORT = &H37A
                - Lệnh để nhận biết tình trạng đóng/mở của relays do máy tính gởi cho bạn là QRY, giả sử ta có 8 thiết bị do relays điền khiển là DEN1 (đèn), DEN2, DEN3, DEN4, MAYLANH (máy lạnh), TIVI, QUAT1 (quạt), QUAT2 được điều khiển bởi tám relay gắn vào DATA pins của LPT ở các pin sau: 2,3,4,5,6,7,8,9

                Khi ta gời tin nhắn QRY đến số mobile điều khiển thì sẽ nhận được một tin nhắn trả lại như sau:

                DEN1: ON
                DEN2: OFF
                DEN3: ON
                DEN4: OFF
                MAYLANH: OFF
                TIVI: OFF
                QUAT1: OFF
                QUAT2: OFF

                - Lệnh điều khiển đóng mở thiết bị quy định là SET. 1 sẽ là đóng, 0 sẽ là tắt. * là bỏ qua. Mỗi thiết bị được quy định là một ký tự tính từ trái qua phải. Như vậy DEN1 là ký tự đầu tiên, QUAT2 là ký tự số 8. Nếu chỉ điều khiển đến thiết bị số 5 thì chuỗi gởi sẽ dài 5 ký tự mà không cần phải đủ 8. Ví dụ để bật máy lạnh lên mà không cần điều khiển các thiết bị khác ta gởi: SET ****1 (bỏ qua 4 thiết bị đầu, 3 thiết bị sau không cần)
                Last edited by bxngoc; 06-06-2006, 14:17.
                “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


                • #38
                  Bây giờ chúng ta sẽ viết code để xử lý các tin nhắn đến. Trước tiên thêm một textbox vào MainForm. Chỉnh size cho lớn bằng khoảng các text các bạn hay dùng để pót bài lên diễn đàn. Đặt tên là txtMessage, sửa thuộc tính Text là rỗng, chọn MultiLine=True. Chúng ta dùng textbox này để hiển thị các thông tin đang diễn ra khi chương trình chạy (vd: SMS message vừa gởi đến,v.v..).

                  Mở phần code của MainForm lên viết thêm các hàm helper vào
                  Code:
                  ' Hàm này trả về  số nào bé hơn trong x và y
                  Function Min(x As Integer, y As Integer) As Integer
                      If x < y Then
                          Min = x
                      Else
                          Min = y
                      End If
                  End Function
                  ' Hàm này tính lũy thừa 
                  Private Function pow(i As Integer, j As Integer) As Long
                      Dim index As Integer
                      pow = 1
                      'pow already set to 1.
                      If j = 0 Then Exit Function
                      If j > 0 Then
                      For index = j To 1 Step -1
                          pow = pow * i
                      Next
                      Else
                       j = Abs(j)
                       For index = j To 1 Step -1
                          pow = pow * i
                      Next
                      pow = 1 / pow
                     End If
                  End Function
                  
                  ' Thủ tục này để display message ra txtMessage. 
                  Private Sub DisplayMessage(sMsg As String)
                      txtMessage.Text = txtMessage.Text & vbCr & vbLf & sMsg
                  End Sub
                  Thủ tục puISink_ShortMsgReceived sẽ tự động được gọi khi có một SMS gởi đến mobile.

                  Code:
                  Private Sub puISink_ShortMsgReceived(ByVal SMSMemory As SMS3ASuiteLib.SMS_MEMORY_LOCATION, _
                                                       ByVal index As Long, ByVal pSMS As SMS3ASuiteLib.IShortMessage)
                      Dim sMsg As String
                      Dim sSender As String
                      Dim reg As Integer
                      Dim sCommand As String
                      Dim c As String
                      Dim i As Integer
                      Dim nMsgLen As Integer
                  ' Mảng giữ trạng thái của 8 thiết bị
                      Dim pin(1 To 8) As Integer
                      
                  ' SMS gởi từ số máy
                      sSender = pSMS.OtherEndAddress
                  ' Nội dung
                      sMsg = pSMS.UserDataText
                  ' Hiển thị số mobile gởi SMS và nội dung ra txtMessage
                      DisplayMessage "SMS received from: " & sSender
                      DisplayMessage "Content: " & sMsg
                  ' Nếu số mobile gởi SMS đến không phải là số của chúng ta --> Spam
                      If sSender <> MY_OWN_NUMBER Then
                          DisplayMessage "Invalid sender"
                          Exit Sub
                      End If
                  ' Kiểm tra lệnh bằng cách lấy 3 ký tự đầu
                      sCommand = UCase$(Left$(sMsg, 3))
                  
                      If (sCommand = "QRY") Or (sCommand = "SET") Then
                  ' Do thanh ghi (register) DATA  của LPT mặc định ở chế độ out, nên để in ta phải enable bit thứ 5 của thanh ghi CONTROL 
                  ' Trước tiên đọc thanh ghi CONTROL vào biến reg. Hàm Inp được định nghĩa trong module modPublic ở trên
                          reg = Inp(CONTROL_PORT)
                  ' Sau đó bật bit thứ 5 lên bằng cách OR biến reg với 32 (=2^5)
                          reg = reg Or 32
                  ' Ghi lai CONTROL bằng hàm Out đã định nghĩa trong modPublic
                          Out CONTROL_PORT, reg
                  ' Bây giờ đọc thanh ghi DATA vào
                          reg = Inp(DATA_PORT)
                  ' Kiểm tra trạng thái của từng thiết bị bằng cách kiểm tra bit 
                          For i = 1 To 8
                              pin(i) = reg And pow(2, i - 1)
                          Next i
                  ' Nếu là lệnh query tình trạng thiết bị
                          If sCommand = "QRY" Then
                  ' Kiểm tra bit 0 để biết trạng thái của thiết bị DEN1
                              sMgs = "DEN1: "
                              sMsg = sMsg & IIf((pin(1)) = 0, "OFF", "ON")
                  ' Kiểm tra bit 1 để biết trạng thái của thiết bị DEN2
                              sMsg = sMsg & vbCr & "DEN2: "
                              sMsg = sMsg & IIf((pin(2)) = 0, "OFF", "ON")
                  ' Tiếp tục kiểm tra   
                              sMsg = sMsg & vbCr & "DEN3: "
                              sMsg = sMsg & IIf((pin(3)) = 0, "OFF", "ON")
                  ' Tiếp tục kiểm tra   
                              sMsg = sMsg & vbCr & "DEN4: "
                              sMsg = sMsg & IIf((pin(4)) = 0, "OFF", "ON")
                  ' Tiếp tục kiểm tra   
                              sMsg = sMsg & vbCr & "MAYLANH: "
                              sMsg = sMsg & IIf((pin(5)) = 0, "OFF", "ON")
                  ' Tiếp tục kiểm tra   
                              sMsg = sMsg & vbCr & "TIVI: "
                              sMsg = sMsg & IIf((pin(6)) = 0, "OFF", "ON")
                  ' Tiếp tục kiểm tra   
                              sMsg = sMsg & vbCr & "QUAT1: "
                              sMsg = sMsg & IIf((pin(7)) = 0, "OFF", "ON")
                  ' Tiếp tục kiểm tra   
                              sMsg = sMsg & vbCr & "QUAT2: "
                              sMsg = sMsg & IIf((pin(8)) = 0, "OFF", "ON")
                              
                  ' Hiển thị ra txtMessage xem có đúng không?
                              DisplayMessage sMsg
                  ' Bây giờ sẽ gởi tình trạng thiết bị bằng SMS ngược lại cho chúng ta bằng hàm SendSMS sẽ viết sau
                              SendSMS MY_OWN_NUMBER, pSMS.SCAddress, sMsg
                          Else
                  ' Lệnh điều khiển thiết bị 
                  
                  ' Tìm khoảng trắng cách giữa lệnh SET và tham số
                              i = InStr(1, sMsg, " ")
                  ' Chiều dài toàn bộ chuỗi lệnh
                              nMsgLen = Len(sMsg)
                  ' Nếu thấy khoảng trắng và nằm ở vị trí nhỏ hơn chiều dài chuỗi
                              If (i > 0) And (i < nMsgLen) Then
                  ' Bỏ đi chuỗi SET và khoảng trắng để lấy chuỗi tham số còn lại
                                  sMsg = Mid$(sMsg, i + 1, nMsgLen - i)
                                  For i = 1 To Min(nMsgLen, 8)
                  ' Lấy ký tự điều khiển của thiết bị (0: Tắt, 1: Mở, *: Bỏ qua)
                                      c = Mid$(sMsg, i, 1)
                                      If c = "1" Then
                                          pin(i) = 1
                                      ElseIf c = "0" Then
                                          pin(i) = 0
                                      End If
                                  Next i
                  ' Tính giá trị của thanh ghi bằng cách bật các bit tương ứng với thiết bị 
                                  reg = 0
                                  For i = 1 To 8
                                      If pin(i) = 1 Then
                                          reg = reg Or pow(2, i - 1)
                                      End If
                                  Next i
                  ' Xuất lệnh điều khiển ra LPT
                                  Out DATA_PORT, reg
                              Else
                  ' Tham số không hợp lệ 
                                  DisplayMessage "Invalid paramter"
                              End If
                          End If
                      Else
                  ' Lệnh không hợp lệ (không phải là QRY hoặc SET)
                          DisplayMessage "Invalid command"
                      End If
                  End Sub
                  Hàm này dùng để gởi SMS. bxngoc chôm trong ví dụ của Nokia Nếu tin nhắn không gởi được xin vui lòng liên hệ nhà cung cấp dịch vụ (Vina, Mobile, Viettel)
                  Code:
                  Private Sub SendSMS(recipient As String, SMSCAddress As String, msg As String)
                     
                      On Error GoTo ErrorTrap
                      
                      Dim cIShortMessage As SMS3ASuiteLib.ShortMessage
                      
                      Set cIShortMessage = puSMSSuiteAdapter.CreateShortMsg
                      
                      'message
                      cIShortMessage.UserDataText = msg
                      
                      'destination
                      cIShortMessage.OtherEndAddress = recipient
                      
                      'SMSCAddress
                      cIShortMessage.SCAddress = SMSCAddress
                      
                      'send SMS
                      Call puSMSSuiteAdapter.Send(cIShortMessage)
                      
                      Exit Sub
                      
                  ErrorTrap:
                      Dim AdapterError As NmpAdapterError
                      AdapterError = puSMSSuiteAdapter.GetLastError
                      DisplayMessage "Error number " & AdapterError & " in SMS sending"   
                  End Sub
                  Last edited by bxngoc; 07-06-2006, 14:58.
                  “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


                  • #39
                    Chúng ta đã hoàn tất phần điều khiển thiết bị bằng SMS. Các bạn có thể download source code của chương trình tại http://203.162.148.211/smscontroller.zip
                    Phần sau bxngoc sẽ trình bày về video streaming để chúng ta có thể quan sát hình ảnh căn nhà thông minh từ internet bằng những thiết bị rẻ tiền như webcam.
                    “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


                    • #40
                      Chiều lang thang internet vô tình lụm được bí kíp http://www.sskteracon.com/
                      “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


                      • #41
                        Chán quá sao tôi upload file mãi không được nhỉ. Tôi có source code và mạch phần cứng để điều khiển thiết bị qua internet mà không cần phải thông qua máy tính. (được xây dựng theo kiểu web server) muốn post mạch nguyên lý lên mà không post được. Ai muốn tài liệu chi tiết thì mail cho tôi. (Đủ để các bạn tự xây dựng một ứng dụng)

                        Comment


                        • #42
                          Như đã hứa mình post tiếp bài giới thiệu về giải pháp broadcast live video lên internet để đáp ứng cho những nhu cầu quan sát từ xa đại loại như ngồi ở trên công ty muốn xem ở nhà bà xã đang chuẩn bị món gì cho cơm chiều . Mình có các giả
                          sử sau:
                          - Bạn có một PC với cấu hình CPU 1.8Ghz và RAM 256Mb trở lên. Đã cài IIS (Internet Information Server) như ở trên
                          - Bạn có một webcam hoặc TV tuner hoặc bất kỳ video capture device nào cho phép bắt hình từ ngoài vào.
                          - Bạn có một kết nối internet, tối thiểu là ADSL. Nếu bạn thử nghiệm bằng đường lease line trên công ty mà công ty có firewall thì cũng OK nếu như firewall cho phép truy cập vào (inbound) port 80.
                          - Bạn có dư thời gian hơn là tiền bạc. Bởi vì nếu co tiền thi mua IP camera cho nhanh. Nhưng mình sẽ trình bày lợi thế dùng hệ thống hay hơn IP camera sau.

                          Giải pháp mình đưa ra cho hệ thống broadcast video này là dùng phần mềm UMediaServer và ULiveServer của Unreal Streaming Technologies.
                          Why? tại vì nó hoàn toàn free cho mục đích sử dụng cá nhân và có SDK để phát triển thêm các chức năng bổ sung cho hệ thống. Unreal sever có các đặc điểm sau:
                          - Hỗ trợ các file media và live capture theo các format: AVI (DivX, XVid, any other encoding), MPEG-1, MPEG-2, MPEG-4, MPA, WMV, WMA, ASF, MP3, QuickTime.
                          - Người dùng có thể xem video bằng PC hoặc các thiết bị cầm tay (Handheld) chạy hệ điều hành Windows (2K, XP, CE, Mobile...)
                          - Có thể broadcast video và audio từ các nguồn camera kỹ thuật số, microphones, TV-tuners, webcam v.v... Live video sẽ được mã hóa bằng MPEG-4 codec và audio sẽ được mã bằng MPEG Layer-3 hoặc GSM 6.10.
                          - Có thể phát video qua các kết nối mạng Modem, Slow DSL, DSL, T1, T3, LAN. Nội dung phát có thể được record lại theo thời gian định sẵn hoặc khi phát hiện có chuyển động (motion detection).
                          - Dùng các protocols sau để phát video TCP, HTTP và RTP Multicast.
                          - Có cơ chế bảo mật. Cho phép truy cập anonymous hoặc hỏi username & password. Phân quyền truy cập theo role. (Ví dụ visitor chỉ được phép xem video capture từ phòng khách, còn husband mới được xem bedroom và kitchen). Có cơ chế logging để theo dõi các hoạt động của user.
                          - Có SDK để lập trình tùy biến và tự động hóa server.

                          Sao tớ quảng cáo cho Unreal dữ dội vậy ta. Bộ ăn tiền quảng cáo chắc. No, bởi vì tớ xài thấy quá đã.

                          Dưới đây là kiến trúc của hệ thống



                          Như theo sơ đồ thì hệ thống có thể broadcast video từ nhiều nguồn (nhiều camera) khác nhau. Bạn có thể hoảng khi thấy trên sơ đồ vẽ 3 cái server khác nhau, nhưng thực tế ta chỉ cần cài trên một PC là đủ. Giải thích sơ đồ:
                          - Live source computers sẽ chạy một phần mềm ULiveServer để capture video từ webcam, camera, TV tuner v.v..
                          - Media server sẽ chạy phần mềm UMediaServer để broadcast video lên mạng. Video có thể là live capture từ ULiveServer hoặc bất kỳ file video hay music nào trên ổ đĩa (Có thể ứng dụng cho phòng net hoặc trong LAN công ty để chia sẻ film vào music).

                          Giới thiệu sơ bộ thế. Bây giờ các bạn có thể download Unreal Media Server
                          Unreal Live Server để sẵn sàng cài đặt. Tớ đi làm điếu thuốc đã
                          Last edited by bxngoc; 11-07-2006, 14:37.
                          “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


                          • #43
                            Sau đây là các bước cài đặt và cấu hình.
                            1) Giải nén file UMediaServer.zip ra một thư mục tạm.
                            - Chạy UMediaServer.msi để cài Media Server với các thông số mặc định.
                            - Chạy UHttpProxy.msi đề cài plugin cho IIS (máy bạn phải có cài IIS trước). Cái này dùng để streaming video qua port 80 (tức là port web) nếu như mạng của bạn có firewall chặn hết các port mà chì cho ở ngoài truy cập vào webserver bên trong. Chấp nhận các thông số mặc định.
                            2) Giải nén file ULiveServer.zip ra một thư mục tạm. Chạy ULiveServer.msi để cài Live Server với các thông số mặc định.
                            3) Nếu máy tính của bạn đã gắn và cài đặt driver cho thiết bị video capture như webcam hoặc digital camera thì ta bắt đầu cấu hình cho Live Server sử dụng video capture với các bước sau:
                            - Vào chạy Live Sever Configurator trong menu Programs\Unreal Streaming. Màn hình chương trình sẽ hiện ra như sau


                            Nhắp chuột phải trên Live Sources chọn Add new media source


                            Tùy theo tên video capture device của bạn tên gì sẽ hiện ra trong list. Của tôi là NC-303. Check vào Add video channel và bấm Next.
                            Màn hình tiếp theo cho phép chọn kích thước video (frame size) và tốc độ hình (frame rate). Chọn frame size lớn thì video broadcast càng to, tốc độ hình cao thì bớt giật hình nhưng đòi hỏi bandwidth phải tốt. Tùy theo chất lượng webcam và cấu hình PC của bạn để chọn các thông số này cho hình ảnh chất lượng nhất.

                            Màn hình tiếp theo bạn chọn các transformer (dịch này gì tôi hổng biết). Đại loại là cho phép đặt logo, text vào broadcast video của bạn giống như logo HTV7, HTV9, VTV1 ở góc trái trên TV á. Thí dụ để thêm text vào ta chọn BlendText rồi bấm Config.
                            .
                            Trong ô Blend Text Config ta gõ ví dụ: bxngoc channel, chọn text color là màu đỏ, chọn Opacity là 100 để cho chữ nổi bật nhất trên nền video, vị trí là góc trái trên màn hình (Upper Left)

                            Ta có thể cho hiện thời gian ở góc phải trên của video để bà con biết đây là live video bằng cách check vào BlendTimestamp và bấm Config, chọn text màu xanh, chọn Opacity là 100 và vị trí là góc phải trên (Upper Right)

                            Bây giờ ta bấm nút Preview để xem video của chúng ta se được broadcast như thế nào

                            Bấm Next để chuyển qua màn hình cấu hình cho sound của video. Nếu ta muốn video của chúng ta broadcast kèm theo âm thanh thì chọn mục này, không thì bấm Next. Trong hình là chọn card sound của máy tính là thiết bị cung cấp âm thanh

                            Bước tiếp theo là chọn ngõ vào của sound. Bạn có thể chọn là microphone, line-in hoặc thậm chí có thể dùng một đĩa Audio CD để phát làm nhạc nền.

                            Bây giờ chọn kiểu kết nối internet của bạn để Live Server broadcast video một cách tối ưu nhất. Ví dụ bạn dùng ADSL ở nhà thì có thể chọn DSL (200/24 kbps).

                            Bước cuối cùng là đặt tên cho channel này dùng để Media Server truy cập. Nên nhớ là bạn có thể phát nhiều channel một lúc tùy theo số video capture device mà bạn gắn vào máy tính. Vị dụ bạn gắn trước cửa một cái camera, phòng khách một cái, nhà ngủ một cái và nối vào PC qua một video capture card thì bạn có thể lần lượt cấu hình thành 3 channel để phát bằng các bước trên. Vì vậy phải đặt tên cho channel. Ở đây tôi đặt tên là My home

                            Bước cuối cùng bạn chọn cho phép record lại video này hay không? Việc ghi video xảy ra khi có xảy ra sự kiện chuyển động, hoặc có tiếng động (trộm đột nhập vào nhà). Nhưng phần này đòi hỏi bạn phải lập trình các plugins detect nên chúng ta sẽ bàn sau. Bấm Finish để hoàn tất việc cấu hình một kênh phát. Màn hình của Live Server sau khi cấu hình như sau
                            Last edited by bxngoc; 11-07-2006, 13:43.
                            “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


                            • #44
                              Tiếc quá, ĐTVN không có bình chọn cho User. Nếu có em vote bác bxNgoc một phát 5 sao liền.
                              --------------------------------------------------------------
                              Bán các loại UPS Online công suất từ 1KVA đến 800 KVA và Accu cho UPS + Ôtô
                              --------------------------------------------------------------

                              Comment


                              • #45
                                Bây giờ chúng ta cấu hình Media Server. Như đã nói ở trên Live Server là để capture video, còn Media Server là để broadcast video lên mạng, video có thể là live capture từ camera, webcam hoặc là video clips trên đĩa cứng.
                                Chạy Media Server Configurator trong Start\Programs\Unreal Streaming

                                Như các bạn thấy trên hình Media Server có 2 phần là File Resources và Live broadcasts. Trong File resources cho phép bạn cấu hình để phát các video clips hoặc music như avi, wmv, mpeg, mp3 từ ổ đĩa cứng của PC. Còn Live broadcasts cho phép phát video từ Live Server. Chúng ta sẽ đi vào phần Live broadcasts.
                                Click chuột phải vào Live broadcast chọn New live broadcast.

                                Chọn Static live source và bấm OK để hiện lên cửa sổ cấu hình sau

                                Gõ vào Live broadcast alias là My home là tên của channel ta đã cấu hình bên Live Server. Live source IP address and ID là localhost và 1. Tôi giải thích thêm là chúng ta có thể cài Media Server và Live Server ở cùng một PC hoặc trên các PC khác nhau. Ở trong phạm vi dùng gia đình thì ta cần một PC là đủ. Nhưng giả sử ta có một toàn nhà cao tầng cần giám sát thì ta có thể trang bị một tầng một PC cài Live Server và các camera của tầng đó được nối vào PC đó. Cuối cùng chúng ta chỉ cần một PC để cài Media Server duy nhất để broadcast video của tất cả các tầng thông qua một kết nối internet duy nhất.
                                Chọn Unicast delivery và bỏ Multicast delivery. Multicast delivery thich hợp cho việc broadcast cho nhiều người xem một lúc như một kênh internet TV và chỉ tối ưu khi Media Server được kết nối vào internet bằng các đường T1, E1. Còn Unicast delivery thích hợp cho nhu cầu quan sát từ xa.
                                Nếu bạn chỉ muốn cho xem trong một khoảng thời gian thì chọn Limit per-user playback time và gõ số phút vào.
                                Tiếp đến là phần bảo mật. Nếu cho phép mọi người được coi video của bạn thì chọn một trong 2 mục anonymous access. Chọn internal authentication để yêu cầu người dùng phải đăng nhập trước khi coi video, lúc này phải chọn thêm là gán quyền truy cập cho user thuộc group nào Basic users, Medium users và Advanced users. Session-based authentication là để khi bạn viết một ứng dụng web có tích hợp với hệ thống này, khi người dùng login vào web rồi thì web sẽ tạo một session cho phép người dùng truy cập video bên hệ thống này (Nôm na gọi là single-login á, thay vì phải login bên web một lần, login bên Media Server một lần). Trong ví dụ này ta cho phép anonymous access. Nhấn OK để hoàn tất.
                                Last edited by bxngoc; 11-07-2006, 14:33.
                                “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