Chia sẻ học code IoT với Raspberry Pi: không khó, anh em dev phần mềm có thể làm quen rất nhanh
Duy Luân
Duy Luân
18/8/19 Bình luận: 86 Lượt xem: 15,697

Chia sẻ học code IoT với Raspberry Pi: không khó, anh em dev phần mềm có thể làm quen rất nhanh

Thảo luận trong 'Raspberry Pi và các dòng Pi' bắt đầu bởi Duy Luân, 18/8/19. Trả lời: 86, Xem: 15697.

  1. Duy Luân

    Duy Luân Không có gì!

    Tham gia:
    16/2/08
    Được thích:
    271,558
    Best Answers:
    10
    Duy Luân
    VIP
    #1 Duy Luân, 18/8/19
    Sửa lần cuối: 18/8/19
    Hôm qua trong bài Raspberry Pi dành cho ai, mình nhận thấy nhiều anh em quan tâm đến việc học hỏi, tìm hiểu phát triển các ứng dụng IoT cho doanh nghiệp của anh em hoặc chỉ đơn giản là để học cho biết. Mình chia sẻ một chút kinh nghiệm mà mình tìm hiểu được thông qua vài dự án IoT thực tế để anh em tham khảo nhé. Ở đây mình không bàn tới mấy con MCU hay cụ thể là mấy mạch Arduino tại mình thấy nó phức tạp với mình quá.

    IoT có khó không?


    Với một thằng ngoại đạo như mình (không biết gì về điện, điện tử, cơ học...) thì hồi xưa mình nhìn vào IoT như một thế giới mà mình không bao giờ rờ tới được. Gì mà dây điện rồi nối mạch rồi tụ điện các thứ.

    Nhưng khi nhu cầu về việc ghi nhận dữ liệu BẰNG MỘT CÁI MÁY TÍNH NHỎ GỌN, thì mình bắt đầu nhận thấy sự tương đồng giữa việc phát triển IoT với kĩ thuật phần mềm (là cái mình rành, ví dụ như code backend, giao diện này nọ). Bạn có thể tận dụng Raspberry Pi hoặc Orange Pi hoặc bất kì một thiết bị điện toán cỡ nhỏ nào để xây dựng ứng dụng của mình trên đó. Khi bạn cần cảm biến nào thì gắn vào Pi, lúc đó code của bạn sẽ đọc dữ liệu từ cảm biến (ví dụ: đọc nhiệt độ theo độ C), còn xử lý tiếp như thế nào là tùy bạn (gọi lên server để lưu trữ, chuyển sang một thiết bị IoT khác trong mạng để bật tắt theo điều kiện...)

    Đang tải dien_tu_omega.jpg…
    Đây cũng là một dạng máy tính nhỏ gọn chạy Linux nè, bạn không nhất thiết phải dùng tới mấy cái linh kiện điện, điện tử để làm quen. Bộ này mình mua lâu rồi mà cũng không dùng mấy, giờ chỉ yếu xài Raspberry Pi

    Việc này cũng giống y hệt như việc bạn đang có trong tay một cái máy tính, và bạn gắn thêm các thiết bị ngoại vi như chuột, bàn phím, webcam... thôi chứ chẳng khác gì cả. Mọi nguyên tắc của việc phát triển, xây dựng phần mềm đều áp dụng y chang, bạn cũng có thể connect mạng nữa do Pi có sẵn Wi-Fi và cổng LAN. Chỉ khác là chiếc Raspberry Pi và những thiết bị IoT nói chung nó nhỏ gọn hơn nhiều.

    Ở đây mình chia sẻ về Pi dưới góc độ của một công ty cần đưa IoT vào việc vận hành của mình, chứ mình không nhắm tới việc tạo ra các sản phẩm IoT để đem bán hay thiết kế ra những món đồ nhỏ gọn. Cái đó không phải là mối quan tâm của mình.

    Tóm lại, việc bạn bắt đầu xây dựng các ứng dụng IoT không hề khó, và bạn nào đang làm developer thì thậm chí còn thấy rất quen thuộc.

    Từ từ khi nhu cầu nâng cao, bạn phải dùng tới các module không có sẵn trên thị trường, thì mới phải đụng tới mấy cái điện tử, nối mạch các kiểu.

    IoT có thể phát triển bằng ngôn ngữ nào?


    Mình thấy nhiều dự án IoT được viết bằng ngôn ngữ C++, nhưng mình thì không biết gì về ngôn ngữ này. Cái mình quen thuộc là Python, JavaScript, Java... và may mắn là con Pi hỗ trợ rất tốt cho việc này. Bạn có thể dùng code Python để đọc barcode từ máy quét đưa vào, bạn có thể dùng JavaScript hoặc Python để đọc nhiệt độ từ cảm biến, hay viết hẳn thành một web server để nhận thông tin từ các thiết bị gửi về con Pi để xử lý... Tất cả đều có thể làm quen và tiếp cận rất dễ dàng nhé. Bạn không nhất thiết phải biết C++ để làm việc này.

    Sẵn tiện nếu bạn nào có làm Docker thì chạy Docker trên Pi cũng ngon lắm :D mình triển khai toàn bộ bằng Docker cho tiện quản lý, cấu hình, và tự động hóa cao.

    Đang tải 4749630_TenRen_tien_do_lam_nuoc.jpg…
    Cái giao diện này thực chất là một trang web viết bằng JavaScript, server của web chạy ngay trên con Raspberry Pi, nó xuất hình ảnh ra màn hình bằng cổng HDMI cũng có sẵn trên con Pi

    IoT có tốn kém không?


    Tùy dự án, nhưng nếu chỉ để bắt đầu với các dự án nhỏ thì không đắt, bạn có thể mua con Raspberry Pi Model 3 với giá tầm 700k-800k hoặc Orange Pi với giá từ 300k đến 800k tùy model, sau đó mua thêm mấy cái cảm biến tầm chục nghìn đến trăm nghìn là đã có thể bắt đầu học hỏi rồi.

    Mình còn nhớ dự án IoT đầu tiên của mình là đọc barcode bằng Raspberry Pi. Đầu đọc barcode có mấy loại rẻ rẻ trên thị trường tầm 800k-1 triệu (công ty có sẵn, mình lấy xài luôn, khỏi mua), con Raspberry Pi mua lại của mod @TDNC với giá chỉ 500k, vậy là đã có thể học hỏi rồi đấy :D Phần lớn thời gian của mình dành cho việc viết phần mềm (hay gọi hoa mỹ là firmware cho con IoT của mình chạy).

    Làm sao để update phần mềm của vài trăm con Pi cùng lúc?


    Cái này hay ho mình muốn chia sẻ với anh em. Bình thường máy tính của chúng ta khi cần update thì phải vào Settings này nọ, nhưng con Pi của mình sẽ được triển khai khắp cả nước với số lượng lên tới cỡ 200 máy. Mình không thể nào đi từng con để mà update, việc update từ xa từng con 1 cũng quá tốn thời gian và nhân lực.

    Mình tìm hiểu nhiều giải pháp thì thấy có một đơn vị rất hay tên là Balena.io (trước đây tên là Resin.io). Balena có một hệ điều hành tùy biến của riêng họ chạy trên con Pi, nó sẽ chạy code của bạn trong các docker container, và khi update thì có thể update cả hệ điều hành lẫn code trong container cùng lúc. Chỉ với 1 câu lệnh duy nhất, code mới nhất của bạn sẽ hiện diện trên vài trăm con Pi khắp cả nước. Nghe hay đúng không :D

    Phần này mình nói sơ vậy thôi, anh em nào có nhu cầu tương tự thì tìm hiểu thêm ở web https://www.balena.io nhé. Mình nói sâu quá sợ rối anh em mới bắt đầu tìm hiểu IoT hihi.

    balena - Home

    Infrastructure to develop, deploy, and manage connected devices at scale
    balena.io


    Anh em có câu hỏi nào thì hãy comment vào bài này nhé.
     

    File đính kèm:

    Thảo luận thêm về chủ đề này?
    #1 Duy Luân, 18/8/19
    Sửa lần cuối: 18/8/19
  2. agneskrivers

    Tham gia:
    6/5/19
    Được thích:
    66
    Best Answers:
    0
    agneskrivers
    ĐẠI BÀNG
    Đang tính mua một con pi rẻ rẻ cắm vào cái tivi ở nhà :D
     
    1. ngocan17531

      ngocan17531 Dự bị

      Tham gia:
      12/4/10
      Được thích:
      1
      Best Answers:
      0
      ngocan17531
      Trứng
      ngocan17531 mính tính chơi con chromecast 3 , nó sài ổn ko?
       
    2. romeo88vn

      Tham gia:
      9/9/11
      Được thích:
      88
      Best Answers:
      0
      romeo88vn
      ĐẠI BÀNG
      romeo88vn @agneskrivers pi chỉ để vọc chứ tốt nhất nên mua tivibox
       
    3. bEsTgAnKvN

      Tham gia:
      29/3/15
      Được thích:
      111
      Best Answers:
      0
      bEsTgAnKvN
      ĐẠI BÀNG
      bEsTgAnKvN @ngocan17531 quá ổn !
       
    4. android_bar

      Tham gia:
      18/1/10
      Được thích:
      181
      Best Answers:
      0
      android_bar
      ĐẠI BÀNG
      android_bar @ngocan17531 chromecast thì lo làm gì nữa, hàng trùm nhất rồi còn gì
       
  3. myvo138

    myvo138 Dự bị

    Tham gia:
    18/8/19
    Được thích:
    1
    Best Answers:
    0
    myvo138
    Trứng
    Là một iOS dev tự do. Thấy mod chia sẽ chủ đề IoT hay quá, muốn học để làm 1 cái gì đó. Luôn chờ đón những bài tiếp theo của mod.
    Thanks.
    MyVo
     
    Duy Luân thích nội dung này.
  4. MrMedic229

    Tham gia:
    22/6/18
    Được thích:
    1,409
    Best Answers:
    1
    MrMedic229
    CAO CẤP
    Bài viết bác Luân càng ngày càng hay, mình ủng hộ, bác cứ viết thật nhiều, chia sẻ những hiểu biết của bác về IoT và Raspberry Pi, mình cũng sẽ như bác !
     
    Trí ConstantineDuy Luân thích nội dung này.
  5. Đặng Ngọc Hải Anh

    Tham gia:
    6/8/19
    Được thích:
    1
    Best Answers:
    0
    Đặng Ngọc Hải Anh
    Trứng
    Cảm ơn bác nhiều nha ,cho em hoi muốn học code Python thì bắt đầu từ đâu ah
     
    1. TnQ NMT

      Tham gia:
      23/4/19
      Được thích:
      327
      Best Answers:
      0
      TnQ NMT
      ĐẠI BÀNG
      TnQ NMT @Tú art Bác cho em xin link khóa học được không bác :D:D e cám ơn trước
       
    2. Tú art

      Tham gia:
      11/2/13
      Được thích:
      4,220
      Best Answers:
      3
      Tú art
      CAO CẤP
      Tú art @TnQ NMT Bác lên trang edx.org, tìm CS50 là thấy. Hoàn toàn miễn phí trừ khi bác muốn mua certificate

      Mình cũng đang tự học code đây, chẳng biết sau này có xin được việc không nữa nhưng hy vọng trời không phụ người chăm chỉ :D
       
      colenao00bacsidien94 thích nội dung này.
    3. TnQ NMT

      Tham gia:
      23/4/19
      Được thích:
      327
      Best Answers:
      0
      TnQ NMT
      ĐẠI BÀNG
      TnQ NMT @Tú art Cám ơn bác :D:D mình thì công ăn việc làm oke rồi, chẳng qua rảnh nhiều nên muốn học thôi
       
    4. Đặng Ngọc Hải Anh

      Tham gia:
      6/8/19
      Được thích:
      1
      Best Answers:
      0
      Đặng Ngọc Hải Anh
      Trứng
      Đặng Ngọc Hải Anh @TnQ NMT Mình ở TPHCM ban ơi , bạn ở đâu ?
       
  6. thienlong032

    Tham gia:
    21/10/11
    Được thích:
    15
    Best Answers:
    0
  7. apolong

    Tham gia:
    2/9/09
    Được thích:
    542
    Best Answers:
    0
    apolong
    TÍCH CỰC
    Sắp tới em tính mở Showroom chuyên về Smart Home và Điện Mặt Trời, Có bác nào quan tâm ko nè
     
    1. tuan13a1

      Tham gia:
      26/9/08
      Được thích:
      60
      Best Answers:
      0
      tuan13a1
      ĐẠI BÀNG
      tuan13a1 @apolong Ko luôn nè :D
       
      apolong thích nội dung này.
    2. kstn_hut_hat

      Tham gia:
      2/3/12
      Được thích:
      1,087
      Best Answers:
      4
      kstn_hut_hat
      TÍCH CỰC
      kstn_hut_hat @apolong Có cần freelancer ko bác :D
       
    3. ho xuan phu

      Tham gia:
      29/7/15
      Được thích:
      325
      Best Answers:
      0
      ho xuan phu
      TÍCH CỰC
      ho xuan phu @apolong có sản phẩm gì nổi bật mới khiến người ta quan tâm chứ
       
    4. chimanhvu

      Tham gia:
      28/5/12
      Được thích:
      27
      Best Answers:
      0
      chimanhvu
      ĐẠI BÀNG
      chimanhvu @apolong Hay đấy, cho mình ké vào học hỏi và hợp tác với
       
  8. Duong_Act

    Tham gia:
    14/10/13
    Được thích:
    1,203
    Best Answers:
    0
    Duong_Act
    TÍCH CỰC
    Mình đang cần viết App C++ trên môi trường QT Linux Desktop rồi post sang Pi mà mãi chưa được.
    Bác nào làm rồi xin chỉ giáo :)
     
    1. JohnSirius

      Tham gia:
      27/2/17
      Được thích:
      38
      Best Answers:
      0
      JohnSirius
      ĐẠI BÀNG
      JohnSirius @Duong_Act Quá đơn giản.
      Bạn SSH vào pi rồi chạy:
      sudo chown -R pi: pi /opt (bỏ dấu cách chỗ pi-pi)
      sudo chmod -R 775 /opt
      Sau đó vẫn dùng opt chứ không chuyển đi đâu.
       
      Duong_Act thích nội dung này.
    2. Duong_Act

      Tham gia:
      14/10/13
      Được thích:
      1,203
      Best Answers:
      0
      Duong_Act
      TÍCH CỰC
      #85 Duong_Act, 25/8/19
      Sửa lần cuối: 25/8/19
      Duong_Act @JohnSirius Chào bác !
      Làm theo cách bác chỉ nó đã OK nhưng mà nó hiện lỗi mới liên quan đến plugin:
      Code:
      09:54:07: Starting /opt/HelloWorld/bin/HelloWorld ...
      qt.qpa.plugin: Could not find the Qt platform plugin "eglfs" in ""
      This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
      Available platform plugins are: linuxfb, minimal, offscreen, vnc, webgl, xcb.
      09:54:07: Remote process crashed.
      
      Và nó lại không có các thư viện chuẩn string, iostream...

      Em phải vnc vào pi rồi double click để chạy thử cực quá. Bác có giải pháp xin chỉ giáo em với.
       
      #85 Duong_Act, 25/8/19
      Sửa lần cuối: 25/8/19
    3. JohnSirius

      Tham gia:
      27/2/17
      Được thích:
      38
      Best Answers:
      0
      JohnSirius
      ĐẠI BÀNG
      JohnSirius @Duong_Act Cái này do bước thay thế ở file qmake.conf trước khi biên dịch. Bạn cần xóa tất cả và làm lại, phải đảm bảo replace
      -lEGL = -LGLESv2
      -lbrcmEGL = -lbrcmGLESv2
       
      Duong_Act thích nội dung này.
    4. Duong_Act

      Tham gia:
      14/10/13
      Được thích:
      1,203
      Best Answers:
      0
      Duong_Act
      TÍCH CỰC
      Duong_Act @JohnSirius Cảm ơn bác !
      Để tối về em thử lại.

      Còn vụ nó chỉ include được các header của QT còn các header thư viện chuẩn nó không thể tìm thấy.
      Em có kiểm tra trên Pi thì thư viện chuẩn nằm trong /usr/local/include/c++/8 và đồng bộ rsync rồi.
      Trên PC tìm trong raspi/sysroot/usr/local/include/c++/8 cũng có.
      Nếu thêm INCLUDEPATH=home/username/raspi/sysroot/usr/local/include/c++/8 vào QT thì include được nhưng báo rất nhiều lỗi liên quan đến các flag, define.
      Nhờ bác giúp em với @@.
       
  9. Truong.ld

    Tham gia:
    12/3/17
    Được thích:
    274
    Best Answers:
    0
    Truong.ld
    TÍCH CỰC
    Mod lập link trên google drive cho a e dễ chơi,
     
    1. don cho

      don cho Dự bị

      Tham gia:
      16/12/18
      Được thích:
      1
      Best Answers:
      0
      don cho
      Trứng
      don cho @Truong.ld Chính xác
       
  10. Kieuphongpr

    Tham gia:
    28/11/18
    Được thích:
    29
    Best Answers:
    0
  11. quy.helios

    Tham gia:
    2/8/16
    Được thích:
    94
    Best Answers:
    0
  12. minhtamnguyen

    Tham gia:
    9/1/09
    Được thích:
    35
    Best Answers:
    0
    minhtamnguyen
    ĐẠI BÀNG
    Xin chỗ mua và xin lập nhóm cùng chơi thì quá hay
     
    1. kstn_hut_hat

      Tham gia:
      2/3/12
      Được thích:
      1,087
      Best Answers:
      4
  13. Ruiz

    Tham gia:
    26/1/10
    Được thích:
    1,954
    Best Answers:
    6
    Ruiz
    CAO CẤP
    Đang tính làm 1 con Pi4 cắm vào tivi cho ba ổng coi fim thay cái đầu HD player 10 năm tuổi

    Nhân tiện @Duy Luân: mua Pi ở chổ nào êm?
     
    bo_beoxxl thích nội dung này.
    1. Duy Luân

      Duy Luân Không có gì!

      Tham gia:
      16/2/08
      Được thích:
      271,558
      Best Answers:
      10
      Duy Luân
      VIP
      Duy Luân @Ruiz Mình mua ở Proe.vn, mua deploy luôn :))
       
      bo_beoxxl thích nội dung này.
    2. Ruiz

      Tham gia:
      26/1/10
      Được thích:
      1,954
      Best Answers:
      6
      Ruiz
      CAO CẤP
      Ruiz @Duy Luân Ờ,xin cám ơn :D
       
  14. thienduc1012

    Tham gia:
    10/9/07
    Được thích:
    81
    Best Answers:
    0
    thienduc1012
    ĐẠI BÀNG
    Hồi trc có setup nguyên cái ubuntu server trên pi3. Set-up thành 1 server chạy web (lemp stack), tạo host-spot, các thiết bị khác kết nối vào truy cập như 1 mạng internet local, độc lập, portable-server.
     
  15. asuwa

    Tham gia:
    7/1/13
    Được thích:
    163
    Best Answers:
    0
    asuwa
    ĐẠI BÀNG
    Bác Luân có nhận đồ đệ ko, e khăn gói quả mướp theo ạ.
     
  16. vvnieu

    vvnieu Dự bị

    Tham gia:
    17/5/11
    Được thích:
    2
    Best Answers:
    0
    vvnieu
    Trứng
    sao hay vậy ta, mình đặt mua tuần trước :D,
    Thích thể loại này lắm.
     
  17. gietchetad

    Tham gia:
    7/7/18
    Được thích:
    381
    Best Answers:
    0
    gietchetad
    TÍCH CỰC
    C++ thì mình mù, do ko có tài liệu nhiều như mấy cái khác. Nhưng python, java, javascript thì dễ thở rồi :D
     
    1. ho xuan phu

      Tham gia:
      29/7/15
      Được thích:
      325
      Best Answers:
      0
      ho xuan phu
      TÍCH CỰC
      ho xuan phu @Duy Luân mấy ngôn ngữ kia rõ ràng là ngon hơn C/C++ về các khoản khác nhưng khoản code nhúng thì C/C++ vẫn bá. nếu code ngon các ngôn ngữ khác, code ngon nhúng, có kiến thức tốt về điện tử thì việc tự tạo cho mình 1 hệ thống IoT mang đặc trưng riêng mình là 1 chuyện dễ dàng, lúc đó cảm thấy phê lắm, búng tay là có thể tùy chỉnh, búng tay là có thể update, upgrade, liếc mắt là biết nó lỗi chỗ nào :) .
       
    2. bo_beoxxl

      Tham gia:
      14/7/09
      Được thích:
      45
      Best Answers:
      0
      bo_beoxxl
      ĐẠI BÀNG
      bo_beoxxl @gietchetad Kiêu gì cũng phải đi học thêm C++ rồi
       
    3. gietchetad

      Tham gia:
      7/7/18
      Được thích:
      381
      Best Answers:
      0
      gietchetad
      TÍCH CỰC
      gietchetad @bo_beoxxl Mình cũng đang cố học đây. Nhưng cỏ vẻ nó khó hơn mấy cái khác nhiều
       
      bo_beoxxl thích nội dung này.
    4. ho xuan phu

      Tham gia:
      29/7/15
      Được thích:
      325
      Best Answers:
      0
      ho xuan phu
      TÍCH CỰC
      ho xuan phu @gietchetad C/C++ nó ra đời trước các ngôn ngữ khác nhiều năm, nó được xếp vào ngôn ngữ bậc trung và gần với ngôn ngữ máy cho nên khó hơn hẳn các ngôn ngữ bậc cao khác. vì thế nên nó là lựa chọn hàng đầu cho các phần mềm hệ thống, các firmware chạy trực tiếp trên phần cứng, chỉ cần bút và giấy là ta có thể chuyển 1 đoạn code C ra được ngôn ngữ máy là mã nhị phân là biết mức độ gần gủi của nó rồi.
       
  18. [ß]ui_ðoi™

    Tham gia:
    4/8/12
    Được thích:
    109
    Best Answers:
    0
    [ß]ui_ðoi™
    ĐẠI BÀNG
    Mình cũng sẽ theo dõi cái này để sau tự cấu hình nhà thông minh.
    Duy Luân tiếp tục viết nhé : )))
     
    bo_beoxxl thích nội dung này.
  19. sunger

    Tham gia:
    13/8/08
    Được thích:
    25
    Best Answers:
    0
    sunger
    ĐẠI BÀNG
    Chưa có dự an nào hay ho để làm cả.
     
Đang tải...