Git dành cho người mới bắt đầu (phần 1).

Git là gì ?

Trước khi bắt đầu với git, chúng ta sẽ cùng nhau tìm hiểu về khái niệm hệ thống quản lí phiên bản (Version Control System).
Version Control System (VCS) là hệ thống nhằm quản lí những thay đổi của 1 số tập tin theo thời gian. Ngoài việc cho phép bạn khôi phục lại trạng thái trước đó của những tập tin đã thay đổi, nó còn cung cấp những thông tin về thời gian thực hiện chỉnh sửa, nội dung cũng như người chỉnh sửa. Việc sử dụng một VCS (Version Control System) cũng mang lại 1 lợi ích to lớn đó là trong một số trường hợp, vì 1 lí do nào đó nếu bạn mất các tập tin thì bạn có thể dễ dàng phục hồi phục nó.
what is git

Truyền, nhận dữ liệu giữa 2 chip esp8266

Một chủ đề khá hấp dẫn là làm sao để 2 esp8266 nói chuyện với nhau (truyền-nhận dữ liệu giữa 2 esp8266) mà không cần thông qua Access Point nào.
Trước tiên, bạn cần biết esp8266 là gì? làm thế nào để sự dụng nó thì trang web https://arduino.esp8266.vn là 1 sự lựa chọn hoàn hảo. Hãy tìm hiểu về nó. Việc kết nối với 2 esp8266 (hoặc nhiều hơn) thực sự không khó, bạn chỉ cần đọc tài liệu để hiểu các chế độ làm việc của esp8266, có kiến thức về C và tìm hiểu các thư viện arduino.

Ứng dụng nào trong thực tế ?. Chúng ta hãy xem một nông dân công nghệ, ông ta trồng rau trên cánh đồng rộng khoảng 5km2, điều đáng nói là ông ta tạo ra một hệ thống giám sát và điều khiển nhiệt độ, độ ẩm dùng WIFI bằng cách kết nối các module esp8266 mà không sử dụng bất kì sợi dây nào (tất nhiên phải có 1 số dây nối với cảm biến 🙂 )

Làm thế nào ?. Ông ta chia khu vực 5km2 này thành 4 khu đất nhỏ hơn, ở mỗi khu ông ấy dùng 9 esp8266 kết nối với nhau. Tại khu vực trung tâm sẽ đặt 1 center-box gồm 1 module esp8266, 1 board arduino NANO và 1 module GPRS 3G tương thích với arduino. Ở mỗi phần, ông sắp xếp các esp8266 theo hình thức kết hợp giữa dạng mesh và dạng star , trong đó 6 esp8266 là các clients để đọc dữ liệu từ môi trường, 3 esp8266 còn lại giống như bộ phận trung gian để truyền-nhận dữ liệu. Mô hình kết nối như hình dưới (kiến thức về mạng Wireless Infrastructure and Topologies có thể tham khảo tại đây

6 esp8266 đọc dữ liệu chủ yếu ở chế độ DEEP-SLEEP, chỉ wake-up khoảng 1h trong ngày đề đọc dữ liệu nhằm tiết kiệm năng lượng. 3 esp8266 trung gian vận hành ở 2 chế độ, chế độ AP (access point: tạo kết nối để những esp8266 client  truy cập, truyền và nhận dữ liệu với nhau) và chế độ ST (Station mode: chế độ này nó như  1 client và kết nối đến AP tiếp theo).

GPIO với raspberry

Giới thiệu

Raspberry Pi được hiểu như một máy tính với với các cổng HDMI, chuột, bàn phím, ngõ vào camera, kết nối internet và chạy bằng hệ điều hành Linux. Nhưng Raspberry Pi nhiều tính năng hơn 1 máy tính nhỏ vì nó là một công cụ cho phép tạo các dự án phần cứng nhanh chóng. Pi có bi-derectional I/O pins (sử dụng như input và output), cho việc PWM , uart , spi … nhằm phục vụ cho các dự án phần cứng của bạn. Bài hướng dẫn này dùng cho Raspberry Pi phiên bản B, B+ và phiên bản mới Raspberry Pi 2 model B. Hình ảnh về Pi Wedge model B tham khảo hình bên dưới:

Việc điều khiển ngõ ra vào của Raspberry Pi yêu cầu bạn phải biết một ít kiến thức về lập trình. Có nhiều ngôn ngữ cho bạn, chúng tôi đã so sánh và nhận thấy có 2 lựa chọn tối ưu, dễ điều khiển GPIO là Python và C language. Nếu bạn chưa từng điều khiển LED hoặc đọc tín hiệu nút nhấn bằng cách dùng Raspberry Pi thì bài hướng dẫn này sẽ giúp bạn bắt đầu.

ESP8266 mac scan

Chip ESP8266 là chip WiFi giá rẻ có nhiều tính năng hữu dụng, một trong những tính năng đó là lắng nghe

Ngày nay đa số mọi người đều có smartphone, dĩ nhiên là phải có WiFi, các smartphone này thường phải scan liên tục để tìm mạng Wifi hiện hữu, hoặc trao đổi dữ liệu với các AP đã kết nối. Tất cả các thao tác trên đều phát ra địa chỉ MAC (duy nhất) của điện thoại.

Như vậy là bạn đã có thể hình dung được, nếu ESP8266 có thể lắng nghe bất kỳ gói tin nào thì nó cũng có thể phát hiện bất kỳ thiết bị hỗ trợ WiFi nào ở gần.

Môi trường phát triển ứng dụng cho Raspberry Pi trên OS X

Tổng quan

Hiện tại Raspberry PI đã ra phiên bản 3, với nhiều tính năng vượt trội, đặc biệt là đã tích hợp Wifi + BLE trong khi giá vẫn không đổi. Chính sự thay đổi này đã làm giá của RPI giảm đi rất nhiều, bởi vì trước đây việc sử dụng RPI bắt buộc phải mua thêm 1 cái USB Wifi là khó tránh khỏi.

Nhưng, việc xây dựng môi trường lập trình ứng dụng trên RPI không phải là đơn giản, nếu bạn không có 1 cái màn hình hỗ trợ HDMI và không có luôn 1 cái cổng Mạng (Macbook giờ mất luôn cái cổng huyền thoại này :cry:) thì đảm bảo là không thể luôn.

Bài viết này sẽ giúp bạn dễ dàng để xây dựng một môi trường lập trình hoàn hảo với 1 máy tính kết nối Wifi và 1 con RPI hỗ trợ Wifi. Không cần Monitor HDMI, không cần cáp mạng

alt text

Mô hình sử dụng Git Branches hiệu quả

Mở đầu

Ngay bây giờ, tôi sẽ giới thiệu với các bạn mô hình sử dụng Git mà tôi đã và đang sử dụng trong các dự án khoảng một năm trở lại đây. Đó là một mô hình thực sự thành công, nhưng mãi đến giờ tôi mới có cơ hội để có thể viết về nó và chia sẻ với các bạn. Tôi sẽ không đi vào chi tiết dự án, mà chỉ xoay quanh chiến lược quản lý các phân nhánh mà thôi.

Học lập trình hiệu quả

Trong bài viết dưới đây, tôi sử dụng Git để quản lý version cho toàn bộ source code. Nếu các bạn có hứng thú với việc phân tích dữ liệu thời gian thực dựa vào hoạt động trên Git, có thể tham khảo phần mềm mà GitPrime mà công ty tôi phát triển.

Tìm hiểu về giao thức MQTT

MQTT (Message Queuing Telemetry Transport) là một giao thức gởi dạng publish/subscribe sử dụng cho các thiết bị Internet of Things với băng thông thấp, độ tin cậy cao và khả năng được sử dụng trong mạng lưới không ổn định.

Bởi vì giao thức này sử dụng băng thông thấp trong môi trường có độ trễ cao nên nó là một giao thức lý tưởng cho các ứng dụng M2M

MQTT cũng là giao thức sử dụng trong Facebook Messager

Và MQTT là gì? Để có một cái nhìn toàn diện hoặc định nghĩa chi tiết, chỉ cần google “what is mqtt”, “mqtt slides” … Trong bài viết này chúng ta chỉ nói ngắn gọn thôi, đủ để hiểu giao thức MQTT, bao gồm các định nghĩa “subscribe”, “publish”, “qos”, “retain”, “last will and testament (lwt)” – Và chỉ dành cho những ai đang muốn tìm hiểu về MQTT, không thì đọc toàn chữ thôi, mỏi mắt lắm.

Phần cứng fast prototype cho IoTs

Giới thiệu

  • Bài viết này nhằm mục đích giới thiệu về IoT (Internet Of Things), các phần cứng, platform hỗ trợ
  • Những ưu điểm của vượt trội của các platform dùng LUA, Javascript, Python và C/C++ cho MCU

Nội dung

Trong giai đoạn phát triển như vũ bão về kỹ thuật điện tử và máy tính hiện nay, phần cứng ngày càng mạnh mẽ và rẻ hơn. Đặc biệt là các thiết bị với khả năng kết nối Internet và đảm nhận các công việc tự động hóa cho con người. Thì việc lập trình cho thiết bị, cho máy tính trở nên ngày càng quen thuộc hơn với nhiều người.

Thuật ngữ IoTs (Internet Of Things) ngày càng phổ biến cùng với các ứng dụng rộng rãi của nó với xã hội. Và một điều không thể phủ nhận là “miếng bánh” IoTs cực kỳ lớn mà không có nhà sản xuất hay công ty nào có thể ôm hết. Thị phần của nó phát triển theo cấp số nhân và được dự báo bởi những tổ chức uy tín hàng đầu thế giới: