Đỉnh NGUYỄN

life's a journey not a destination


Leave a comment

Lịch trình phược đảo ngọc Phú Quốc


Giới thiệu

Phú Quốc được mệnh danh là đảo ngọc, là hòn đảo lớn nhất của Việt Nam, nằm trong vịnh Thái Lan. Đảo Phú Quốc cùng với các đảo khác tạo thành huyện đảo Phú Quốc thuộc tỉnh Kiên Giang. Toàn bộ đảo có diện tích 589,23km2. Thị trấn Dương Đông ở phía Tây Bắc là thủ phủ của huyện đảo. Phú Quốc nằm cách Rạch Giá 120 km và cách Hà Tiên 45 km. Năm 2006, khu dự trữ sinh quyển ven biển và biển đảo Kiên Giang, gồm cả huyện đảo Phú Quốc, được UNESCO công nhận là khu dự trữ sinh quyển của thế giới.

Thời gian: 3 ngày 2 đêm

Phương tiện:

– Xe Phương Trang từ TP.HCM đi Rạch Giá (cách Phú Quốc 120km) hoặc Hà Tiên (cách Phú Quốc 45km). Thời gian đi xem khoảng 6 tiếng.

– Tàu cao tốc từ Rạch Giá hoặc Hà Tiên đến Phú Quốc. Thời gian đi tàu khoảng 3 tiếng.

Lịch trình

Ngày 1: TP. HCM – Phú Quốc – Hành trình phía Bắc đảo

TP. HCM – Rạch Giá

21h30 tối: ra bến xe Miền Tây đón xe đi Rạch Giá. Xe xuất bến lúc 23h đêm để khi đến nơi khoảng 6h sáng.

Ra bến tàu ăn uống, café rồi mua vé tàu cao tốc đi Phú Quốc.

Rạch Giá – Phú Quốc

8h sáng: đi tàu cao tốc ra Phú Quốc. Sau khi tàu cập bến liên hệ nhận phòng khách sạn và thuê xe máy.

11h sáng: ăn trưa trên đường Hùng Vương. Sau đó lần lượt khám phá các điểm:

– Vườn tiêu Khu tượng

– Khu bảo tồn sinh thái Gành Dầu – mũi Gành Dầu: tản bộ và khám phá rừng nguyên sinh, ngắm hải giới Campuchia và trải nghiệm cuộc sống giản dị của ngư dân địa phương.

– Lặn ngắm san hô Bãi Dài (nếu muốn và chi phí không quá đắt)

– Chụp ảnh hoàng hôn tại Bãi Dài (nếu mỏi chân và không muốn ghé các điểm bên dưới)

– Khu du lịch Carole

– Vũng Bầu

– Thăm cơ sở chế biến nước nắm Khải Hoàn – đường Hùng Vương.

8h tối: khám phá ẩm thực tại chợ đêm Dinh Cậu và cuộc sống về đêm tại khu phố Tây trên đường Trần Hưng Đạo gần khu resort Thiên Hải Sơn.

Ngày 2: Hành trình phía Nam đảo

7h sáng: theo đường 30/4 đi về phía Đông thăm: chùa Sư Muôn, suối Tranh, Hàm Ninh (ăn ghẹ, ốc, tôm), cảng Bãi Vòng, Bãi Sao, nhà tù Phú Quốc, bãi Khem (ăn các món cá nướng), chợ An Thới, bãi Trường (khu nuôi ngọc trai), bảo tàng Cội Nguồn, đường Trần Hưng Đạo, về trung tâm thăm cơ sở rượu sim của bác Bảy Giáo (trên đường 30/4 gần bệnh viện Phú Quốc).

7h tối: trải nghiệm cảm giá câu mực đêm rất thú vị

Ngày 3: Thị trấn Dương Đông

6h sáng: đi chợ Đông Dương xem cảnh chợ sáng sớm và mua vài thứ làm quà. Ăn sáng tại đây.

9h sáng: hành trình hồ Dương Đông – suối Đá Bàn. Ăn trưa trên suối.

12h trưa: về khách sạn trả phòng và ra Bãi Vòng về lại Rạch Giá hoặc Hà Tiên chuyến tàu 2h chiều.

9h30 tối: đón xe về lại TP. HCM

Chi phí

Vé xe TP.HCM – Rạch Giá (khứ hồi): 250,000đ/người

Vé tàu Rạch Giá – Phú Quốc (khứ hồi): 640,000đ/người

Thuê xe máy trên đảo: 120,000đ/xe. Xăng tự đổ

Ăn sáng (2 bữa trên đảo + 1 bữa ở Rạch Giá): 120,000đ/người

Ăn chính (4 bữa trên đảo + rượu sim): 350,000đ/người

Khách sạn trên đảo (2 đêm): 300,000đ/người

Tổng cộng: 2,000,000 – 2,500,000đ/người

Xe khách TP.HCM – Kiên Giang

Phương Trang

– Lịch trình : Sài Gòn – Rạch Giá

– Giờ xuất bến : Bến xe miền Tây từ 1h đến 23h45 Rạch Giá từ 1h đến 24h

– Điện thoại : 08 38309309 – 077 3691691

Mai Linh

– Lịch trình : Sài Gòn – Rạch Giá

– Giờ xuất bến : 8h – 11h, 13h – 16h, 21h – 23h

– Điện thoại : 08 39393939

Các tuyến xe buýt nội tỉnh ở Kiên Giang

– Tuyến 01 : Rạch Giá – Tắc Cậu

o Nguyễn Bĩnh Khiêm – Trần Phú – Trần Hưng Đạo – Nguyễn Trung Trực – Quốc lộ 61 – Quốc lộ 63

– Tuyến 02 : Rạch Giá – Thạnh An

o Nguyễn Bĩnh Khiêm – Trần Phú – Trần Hưng Đạo – Nguyễn Trung Trực – Quốc lộ 80

– Tuyến 03 : Rạch Giá – Giồng Riềng

o Nguyễn Bĩnh Khiêm – Trần Phú – Ngô Quyền – Nguyễn Văn Cừ – Nguyễn Trung Trực – Quốc lộ 61 – Tỉnh lộ Bến Nhứt, Giồng Riềng

– Tuyến 04 : Rạch Giá – Hòn Đất

o Nguyễn Bĩnh Khiêm – Quốc lộ 80

Tàu cao tốc Kiên Giang – Phú Quốc

Để đến phú quốc có thể đi bằng máy bay hoặc tàu cao tốc. Nếu muốn mang xe máy hoặc ô tô thì có thể đi phà cao tốc từ Hà Tiên.

clip_image001[6]

Phà cao tốc Thạnh Thới

clip_image002[6]

Tàu cao tốc Superdong

clip_image003[6]

Tàu cao tốc Savanna

Tuyến Rạch Giá – Phú Quốc

Thời gian trung bình: 2h45’

1. Tàu SuperDong III

– Giờ xuất bến : Rạch Giá 8h00 Cảng Bãi Vòng (Phú Quốc) 13h00

– Điện thoại : 077 3877742

2. Tàu SuperDong II

– Giờ xuất bến : Rạch Giá 13h00 Cảng Bãi Vòng 8h00

– Điện thoại : 077 3877742

3. Tàu SuperDong II

– Giờ xuất bến : Rạch Giá 13h30 Cảng Bãi Vòng 8h30

– Điện thoại : 077 3877742

4.Tàu VinaShinRose

– Giờ xuất bến : Rạch Giá 13h10 Cảng Bãi Vòng 8h10

– Điện thoại : 077 6255188

5.Tàu Savanna

– Giờ xuất bến : Rạch Giá 08h05 Cảng Bãi Vòng 13h05

– Điện thoại : 077 3692888

Tuyến Hà Tiên – Phú Quốc

Thời gian trung bình: 1h30’ (riêng tàu THRIVING01 của Thạnh Thới có thời gian đi là 2h30’)

1.Tàu CaShin-01

– Giờ xuất bến : Hà Tiên 08h00 Bãi Vòng 13h15

– Điện thoại : 077 3959060

2.Tàu Hồng Tâm (Hàm Ninh)

– Giờ xuất bến : Hà Tiên 13h15 Hàm Ninh 08h30

– Điện thoại : 077 3700974

3.Tàu THRIVING 01 (Đá Chồng)

– Giờ xuất bến : Hà Tiên 9h30 Đá Chồng 14h30

– Điện thoại : 077 3957239

Một số lưu ý quan trọng:

Lịch tàu hoạt động trên phụ thuộc và điều kiện thời tiết vùng biển Kiên Giang được dự báo trên sóng phát thanh của Đài tiếng nói nhân dân thành phố Hồ Chí Minh vào lúc 06h00 hàng ngày và cụ thể như sau

– Trường hợp gió từ cấp 5 trở lại: các tàu hoạt động theo lịch bình thường.

– Trường hợp gió giật trên cấp 6: tàu hoạt động tuyến Rạch Giá – Phú Quốc; Hà Tiên – Phú Quốc

– Trường hợp gió từ cấp 7 trở lên: các tàu ngưng hoạt động.

Để có thông tin kịp thời quý khách liên hệ Ban điều hành Cảng Rạch Giá, Ban quản lý bến xe tàu Hà Tiên và Ban điều hành bến xe tàu Kiên Lương:

– Điện thoại: 077 3863242 (Ban Điều hành cảng Rạch Giá).

– Điện thoại: 077 3851414 (Ban Quản lý bến xe tàu Hà Tiên).

Phương tiện đi lại trên đảo Phú Quốc

Trên đảo, có thể di chuyển đến các địa điểm tham quan bằng taxi, xe máy, xe đạp. Taxi trên đảo có 3 hãng đang khai thác: Sasco Sasco (077 3767676) Mai Linh (077 3979797) và Hoàng Long (077 3988988). Tuy nhiên, để khám phá hết vẻ đẹp của đảo và chi phí không quá cao thì nên thuê xe máy (giá taxi khoảng 17k/1km), giá xe máy dao động 150,000đ/1xe/1 ngày, xăng xe tự đổ.

Có thể liên hệ trước với các địa điểm thuê xe máy ở Phú Quốc để xem có gần khu vực đang ở hay không hoặc có thể yêu cầu giao xe tận nơi (trong phạm vi thị trấn Dương Đông).

Cửa hàng Bé Ba

– Địa chỉ : 118/6 Trần Hưng Đạo, Thị trấn Dương Đông, Phú Quốc

– Điện thoại : 0939 009970 – 0949 457094

Khách sạn Thanh Hải

– Địa chỉ : 118/2 Trần Hưng Đạo, Thị trấn Dương Đông, Phú Quốc

– Điện thoại : 0918 214624 – 077 3847842

Cửa hàng thuê xe máy 62 Trần Hưng Đạo

– Địa chỉ : 62A Trần Hưng Đạo

– Điện thoại : 077 3994920

Cửa hàng thuê xe máy Anh Thanh

– Điện thoại : 0918579218

– Địa chỉ : Thị trấn Dương Đông, Phú Quốc

Cửa hàng thuê xe máy Anh Minh

– Điện thoại : 0983846982

– Địa chỉ : Thị trấn Dương Đông, Phú Quốc

Cửa hàng thuê xe máy Anh Đức

– Điện thoại : 0985034111

– Địa chỉ : Thị trấn Dương Đông, Phú Quốc

Cửa hàng thuê xe máy Anh Huy

– Điện thoại : 01688880608

– Địa chỉ : Thị trấn Dương Đông, Phú Quốc

Cửa hàng thuê xe máy Anh Chánh

– Điện thoại : 0918 072661

– Địa chỉ : Thị trấn Dương Đông, Phú Quốc

Cửa hàng thuê xe máy Nguyễn Hồng Châu

– Điện thoại : 0915 857015 – 0932 009424

– Địa chỉ : Thị trấn Dương Đông, Phú Quốc

Thuê xe máy

– Điện thoại : 01255 808118

– Địa chỉ : Thị trấn Dương Đông, Phú Quốc

Ngoài ra các bạn có thể thuê trực tiếp xe máy tại khách sạn, resort mà mình đang ở. Thường thì trên đảo Phú Quốc việc tìm thuê một chiếc xe máy vô cùng thuận tiện và dễ dàng, bạn chỉ cần nêu tên khách sạn mình đang ở hoặc nhờ lễ tân của khách sạn thuê giúp. Giá cả chung dao động vào khoảng 100-150k /Xe/ngày. Chi phí thuê xe máy cho 3 ngày vào khoảng 300- 450k + với khoảng 250k tiền xăng là bạn có thể khám phá gần hết đảo.

Ref: http://www.cungphuot.info/2013/09/thue-xe-may-o-phu-quoc.html

Khách sạn tại Phú Quốc

Tại Phú Quốc có hàng trăm khách sạn, resort với đủ các mức giá từ 300k cho đến vài triệu một đêm, nếu bạn dư dả về mặt tài chính và muốn tìm một nơi yên tĩnh để nghỉ ngơi thì có thể chọn các resort hạng sang với bãi biển riêng.

Còn nếu bạn là người luôn muốn có những chuyến đi rẻ mà phải chất lượng thì cũng còn rất nhiều khách sạn với chi phí hợp lý và khá ổn. Lời khuyên là bạn nên sử dụng mạng đặt phòng Agoda bởi tính tiện lợi cùng với sự đảm bảo cao, phản hồi của người dùng trên trang này cũng đánh giá khá chính xác về thực trạng khách sạn bạn đang quan tâm.

The Palm Tree Guest House (Nhà nghỉ Cây Cọ)

– Địa chỉ : 118/11 Trần Hưng Đạo, Thị trấn Dương Đông, Phú Quốc

– Đặt phòng trực tuyến qua Agoda TẠI ĐÂY

clip_image005[6]

Sân vường rộng và thoáng

clip_image007[6]

Phòng ngủ gọn và sạch sẽ

Top 10 Khách sạn, Resort tốt nhất Phú Quốc

Các bạn chú ý là giá phòng này tham khảo cho dịp cuối tuần (từ thứ 6 đến chủ nhật) và các dịp lễ, tùy vào điều kiện thực tế ngày đi của bạn mà giá phòng có thể rẻ hơn (thậm chí rẻ hơn 1 nửa). Nếu có thể các bạn hãy đi nghỉ vào những ngày bình thường.

Eden Phu Quoc Resort
Địa chỉ : Cửa Lấp, xã Dương Tơ, Phú Quốc
Giá cả dao động trong khoảng 4.500.000 VNĐ 1 dêm
Xem thêm hình ảnh về khách sạn  TẠI ĐÂY
Arcadia Phu Quoc Resort
Địa chỉ : Khu phố 7 Trần Hưng Đạo, Thị trấn Dương Đông, Phú Quốc
Giá cả dao động trong khoảng 3.000.000 VNĐ – 4.000.000 VNĐ 1 đêm
Xem thêm hình ảnh về khách sạn TẠI ĐÂY

Mango Bay Resort

Địa chỉ : Bãi Ông Lang, Phú Quốc
Giá cả dao động trong khoảng 3.000.000 VNĐ 1 đêm
Xem thêm hình ảnh về khách sạn  TẠI ĐÂY
Saigon Phu Quoc Resort & Spa
Địa chỉ : 62 Trần Hưng Đạo, khu phố 1, Thị trấn Dương Đông, Phú Quốc
Giá cả dao động trong khoảng 3.000.000 VNĐ – 4.000.000 VNĐ 1 đêm
Xem thêm hình ảnh về khách sạn  TẠI ĐÂY
Famiana Village
Địa chỉ : Cửa Lấp, xã Dương Tơ, Phú Quốc
Giá cả dao động trong khoảng 1.500.000 VNĐ 1 đêm
Xem thêm hình ảnh về khách sạn  TẠI ĐÂY

Thanh Kieu Resort
Địa chỉ : 100C/14 Trần Hưng Đạo, Thị trấn Dương Đông, Phú Quốc
Giá cả dao động trong khoảng 1.500.000 VNĐ 1 đêm

Xem thêm hình ảnh về khách sạn  TẠI ĐÂY
Coi Nguon Phu Quoc Hotel
Địa chỉ : 149 Trần Hưng Đạo, Thị trấn Dương Đông, Phú Quốc
Giá cả dao động trong khoảng 500.000 VNĐ – 1.500.000 VNĐ 1 đêm
Xem thêm hình ảnh về khách sạn  TẠI ĐÂY
Kim Hoa Phu Quoc Resort
Địa chỉ : 88/2 Trần Hưng Đạo, Thị trấn Dương Đông, Phú Quốc
Giá cả dao động trong khoảng 1.000.000 VNĐ – 2.000.000 VNĐ 1 đêm
Xem thêm hình ảnh về khách sạn  TẠI ĐÂY
Mai Spa Resort
Địa chỉ : 18 Trần Hưng Đạo, Thị trấn Dương Đông, Phú Quốc
Giá cả dao động trong khoảng 1.000.000 VNĐ – 1.200.000 VNĐ 1 đêm
Xem thêm hình ảnh về khách sạn  TẠI ĐÂY
The Palm Tree Guest House (Nhà nghỉ Cây Cọ)
Địa chỉ : 118/11 Trần Hưng Đạo, Thị trấn Dương Đông, Phú Quốc
Giá cả dao động trong khoảng 1.000.000 VNĐ 1 đêm
Xem thêm hình ảnh về khách sạn  TẠI ĐÂY

Ref: http://www.khachsan.cungphuot.info/2013/11/khach-san-nha-nghi-o-tai-dao-phu-quoc.html

Ăn uống tại Phú Quốc

Phú Quốc có vô vàn các địa điểm ăn uống cho bạn, nếu có thể tự khám phá được các địa điểm vừa ngon vừa hợp với gu của bạn thì chắc chắn là rất thú vị rồi, phải không ? Còn nếu bạn chỉ thích nằm ì trong phòng mỗi buổi sáng hoặc sau mỗi buổi đi chơi về thì các món ăn được chế biến ngay tại khách sạn bạn ở cũng đã khá ngon cho bạn thưởng thức rồi.

Một số địa điểm phù hợp ăn sáng:

Quán ăn Lê Giang – Nằm ngay vòng xoay chợ đêm, quán ăn lê giang là địa chỉ ăn sáng quen thuộc của những du khách đi theo đoàn. Giá cả khoảng 25k

Quán ăn Quốc Anh – Đồ ăn ở đây được nhiều khách khen ngon, giá 30k/tô. Đường 30/4 Phú quốc, gần khách sạn Thăng Long.

Quán bánh canh chả cá – Là quán ăn bình dân nằm bên lề đường, ngay sát khách sạn Thăng Long, nếu bạn thích ngồi nhìn cảnh đường phố và thưởng thức hương vị bản địa hãy đến đây là thử. 20k/tô.

Buffet sáng ở Hotel Hương Biển – Bạn có thể gọi đến hotel để đặt xuất ăn sáng Buffet tại nhà hàng này dù bạn không thuê phòng ở đây. 50-70k/suất

Một số nhà hàng tham khảo

Nhà hàng Vườn Táo

– Địa chỉ: Ấp Cửa Lấp – Xã Dương Tơ – Phú Quốc – Kiên Giang

– Điện thoại : 077 3847008 – 0918 492821

Nhà hàng Zen

– Địa chỉ : Đường 30-4, thị trấn Dương Đông

Nhà hàng Sông Xanh

– Địa chỉ : Địa chỉ : Khu phố 1 đường 30-4, thị trấn Dương Đông

– Điện thoai : 077 3702929 – 077 3994747

Nhà hàng Trùng Dương

– Địa chỉ : Khu phố 1 đường 30-4, thị trấn Dương Đông

– Điện thoại : 077 3980540

Nhà hàng Lê Giang

– Địa chỉ : 289 Trần Hưng Đạo, thị trấn Dương Đông

– Điện thoại : 077 3846444

Quán Gia Tường (Không có hải sản mà chỉ có đặc sản rừng Phú Quốc)

– Địa chỉ : 54 đường Hùng Vương, thị trấn Dương Đông

– Điện thoại : 077 3995 814

Ref: http://www.cungphuot.info/2013/10/cac-mon-an-ngon-o-phu-quoc.html

Các địa điểm du lịch ở Phú Quốc

Lấy thị trấn Dương Đông là ranh giới thì Phú Quốc được chia làm 2 vùng riêng biệt đó là phía Bắc đảo và phía Nam đảo. Ở mỗi phía đều có những điểm du lịch thú vị mà các bạn không nên bỏ qua, để thuận tiện hơn thì các bạn nên sắp xếp thời gian đi hết từng phía rồi mời chuyển sang phía khác. Các bạn có thể theo dõi các địa điểm du lịch của Phú Quốc trên tấm bản đồ sau (Link ảnh gốc).

clip_image009[6]

Phía Bắc đảo

Mũi Gành Dầu

clip_image011[6]

Gành Dầu là một mũi đất nằm nhô ra biển ở phía Tây Bắc đảo Phú Quốc, thuộc địa bàn xã Gành Dầu, huyện Phú Quốc, tỉnh Kiên Giang, cách đường nước lịch sử khoảng 1,3 km và cách hòn Nầng Ngoài của Vương quốc Campuchia khoảng 2,5 km. Đây là vùng đất mới được khai phá và đưa vào phục vụ du lịch.

Ref: http://www.cungphuot.info/2013/10/mui-ganh-dau-diem-dung-chan-thu-vi-o-phu-quoc.html

Bãi Dài

clip_image013[6]

Bãi Dài nằm trên tuyến du lịch Bắc đảo, dài 15km chạy dọc bờ biển Tây Bắc của đảo từ Gành Dầu đến Cửa Cạn. Bãi biển cát trắng ngút ngàn cực kỳ hoang sơ, rừng già đại thụ lan tận sát biển, hệ sinh thái rừng ngập mặn tuyệt đẹp tại các cửa sông nhỏ.

Ref: http://www.cungphuot.info/2013/10/bai-dai-phu-quoc-ve-dep-hoang-so-tiem-an.html

Vườn Tiêu

clip_image015[6]

Tiêu Phú Quốc nổi tiếng vì vỏ mẩy, hạt chắc, cay và thơm nồng không tiêu nơi nào sánh kịp. Người dân Phú Quốc bảo tồn nghề trồng tiêu không những vì mục đích kinh tế mà còn có giá trị lớn về văn hóa, du lịch. Tiêu là một đặc sản địa phương và là món quà độc đáo với khách du lịch gần xa. Các vườn tiêu luôn được đưa vào danh mục điểm đến trong các tour du lịch Phú Quốc.

Ref: http://www.cungphuot.info/2013/10/cac-dac-san-cua-dao-ngoc-phu-quoc.html#hotieu

Xưởng chế biến rượu sim

clip_image017[6]

Ref: http://www.cungphuot.info/2013/10/cac-dac-san-cua-dao-ngoc-phu-quoc.html#ruousim

Dinh Cậu

clip_image019[6]

Dinh nằm cách thị trấn Dương Đông 200 m về phía Tây, trên một ghềnh đá quay mặt ra biển, ở cửa sông Dương Đông. Không rõ Dinh Cậu có từ năm nào, chỉ biết ngôi dinh hiện nay được xây dựng ngày 14 tháng 7 năm 1937, và được trùng tu ngày 14 tháng 7 năm 1997.

Vườn Quốc Gia Phú Quốc

clip_image021[6]

Vườn nằm ở phía Đông Bắc đảo Phú Quốc. Vườn bao gồm địa phận khu bảo tồn thiên nhiên Bắc đảo, khu vực núi Hàm Rồng, Gành Dầu, Cửa Cạn và một phần các xã Cửa Dương, Hàm Dương, Dương Tơ và thị trấn Dương Đông. Phía Đông và phía Bắc sát với bờ biển. Điểm cao nhất là núi Chùa (603m).

Vườn có diện tích 31,422ha, trong đó có 12,794 ha rừng, rất đa dạng về hệ động thực vật – đã ghi nhận được 929 loài. Theo thống kê, biển nơi đây có khoảng 89 loài san hô cứng, 19 loài san hô mềm, 125 loài cá ở rạng san hô, 132 loài thân mềm, 32 loài da gai và 62 loài rong biển.

Hệ sinh thái động thực vật ở đây rất phong phú và đa dạng với 470 loài thực vật bậc cao và 140 loài động vật hoang dã. Trong đó có nhiều loài động thực vật quý hiếm và có giá trị đặc biệt. Với ưu thế tập trung các hệ sinh cảnh của cả nước, bao gồm: rừng ngập mặn, rừng tràm, rừng cỏ tranh, rừng nham, rừng nguyên sinh… Vườn Quốc gia Phú Quốc là một bảo tàng động thực vật hiếm có của Việt Nam.

Vườn Quốc Gia Phú Quốc nằm ngay trên tuyến du lịch Bắc đảo, du khách có thể ngắm rừng trong lộ trình đi xe hơi xuyên rừng từ Dương Đông đi Gành Dầu hay Bải Thơm ( khoảng 40km). Chưa có thuyền du lịch dã ngoại thăm rừng.

Suối Đá Bàn

clip_image023[6]

Phú Quốc nổi tiếng với 99 ngọn núi trãi dài từ Bắc tới Nam, trong đó dãy núi Hàm Ninh là dãy núi dài nhất và cao nhất. Suối Đá Bàn bắt nguồn từ đây. Đây là nguồn cung cấp nước chính cho Hồ Dương Đông với chu vi hơn 3,5km, độ sâu 20m, với trữ lượng nước khoảng 5,5 triệu m3. Hiện nay lượng nước này chỉ cung cấp nước sinh hoạt cho thị trấn Dương Đông. Còn thị trấn An Thới và các xã khác sử dụng nước chủ yếu là nước giếng khoan hoặc đào.

Xuất phát từ thị trấn Dương Đông, đi ngược lên hướng Bắc Đảo rồi đi theo con đường có bảng chỉ dẫn về suối Đá Bàn. Bạn phải dừng chân trước cổng khu du lịch đỗ xe tại đây và đi theo cầu dây văng hoặc theo cầu cây tại đây có 2 cây cầu vượt qua suối để vào rừng. Đi bộ khoảng 15 phút là đến suối. Tại đây trước mắt bạn hiện ra là những tảng đá lớn to, bằng phẳng như mặt bằng, tiếng nước đổ xuống nghe ầm ầm thật hùng vĩ. Khung cảnh khác xa so với Suối Tranh hiền hòa dịu êm.

Đường đến Suối Đá Bàn xa hơn và khó đi so với Suối Tranh. Do đó khách du lịch đến Suối Đá Bàn ít hơn, chủ yếu chỉ là do dân địa phương hoặc những người bạn quen biết dẫn đi chơi.

Phía Nam đảo

Làng Chài Hàm Ninh

clip_image025[6]

Xã Hàm Ninh nằm trên bờ biển phía Ðông đảo, sau lưng là núi rừng, trước mặt là biển cả mênh mông. Dân cư tập trung ven bờ rạch Hàm. Ðến Hàm Ninh như người hoài cổ trở lại làng xưa. Cuộc sống ở đây gần như còn giữ nguyên vẻ hoang sơ với nhà tranh vách tre tạm bợ. Nghề chính vẫn là nghề lặn ngọc trai, bắt hải sâm (đồn đột) và giăng lưới ghẹ.

Biển Hàm Ninh ra xa vài trăm thước mà vẫn còn cạn. Khi nước ròng, bãi cát mênh mông chạy tít ra xa, lúc nước lên, tràn ngập bãi, vào tận mé rừng.Ðứng trên bãi Hàm Ninh, các hòn thuộc quần đảo Hải Tặc (của Hà Tiên) ló dạng xa xa. Chệch về Ðông Nam, hòn Nghệ mờ mờ trên làn nước biếc. Phía Nam là mũi ông Ðội – mũi đất cuối cùng của đảo

Ðến đây mà chưa thưởng thức ghẹ luộc thì coi như chưa trọn vẹn. Ghẹ là đặc sản vùng này, gần như lúc nào cũng có. Những con ghẹ vừa bắt lên đem luộc, màu đỏ tươi, thịt chắc nịt, chấm muối tiêu chanh thì ngọt biết chừng nào!

Suối Tranh

clip_image027[6]

Cách trung tâm Dương Đông khoảng 9km về phía Nam, Suối Tranh là một con suối hiền hoà ẩn mình dưới tán rừng rậm rạp. Được hợp lưu bởi vô số những khe nhỏ bắt nguồn từ dãy Hàm Ninh, dòng chính của Suối Tranh dài khoảng 15km với nhiều ghềnh thác, khối đá to và những hồ nước nhỏ trong lòng suối.

Từ chân suối, du khách đi theo đường lát đá gập ghềnh lên nguồn 300m để khám phá thiên nhiên kỳ bí, cắm trại, tắm suối – thác và nghỉ ngơi thư giãn giữa hương rừng. Có đọan suối chảy qua các ghềnh đá tạo nên những con thác mềm mại, trắng xóa trong màu xanh mượt mà của cỏ cây hoa lá. Khung cành tựa như bức tranh thiên nhiên tuyệt đẹp nên người ta gọi là Suối Tranh.

Bãi Sao

clip_image029[6]

Không mang màu vàng như biển Nha Trang, hay vàng đậm ngả sang nâu như biển Vũng Tàu, cát biển bãi Sao có màu trắng tinh và mịn như kem. Bãi Sao nằm gọn trong vòng tay trìu mến của hai dải núi thoai thoải mang đến không gian yên tĩnh và khí hậu trong lành. Chẳng thế mà, Bãi Sao là địa điểm du lịch mà các đôi uyên ương hay các gia đình yêu thích không gian riêng tư và yên tĩnh để nghỉ ngơi, thư giãn.

Ref: http://www.cungphuot.info/2013/10/bai-sao-diem-den-tuyet-voi-o-phu-quoc.html

Nhà tù Phú Quốc (Nhà lao cây dừa)

clip_image031[6]

Nằm ở phía Nam Đảo, cách chợ Dương Đông 30km, đây là một trại giam do Pháp xây dựng rộng 20ha, để giam giữ những người yêu nước chống Pháp. Năm 1956, chính quyền Ngô Đình Diệm cho sửa sang và lập nên “Trại huấn chính Cây Dừa”. Năm 1967, cho xây dựng trại giam tù binh cộng sản. Nơi đây có lúc giam giữ gần 40.000 tù binh, có khoảng 4.000 liệt sĩ đã hy sinh tại đây.

Trong Chiến tranh Việt Nam, tù binh chiến tranh Trại giam tù binh Phú Quốc đã phải chịu những hình phạt, tra tấn như đóng đinh vào tay, chân, đầu; đốt dây kẽm cháy đỏ đâm vào da thịt, đục răng, trùm bao bố chế nước sôi hoặc đổ lửa than, ném vào chảo nước sôi, thiêu sống, chôn sống… Trong thời gian tồn tại không đầy 6 năm (từ tháng 6/1967 đến 3/1973) trại giam tù binh Phú Quốc, có hơn 4.000 người chết, hàng chục ngàn người bị thương tật tàn phế.

Thiền viện trúc lâm chùa Hộ Quốc

clip_image033[6]

Chùa Hộ Quốc (hay thiền viện Trúc Lâm Hộ Quốc) là một trong những công trình nằm trong dự án khu du lịch tâm linh có diện tích hơn 110ha (diện tích chùa chiếm khoảng 12%) thuộc ấp Suối Lớn, xã Dương Tơ, huyện Phú Quốc, tỉnh Kiên Giang.

Ref: http://www.cungphuot.info/2013/10/thien-vien-truc-lam-ho-quoc-phu-quoc.html

Khu nuôi cấy ngọc trai

clip_image034[6]

Mỗi khi nhắc đến Phú Quốc, người ta thường nghĩ đến những bãi biển hoang sơ đầy nắng, những khu rừng già nguyên sinh, những đặc sản được thiên nhiên ưu ái ban tặng đã thành thương hiệu. Đến với Phú Quốc, du khách không chỉ tận hưởng kỳ nghỉ thoải mái, thưởng thức những đặc sản mà còn được chiêm ngưỡng và sở hữu vật phẩm quý giá đã gắn liền với định danh Phú Quốc thành thương hiệu, đó là ngọc trai.

Ngọc trai Phú Quốc nổi tiếng với vẻ đẹp sang trọng, quý phái nhưng cũng đầy vẻ tự nhiên, mang lại cho người sử dụng nhiều điều tốt lành. Vì vậy nó rất được du khách, nhất là phái đẹp ưa chuộng. Nói đến ngọc trai Phú Quốc thì thương hiệu Ngọc trai Ngọc Hiền đã trở nên quen thuộc với du khách gần xa và đã trở thành một địa chỉ “nằm lòng” đối với người dân trên đảo.

Ngọc trai Ngọc Hiền là doanh nghiệp đầu tiên nuôi cấy ngọc trai tại Phú Quốc. Để đảm bảo chất lượng của mỗi viên ngọc trai cung cấp ra thị trường, cơ sở nuôi cấy ngọc của Ngọc Hiền có hẳn một quy trình khép kín với công nghệ hiện đại, do các chuyên gia hàng đầu người Nhật trực tiếp quản lý, đảm nhận từ khâu lựa chọn con giống, thả nuôi, cấy cho đến khi thành phẩm.

Các bạn có thể tham quan khu nuôi cấy ngọc trai của công ty Ngọc Hiền tại :

Địa chỉ: Ấp Đường Bào, Xã Dương Tơ, Phú Quốc

Điện thoại: 077 3988999 – 0933 221221

Bãi Trường

clip_image036[7]

Bãi Trường là một trong những bãi biển đẹp ở xã Dương Tơ, đảo Phú Quốc, huyện Phú Quốc, tỉnh Kiên Giang. Gọi là bãi Trường vì bãi nằm trải dài thoai thoải gần 20 km từ mũi Dinh Cậu đến Khoé Tàu Rũ. Bãi Trường chia thành nhiều đoạn nhỏ, nối liền nhau bởi những ghềnh đá, cây xanh và làng chài thấp thoáng ẩn hiện.

Những làn nước biển trong và xanh với đủ màu sắc lúc màu xanh lơ, lúc lại ửng hồng, khi màu ngọc thạch, khi lại tím thẫm do độ sâu của biển khác nhau. Chạy dài ven bãi là những rặng dương, những hàng dừa rướn mình đón gió hòa với những màu sắc long lanh kì ảo của từng loài rong biển.

Ngày nay, bãi Trường được nhiều người biết tới bởi vẻ đẹp, sự lãng mạn của cảnh vật và con người nơi đây. Đến đây, du khách sẽ được tận hưởng một bầu không khí trong lành, mát mẻ, có thể thỏa sức vẫy vùng trong sóng nước bao la và thong dong dọc bãi biển để ngắm cảnh bình minh hay hoàng hôn…

Một số đồ dùng nên mang theo

Một số đồ dùng nên mang theo trong các ngày ở Phú Quốc

– Khăn tắm và đồ bơi để có thể bơi tại bất cứ đâu

– Kem chống nắng và kính mát (cái nắng ở biển bao giờ cũng rát hơn)

– Khẩu trang và áo dài tay ( Phú Quốc đang là một đại công trình xây dựng nên rất bụi)

– Áo gió mỏng (chiều tối nếu chạy xe máy thì vẫn khá lạnh vì sương xuống)

(Theo Cùng Phượt)

Advertisements


Leave a comment

ZigBee – Thu thập dữ liệu từ các cảm biến và truyền về máy chủ thông qua web service – phần 4


1. Bước 7: Nạp chương trình vào Arduino Yún

1.1 Kết nối board mạch Arduino Yún với máy tính thông qua USB cable.

clip_image002

1.2 Viết chương trình

Mở Arduino IDE và viết chương trình:

#define DEBUG true // NOTE: the serial monitor must be opened if debug is true

#define DEBUG_LOG false

#include <SoftwareSerial.h>

#include <Bridge.h>

#include <HttpClient.h>

#include <FileIO.h>

#include <YunServer.h>

#include <YunClient.h>

const String WEB_SERVER_URL = “http://hss.f99.vn/api/&#8221;;

const char* LOG_DIRECTORY = “/www”; //”mnt/sd/arduino/www/Bridge”;

const char* LOG_FILE_NAME = “/www/log.txt”; //”mnt/sd/arduino/www/Bridge/log.txt”;

String AHWaddr;

bool contractIsActived = true;

char incomingByte = 0; // for incoming serial data

int ledPin = 13;

int rxPin = 11, txPin = 10;

SoftwareSerial mySerial(rxPin, txPin);

// Listen on default port 5555, the webserver on the Yun

// will forward there all the HTTP requests for us.

YunServer server;

void setup() {

// Initialize pins

pinMode(ledPin, OUTPUT);

pinMode(rxPin, INPUT);

pinMode(txPin, OUTPUT);

// Initialize Serial and SoftwareSerial

mySerial.begin(9600); // opens software serial port, sets data rate to 9600 bps

if (DEBUG) {

//this requires a serial cable between arduino and computer.

Serial.begin(4800);

delay(25);

// Wait until serial is opened. Blink fast while doing so

digitalWrite(ledPin, LOW);

while (!Serial) {

digitalWrite(ledPin, 1 – digitalRead(ledPin));

delay(25);

}

digitalWrite(ledPin, LOW);

}

// Initialize Bridge and FileSystem

Bridge.begin();

if (DEBUG_LOG) {

FileSystem.begin();

// Wait till the FileSystem-service is started

while (!FileSystem.exists(LOG_DIRECTORY))

delay(200);

}

// blink twice at startup

digitalWrite(ledPin, LOW);

digitalWrite(ledPin, HIGH); // first blink

delay(25);

digitalWrite(ledPin, LOW);

delay(100);

digitalWrite(ledPin, HIGH); // second blink

delay(25);

digitalWrite(ledPin, LOW);

// Listen for incoming connection only from localhost

// (no one from the external network could connect)

// server.listenOnLocalhost();

server.noListenOnLocalhost();

server.begin();

// Get Arduino hardware address (MAC)

AHWaddr = getHWaddr();

//writeToLogFile(“Arduino setup complete.”);

}

void loop() {

// Listen on default port 5555, the webserver on the Yun

// will forward there all the HTTP requests for us.

// Get clients coming from server

acceptRequest(server);

if (!contractIsActived) {

printDebug(“Contract is deactived. Please, contact your service provider!.”);

//if(mySerial.overflow())

// clear buffer

clearBuffer();

delay(25);

return;

}

/*incomingByte = ‘1’;

String result = getData(AHWaddr, String(“abcdefghijk”), String(incomingByte));

printDebug(result);

delay(500);*/

printDebug(“Available1: ” + String(mySerial.available()));

if (mySerial.available() > 0) {

while (mySerial.available() > 0 && mySerial.available() >= 9)

{

printDebug(“Available2: ” + String(mySerial.available()));

// read the incoming byte:

char buf[8];

int len = 8;

mySerial.readBytes(buf, len);

if (buf[0] == ‘4’) { // DEC: 4

// readStringUntil(‘\n’);

String sensorAddr = String(buf).substring(0, 8);

incomingByte = mySerial.read(); // sensor value

String sensorValue = String(incomingByte);

/*if(sensorAddr == “40ABB829”) {

incomingByte = mySerial.read(); // sensor value

sensorValue = sensorValue + String(incomingByte);

}*/

printDebug(“Received: HWaddr: 0013A200:” + sensorAddr + ” – Value: ” + sensorValue/* + ” – TimeStamp: ” + getTimeStamp()*/);

if (incomingByte != ‘0’) // value: 1 (DEC: 1, ASCII: 49)

{

//printDebug(“before send data”);

String result = putData(AHWaddr, sensorAddr, String(incomingByte));

printDebug(“Result: ” + result);

//printDebug(“end send data”);

// turn LED on

digitalWrite(ledPin, HIGH);

delay(25);

// turn LED off

digitalWrite(ledPin, LOW);

}

else

{

// turn LED off

digitalWrite(ledPin, LOW);

}

//printDebug(“before clear buffer”);

// clear buffer

clearBuffer();

//printDebug(“end clear buffer”);

}

}

Serial.flush();

}

delay(200);

}

/*——————————————————–

——– Bridge Library (for the Arduino Yun) ———-

——————————————————–*/

/*

Post data from Arduino to remote web server.

value: sensor value

http://arduino.cc/en/Tutorial/HttpClient

*/

void getData2(String AHWaddr, String SHWaddr, String value) {

// Initialize the client library

HttpClient client;

// Make a HTTP request:

//String url = String(“http://yun.f99.vn/api/yun/id=1?value=a&#8221;);

String url = String(WEB_SERVER_URL + String(“values?_ObjectMacAddress=”) + String(AHWaddr) + String(“&_MacAddress=”) + String(“0013A200:”) + String(SHWaddr) + String(“&_Signal=”) + String(value) + String(“&_Description=”) + String(“arduino%20yun%20test%20web%20service”));

//String url = “http://hss.f99.vn/api/values?_ObjectMacAddress=90:a2:da:fd:01:24&_MacAddress=5248656853564868&_Signal=49&_Description=arduino%20yun%20test%20web%20service&#8221;;

printDebug(“GET: ” + url);

//client.getAsynchronously(url);

client.get(url);

/*

int t = 1;

while(!client.ready() && t <= 40) {

delay(500);

t++;

}

if(t <= 40)

printDebug(” – [DONE]”, true);

else

printDebug(” – [TIME OUT]”, true);

*/

}

/*

Post data from Arduino to remote web server.

value: sensor value

http://arduino.cc/en/Tutorial/HttpClient

http://www.tutorialspoint.com/unix_commands/curl.htm

*/

String putData(String AHWaddr, String SHWaddr, String value) {

// Launch “curl http://domain.com&#8221; command

// curl is a command line utility that get the content of a url

Process p; // Create a process and call it “p”

p.begin(“curl”); // Process that launch the “cat” command

//p.addParameter(String(“–connect-timeout”/*seconds*/));

//p.addParameter(String(“10”));

//p.addParameter(String(“–max-time 10″/*seconds*/));

String url = String(WEB_SERVER_URL) + String(“values?_ObjectMacAddress=”) + String(AHWaddr) + String(“&_MacAddress=”) + String(“0013A200:”) + String(SHWaddr) + String(“&_Signal=”) + String(value) + String(“&_Description=”) + String(“arduino%20yun%20test%20web%20service”);

printDebug(“PUT: ” + url);

p.addParameter(url); // Add the cpuifo file path as parameter to cut

p.run(); // Run the process and wait for its termination

String result;

// Print command output on the Serial.

// A process output can be read with the stream methods

while (p.available() > 0) {

char c = p.read();

result += String(c);

}

return result;

}

/*

Post data from Arduino to remote web server.

value: sensor value

http://arduino.cc/en/Tutorial/HttpClient

*/

String postData(String AHWaddr, String SHWaddr, String value) {

// Launch “curl http://domain.com&#8221; command

// curl is a command line utility that get the content of a url

Process p; // Create a process and call it “p”

p.begin(“curl”); // Process that launch the “cat” command

String url = String(String(” –data-urlencode “” “) + String(“key1=value1”) + String(“&key2=value2″) + ” ” + WEB_SERVER_URL);

p.addParameter(url); // Add the cpuifo file path as parameter to cut

p.run(); // Run the process and wait for its termination

printDebug(“GET: ” + url);

String result;

// Print command output on the Serial.

// A process output can be read with the stream methods

while (p.available() > 0) {

char c = p.read();

result += String(c);

}

// Ensure the last bit of data is sent.

return result;

}

/*

Get Mac address

http://stackoverflow.com/questions/245916/best-way-to-extract-mac-address-from-ifconfig-output

ifconfig eth0 | grep -o -E ‘([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}’

*/

String getHWaddr() {

// Launch “cat /sys/class/net/eth1/address” command (shows Mac address info)

// cat is a command line utility that shows the content of a file

Process p; // Create a process and call it “p”

p.begin(“cat”); // Process that launch the “cat” command

p.addParameter(“/sys/class/net/eth1/address”); // Add the cpuifo file path as parameter to cut

p.run(); // Run the process and wait for its termination

String result;

// Print command output on the Serial.

// A process output can be read with the stream methods

while (p.available() > 0) {

char c = p.read();

result += String(c);

}

// Ensure the last bit of data is sent.

return result.substring(0, 17); // remove \n

}

/*

Get a string with the time stamp from linux via Bridge library.

Date format: MM/DD/YY HH:MM:SS

http://arduino.cc/en/Tutorial/TimeCheck

*/

String getTimeStamp() {

String result;

Process time;

// date is a command line utility to get the date and the time

// in different formats depending on the additional parameter

time.begin(“date”);

time.addParameter(“+%D %T”); // parameters: D for the complete date mm/dd/yy

// T for the time hh:mm:ss

time.run(); // run the command

// read the output of the command

while (time.available() > 0)

{

char c = time.read();

if (c != ‘\n’)

result += c;

}

return result;

}

/*

Write data into log file.

http://arduino.cc/en/Tutorial/YunDatalogger

*/

void writeToLogFile(String message) {

String dateTime = getTimeStamp();

File file = FileSystem.open(LOG_FILE_NAME, FILE_APPEND);

if (file)

{

file.println(dateTime + “: ” + message);

file.close();

}

}

/*

Clear all data in log file.

*/

void clearLogFile() {

FileSystem.remove(LOG_FILE_NAME);

}

/*——————————————————–

——————– WiFi Library ———————-

——————————————————–*/

// Not working (well well well)

String getXBeeAddr() {

// put the radio in command mode:

printDebug(“+++”);

String result;

// wait for the radio to respond with “OK\r”

char thisByte = 0;

while (Serial.available() > 0) {

thisByte = Serial.read();

result += String(thisByte);

}

return result;

}

/*——————————————————–

————- Bridge Library: Web Server —————

——————————————————–*/

/*

Use the Bridge library to access the digital and analog pins

on the board through REST calls. It demonstrates how

you can create your own API when using REST style

calls through the browser.

Possible commands created in this shetch:

* “/arduino/digital/13” -> digitalRead(13)

* “/arduino/digital/13/1” -> digitalWrite(13, HIGH)

* “/arduino/analog/2/123” -> analogWrite(2, 123)

* “/arduino/analog/2” -> analogRead(2)

* “/arduino/mode/13/input” -> pinMode(13, INPUT)

* “/arduino/mode/13/output” -> pinMode(13, OUTPUT)

* “/arduino/contract/status/1 -> active contact

This example code is part of the public domain

http://arduino.cc/en/Tutorial/Bridge

*/

void acceptRequest(YunServer server) {

// Get clients coming from server

YunClient client = server.accept();

// There is a new client?

if (client) {

// Process request

printDebug(“Ok ok”);

process(client);

// Close connection and free resources.

client.stop();

}

}

void process(YunClient client) {

// read the command

String command = client.readStringUntil(‘/’);

// is “digital” command?

if (command == “digital”) {

digitalCommand(client);

}

// is “analog” command?

if (command == “analog”) {

analogCommand(client);

}

// is “mode” command?

if (command == “mode”) {

modeCommand(client);

}

// is “contract” command?

if (command == “contract”) {

contractCommand(client);

}

}

void digitalCommand(YunClient client) {

int pin, value;

// Read pin number

pin = client.parseInt();

// If the next character is a ‘/’ it means we have an URL

// with a value like: “/digital/13/1”

if (client.read() == ‘/’) {

value = client.parseInt();

digitalWrite(pin, value);

}

else {

value = digitalRead(pin);

}

// Send feedback to client

client.print(F(“Pin D”));

client.print(pin);

client.print(F(” set to “));

client.println(value);

// Update datastore key with the current pin value

String key = “D”;

key += pin;

Bridge.put(key, String(value));

}

void analogCommand(YunClient client) {

int pin, value;

// Read pin number

pin = client.parseInt();

// If the next character is a ‘/’ it means we have an URL

// with a value like: “/analog/5/120”

if (client.read() == ‘/’) {

// Read value and execute command

value = client.parseInt();

analogWrite(pin, value);

// Send feedback to client

client.print(F(“Pin D”));

client.print(pin);

client.print(F(” set to analog “));

client.println(value);

// Update datastore key with the current pin value

String key = “D”;

key += pin;

Bridge.put(key, String(value));

}

else {

// Read analog pin

value = analogRead(pin);

// Send feedback to client

client.print(F(“Pin A”));

client.print(pin);

client.print(F(” reads analog “));

client.println(value);

// Update datastore key with the current pin value

String key = “A”;

key += pin;

Bridge.put(key, String(value));

}

}

void modeCommand(YunClient client) {

int pin;

// Read pin number

pin = client.parseInt();

// If the next character is not a ‘/’ we have a malformed URL

if (client.read() != ‘/’) {

client.println(F(“error”));

return;

}

String mode = client.readStringUntil(‘\r’);

if (mode == “input”) {

pinMode(pin, INPUT);

// Send feedback to client

client.print(F(“Pin D”));

client.print(pin);

client.print(F(” configured as INPUT!”));

return;

}

if (mode == “output”) {

pinMode(pin, OUTPUT);

// Send feedback to client

client.print(F(“Pin D”));

client.print(pin);

client.print(F(” configured as OUTPUT!”));

return;

}

client.print(F(“error: invalid mode “));

client.print(mode);

}

void contractCommand(YunClient client) {

String action;

int value;

// Read pin number

action = client.readStringUntil(‘s’);

// If the next character is a ‘/’ it means we have an URL

// with a value like: “/contract/status/1”

if (client.read() == 116/*’/’*/) {

value = client.parseInt();

contractIsActived = (value == 1) ? true : false;

}

else {

value = 0; // current status

}

// Send feedback to client

client.print(F(“Contract “));

client.print(action);

client.print(F(” set to “));

client.println(value);

}

/*——————————————————–

———————– Serial ————————-

——————————————————–*/

// Print debug information to serial and break line.

void printDebug(String s) {

if (DEBUG) {

Serial.println(s);

}

}

// Print debug info to serial with break line option

void printDebug(String s, bool breakLine) {

if (DEBUG) {

if (breakLine)

Serial.println(s);

else

Serial.print(s);

}

}

/*——————————————————–

——————– Cryptography ———————-

——————————————————–*/

void clearBuffer() {

// Serial.flush() has changed in Arduino 1.0. You can use the following instead: while(Serial.available()>0) Serial.read();

while (Serial.available() > 0)

Serial.read();

}

1.3 Nạp chương trình vào board mạch Arduino Yún

1. Chọn loại mạch là Arduino Yún.

clip_image003

2. Chọn cổng giao tiếp Serial tương ứng

clip_image004

3. Biên dịch mã nguồn

clip_image005

4. Nạp chương trình vào board mạch

clip_image006


Leave a comment

ZigBee – Thu thập dữ liệu từ các cảm biến và truyền về máy chủ thông qua web service – phần 3


1.1 Viết chương trình

Mở Arduino IDE, viết chương trình như sau:

const int ledPin = 13;

const int sensorPin = 4;

int incomingByte = 0; // for incoming serial data

void setup() {

// Initialize pins

pinMode(ledPin, OUTPUT);

pinMode(sensorPin, INPUT);

// Initialize Serial

Serial.begin(9600); // opens serial port, sets data rate to 9600 bps

// blink twice at startup

digitalWrite(ledPin, LOW);

delay(1000);

digitalWrite(ledPin, HIGH); // first blink

delay(50);

digitalWrite(ledPin, LOW);

delay(200);

digitalWrite(ledPin, HIGH); // second blink

delay(50);

digitalWrite(ledPin, LOW);

}

void loop() {

// send data from sender (router) to receiver (coordinator)

incomingByte = digitalRead(sensorPin);

Serial.write(“40ABB829”); // Hex: 5248656666565057

if (incomingByte == HIGH)

{

incomingByte = ‘1’;

Serial.write(incomingByte); // Arduino 1.0 compatibility

// turn LED on

digitalWrite(ledPin, HIGH);

//delay(2400);

// clear buffer

clearBuffer();

}

else

{

incomingByte = ‘0’;

//Serial.write(“40ABB829”); // Hex: 5248656666565057

Serial.write(incomingByte); // Arduino 1.0 compatibility

// turn LED off

digitalWrite(ledPin, LOW);

}

Serial.flush();

delay(800);

}

void clearBuffer() {

// Serial.flush() has changed in Arduino 1.0. You can use the following instead: while(Serial.available()>0) Serial.read();

while (Serial.available() > 0)

Serial.read();

}

1.2 Nạp chương trình vào board mạch Arduino Fio 1

1. Chọn loại mạch là Arduino Fio.

clip_image001

2. Chọn cổng giao tiếp Serial tương ứng

clip_image002

3. Biên dịch mã nguồn

clip_image003

4. Nhúng chương trình vào board mạch

clip_image004

2. Bước 4: Nạp chương trình vào Arduino Fio 2 (điều khiển Magnetic Sensor)

2.1 Kết nối board mạch Arduino Fio 2 với máy tính thông qua USB cable

Kết nối board mạch Arduino Fio với FTDI Basic breakout, sau đó kết nối FTDI Basic breakout với máy tính thông qua USB cable.

clip_image006

2.2 Viết chương trình

Mở Arduino IDE, viết chương trình như sau:

const int ledPin = 13;

const int sensorPin = 4;

int incomingByte = 0; // for incoming serial data

void setup() {

// Initialize pins

pinMode(ledPin, OUTPUT);

pinMode(sensorPin, INPUT);

// Initialize Serial

Serial.begin(9600); // opens serial port, sets data rate to 9600 bps

// blink twice at startup

digitalWrite(ledPin, LOW);

delay(1000);

digitalWrite(ledPin, HIGH); // first blink

delay(50);

digitalWrite(ledPin, LOW);

delay(200);

digitalWrite(ledPin, HIGH); // second blink

delay(50);

digitalWrite(ledPin, LOW);

}

void loop() {

// send data from sender (router) to receiver (coordinator)

incomingByte = digitalRead(sensorPin);

// door is opened

if (incomingByte == HIGH)

{

incomingByte = ‘1’;

Serial.write(“40AD580D”); // Hex: 5248656853564868

Serial.write(incomingByte); // Arduino 1.0 compatibility

// turn LED on

digitalWrite(ledPin, HIGH);

// clear buffer

clearBuffer();

}

else // door is closed

{

incomingByte = ‘0’;

// turn LED off

digitalWrite(ledPin, LOW);

}

delay(400);

}

void clearBuffer() {

// Serial.flush() has changed in Arduino 1.0. You can use the following instead: while(Serial.available()>0) Serial.read();

while (Serial.available() > 0)

Serial.read();

}

2.3 Nạp chương trình vào board mạch Arduino Fio 2

5. Chọn loại mạch là Arduino Fio.

clip_image001[1]

6. Chọn cổng giao tiếp Serial tương ứng

clip_image002[1]

7. Biên dịch mã nguồn

clip_image003[1]

8. Nhúng chương trình vào board mạch

clip_image004[1]

3. Bước 5: Kết nối Motion Sensor với board mạch Arduino Fio 1 và XBee 2

clip_image008

4. Bước 6: Kết nối Magnetic Sensor với board mạch Arduino Fio 2 và XBee 3

clip_image009


Leave a comment

ZigBee – Thu thập dữ liệu từ các cảm biến và truyền về máy chủ thông qua web service – phần 2


IV. Các bước thực hiện

1. Bước 1: Cấu hình thiết bị thu/phát (XBee) thứ 1 (coordinator)

1.1 Kết nối XBee với máy tính

Gắn bộ thu/phát sóng ZigBee vào XBee USB Adapter và kết nối với máy tính thông qua USB cable.

clip_image001

1.2 Cấu hình XBee dùng X-CTU

Mở X-CTU và thêm thiết bị (XBee) vào màn hình quản lý.

clip_image003

Thay đổi giá trị các tham số như sau:

ID – PAN ID: Gán PAN (Personal Area Network) ID cho mạng. Giá trị giống nhau cho tất cả các XBee trong mạng.

clip_image005

DL – Destination Address Low: Gán địa chỉ 32 / 64 bit ở mức thấp của bên nhận, giá trị 0x000000000000FFFF nghĩa là broadcast cho tất cả các thiết bị thuộc cùng ID – PAN ID.

clip_image007

BD – Baud Rate: tốc độ truyền dữ liệu. Giá trị giống nhau cho tất cả các XBee trong mạng.

clip_image009

Lưu cấu hình cho XBee với vai trò Zigbee Coordinator AT

clip_image011

2. Bước 2: Cấu hình thiết bị thu/phát (XBee) thứ 2 và 3 (router 1 và 2)

Tương tự như cấu hình cho XBee thứ 1 (coordinator), ta thay đổi giá trị các tham số sau:

ID – PAN ID: Gán PAN (Personal Area Network) ID cho mạng. Giá trị giống nhau cho tất cả các XBee trong mạng.

JV – Channel Verification: Nếu giá trị là Enabled[1] thì router sẽ xác định coordinator trong cùng mạng và tự động joined vào.

clip_image013

DL – Destination Address Low: Gán địa chỉ 32 / 64 bit ở mức thấp của bên nhận, 0x0000000000000000 là địa chỉ ở mức thấp của coordinator.

clip_image015

BD – Baud Rate: tốc độ truyền dữ liệu. Giá trị giống nhau cho tất cả các XBee trong mạng.

clip_image017

D3 AD3/DIO3 Configuration: Giá trị Digital Input [3].

IR IO Sampling Rate: 3E8

clip_image019

Lưu cấu hình cho XBee với vai trò ZigBee Router AT:

clip_image020

3. Bước 3: Nạp chương trình vào Arduino Fio 1 (điều khiển Motion Sensor)

3.1 Kết nối board mạch Arduino Fio 1 với máy tính thông qua USB cable

Kết nối board mạch Arduino Fio với FTDI Basic breakout, sau đó kết nối FTDI Basic breakout với máy tính thông qua USB cable.

clip_image022


Leave a comment

ZigBee – Thu thập dữ liệu từ các cảm biến và truyền về máy chủ thông qua web service – phần 1


I. Mô hình

Các thành phần

Mô hình ZigBee Wireless Mesh Network gồm 3 thành phần:

clip_image001

1. End Device

Hai end devices, mỗi end devices gồm 1 motion sensor (phát hiện chuyển động) hoặc 1 magnetic sensor (phát hiện đóng/mở cửa) được kết nối với board mạch Arduino Fio và bộ thu phát tín hiệu ZigBee.

2. Coordinator

Một coordinator, gồm 1 board mạch Arduino Yun được kết nối với Ethernet và bộ thu phát tín hiệu ZigBee.

clip_image003

Nguyên tắc hoạt động

A. Bên truyền tín hiệu (motion sensor)

1. Motion sensor có chức năng nhận diện chuyển động trong phạm vi 1100 và xa 7m. Giá trị dữ liệu là HIGH (có chuyển động) hoặc LOW (không có chuyển động).

2. Magnetic sensor có chức năng phát hiện đóng/mở cửa. Giá trị dữ liệu là LOW (cửa đang đóng) và HIGH (cửa mở).

3. Board mạch Arduino Fio đọc dữ liệu từ motion sensor và magnetic sensor thông qua cổng digital 4. Dữ liệu sẽ được gửi qua cổng Tx đến thiết bị thu phát sóng ZigBee và sóng sẽ được truyền đi đến các thiết bị khác.

B. Bên nhận tín hiệu (Arduino Yun)

4. Board mạch Arduino Yun sẽ đọc dữ liệu motion sensor và magnetic sensor từ bộ thu phát sóng ZigBee và thông qua cổng Rx.

5. Dữ liệu sau khi xử lý sẽ được gửi về web server thông qua web service để lưu xuống cơ sở dữ liệu.

II. Phần cứng

Chuẩn bị các thiết bị phần cứng sau:

Stt

Tên / mô tả thiết bị

Hình ảnh

Số lượng

Đơn giá (Chưa VAT, VND)

Thành tiền (chưa VAT, VND)

Ghi chú

1

Arduino Yún

clip_image005

1

1,800,000

1,800,000

Board mạch điều khiển tự động, nguồn mở

2

Micro USB Cable

clip_image007

2

70,000

140,000

Cáp cấp nguồn và nhúng chương trình vào các board mạch

3

XBee 2mW Wire Antenna – Series 2 (ZB)

clip_image009

3

700,000

2,100,000

Thiết bị thu phát sóng ZigBee

4

Dfrduino FIO (Arduino Compatible)

clip_image011

2

500,000

1,000,000

Thiết bị kết nối Xbee và sensor

5

Digital Infrared Motion Sensor (Cảm biến hồng ngoại)

clip_image013

1

170,000

170,000

Cảm biến hồng ngoại, phát hiện chuyển động

6

Digital Magnetic Sensor (Cảm biến từ tính)

clip_image015

1

80,000

80,000

Cảm biến từ tính, phát hiện đóng/mở cửa

7

FTDI Basic breakout

clip_image017

1

290,000

290,000

Dùng để lập trình DFRduino FIO

8

XBee USB Adapter V2

 

1

400,000

400,000

Dùng để cấu hình XBee thông qua cable và laptop

Tổng cộng (chưa VAT)

5,980,000

VAT (10%)

598,000

Tổng tiền

6,578,000

Lưu ý:

– Các thiết bị màu xanh dương chỉ được dùng trong lúc lập trình cho board mạch. Việc triển khai thực tế sẽ không bao gồm các thiết bị này.

– Bảng giá trên chưa bao gồm nguồn pin cấp riêng cho các cảm biến.

Như vậy, giá các thiết bị không bao gồm các thành phần sử dụng trong khi lập trình: 5,665,000 VNĐ (đã gồm VAT).

III. Phần mềm

Chuẩn bị các phần mềm sau:

1. X-CTU: dùng để cấu hình các tham số cho thiết bị XBee

Cài đặt X-CTU và các drivers cần thiết theo link sau:

http://www.digi.com/support/kbase/kbaseresultdetl?id=2125

2. Arduino IDE: dùng để lập trình Arduino Yun

Cài đặt Arduino IDE để lập trình Arduino Yun theo link sau:

http://arduino.cc/en/Main/Software#toc3


Leave a comment

Các board mạch dạng Open Source Hardware


A. Các giao thức điều khiển tự động hóa

1. X10 – UPB (Universal Powerline Bus)

clip_image002[6]

X10 là giao thức truyền thông có dây tốc độ cao, đã được ứng dụng từ những năm 70.

UPB là giao thức truyền thông qua đường dây điện, nhưng băng thông bị giới hạn và giao thức truyền dữ liệu có vấn đề với các nguồn đóng cắt hiện đại.

Ngoài ra, hệ thống luôn có rủi ro khi nhà hàng xóm sử dụng chung hệ thống phân phối điện, do tín hiệu điều khiển có thể truyền từ hệ thống này sang hệ thống kia gây các tác động không mong muốn.

2. Insteon

clip_image004[6]

Insteon là giao thức để thu hẹp khoản cách giữa các giao thức dựa vào dây và không dây, do đó, nó dùng cả hai. Nó tương thích với các thiết bị X10.

Z-Wave

clip_image005[6]

Z-Wave là giao thức không dây ra đời muộn nhưng đã phát triển nhanh chóng trong vài năm qua. Z-Wave có tổ chức ở Mỹ để quản lý các thiết bị do các nhà sản xuất khác nhau sao cho chúng tương thích với nhau.

Z-Wave dùng mạng gọi là “lưới mạng (mesh network)”, nghĩa là Z-Wave sẽ là cầu nối tín hiệu (vừa thu vừa phát) cho đến khi đạt đến đích dự định. Thiết bị Z-Wave dùng điện năng cực thấp, lý tưởng cho thiết bị dựa trên năng lượng pin.

ZigBee

clip_image007[6]

ZigBee là tiêu chuẩn truyền thông không dây 802 được xây dựng bởi IEEE. Giống như Z-Wave, nó tăng trưởng nhanh trong nhiều năm qua. Nó cũng dùng lưới mạng (mesh network) và tiêu thụ điện năng rất nhỏ.

Wi-Fi

clip_image009[6]

Wifi rất phổ biến, tuy nhiên có nhược điểm chính: các vấn đề can thiệp và băng thông. Các thiết bị kết nối Wifi sẽ cạnh tranh băng thông và làm chậm tín hiệu. Wifi cũng tiêu thụ rất nhiều năng lượng, không lý tưởng cho các thiết bị dùng pin.

BLE

clip_image011[6]

BLE là bluetooth năng lượng thấp, không phải giao thức chính, phạm vi phủ sóng hạn chế so với các giao thức khác.

Kết luận

Nên dùng giao thức Z-Wave hoặc ZigBee để giao tiếp giữa các thiết bị.

A. Các board mạch điều khiển tự động (có kết nối đi Internet)

1. Mạch Arduino Uno với Wifi/Ethernet shield

– Nhà sản xuất:Arduino.

– Website: http://www.arduino.cc/

– Giá bán: $29 (cho board mạch chính)

– Hệ điều hành: board mạch dạng micro controller với Firmware có thể lập trình.

– Ngôn ngữ lập trình: Wiring dựa trên C/C++.

clip_image012[6]

Mua Arduino ở Việt Nam

Arduino Uno R3 – 605,000 VNĐ

Arduino Ethernet Shield R3 – 935,000 VNĐ

XBee 2mW PCB Antenna – Series 2 (ZigBee Mesh) – 770,000 VNĐ

Tùy chọn

Arduino Wifi Shield – 2,200,000 VNĐ

2. Mạch Arduino Yun

– Giá bán: $74 (cho board mạch chính)

Bao gồm Arduino hỗ trợ Ethernet + Wifi.

clip_image013[6]

Mua Arduino Yun ở Việt Nam

Arduino Yun – 1,980,000 VNĐ

3. Mạch Spark Core

– Nhà sản xuất: Spark Devices (Italia).

– Website: https://www.spark.io/

– Giá bán: $39 (cho board mạch chính)

– Hệ điều hành: board mạch dạng micro controller với Firmware có thể lập trình.

– Ngôn ngữ lập trình: Ngôn ngữ lập trình của Spark Core dựa trên framework Wiring, chính vì vậy, việc lập trình cho Spark Core cũng tương tự như Arduino.

clip_image014[6]

Spark Core là một bo mạch rất nhỏ gọn được tích hợp vi điều khiển Cortex-M3 xung nhịp 72MHz, chip Wi-Fi Texas Instrument SimpleLink CC3000, RAM 20KB, bộ nhớ flash rời 2MB và tương thích với các dòng lệnh dùng cho bo mạch lập trình Arduino

Có thể kết hợp bo mạch này với các cảm biến để nhận biết chuyển động và truyền số liệu không dây tới máy tính, dùng chung với tấm pin mặt trời và camera để tạo nên một hệ thống giám sát không dây, hay tích hợp lên xe điều khiển đồ chơi.

Nền tảng đám mây Spark Cloud với một mạng lưới nhiều server sẽ cung cấp một bộ khung để các phần mềm viết cho Spark Core có thể chạy được và đảm bảo tính kết nối liên tục vào Internet.

Tóm tắt:: Arduino + Wi-Fi + ARM Cortex M3 + wireless programming + REST API = SPARK CORE.

Mua Spark Core ở Việt Nam

– Hiện chưa thấy chỗ nào bán

4. Mạch Raspberry Pi

– Nhà sản xuất: Raspberry Pi Foundation (Anh).

– Website: http://www.raspberrypi.org/

– Giá bán: $46 (cho board mạch chính Model B)

– Hệ điều hành: board mạch dạng mini computer với HĐH Linux có thể lập trình.

– Ngôn ngữ lập trình: C/C++, Java.

clip_image015[6]

Ứng dụng:

– Làm trung tâm giải trí đa phương tiên như smart internet TV.

– Kết hợp webcame làm hệ thống phát hiện chuyển động.

– Nhận diện khuôn mặt, điều khiển robot.

– Gửi nhận tin nhắn GMS với USB 3G.

– Điều khiển tắt / mở đèn.

Mua Raspberry Pi ở Việt Nam

Raspberry Pi Model B v2 – 995,000 VNĐ

Raspberry Pi Model B (UK) – 970,000 VNĐ

Kết luận

Nên dùng Arduino Yun


Leave a comment

Agile – Học những điều cơ bản về Agile/Scrum trong 17 ngày – bookmark


image

Agile #1 – Giới thiệu Agile

Agile #2 – Scrum là gì?

Agile #3 – Scrum Framework

Agile #4 – Các thành phần của Scrum

Agile #5 – Product Owner

Agile #6 – Scrum Master

Agile #7 – Scrum Dev Team

Agile #8 – Định nghĩa "Hoàn thành"

Agile #9 – Artifacts

Agile #10 – Meetings

Agile #11 – Sprint Planning Meeting

Agile #12 – Daily Scrum Meeting

Agile #13 – Spring Review Meeting

Agile #14 – Sprint Retrospective Meeting

Agile #15 – Scrum Process

Agile #16 – User Story

Agile #17 – Burndown Chart


1 Comment

Agile #17 – Burndown Chart


– Là biểu đồ hiển thị xu hướng của dự án dựa trên lượng thời gian cần thiết còn lại để hoàn tất công việc.

– Burndown Chart có thể được dùng để theo dõi tiến độ của Sprint (được gọi là Sprint Burndown Chart) hoặc của cả dự án (Project Burndown Chart).

– Biểu đồ burndown không phải là một thành tố tiêu chuẩn của Scrum theo định nghĩa mới, nhưng vẫn được sử dụng rộng rãi do tính hữu ích của nó.

Điều quan trọng là còn bao nhiêu việc phải làm để hoàn tất công việc chứ không phải là đã bỏ ra bao nhiêu công sức trong quá khứ.

image


1 Comment

Agile #16 – User Story


image

Một trong những mục tiêu của Backlog Refinement Meeting là tạo ra các PBIs (User Story) (Product Backlog Items) thoả các điều kiện:

+ Independent: Các User Story dễ làm việc nhất thì phải là các user story độc lập, không chồng lấp và có thể được lên kế hoạch và thực thi theo bất kỳ thứ tự nào.

+ Negotiable: Một story tốt phải có thể thương lượng. Nó không phải là một hợp đồng rõ ràng các tính năng, các chi tiết sẽ được hợp tác tạo ra giữa khách hàng và nhà phát triển

+ Valuable: Một story cần phải có giá trị với khách hàng

+ Estimable: Một story tốt có thể được ước tính. Chúng ta không cần một ước lượng chính xác nhưng phải đủ để giúp cho khách hàng đưa ra đánh giá và sắp xếp các story.

+ Small: Một story tốt có định hướng là càng nhỏ càng tốt (epic thành các user story nhỏ hơn), có khả năng thực thi nhanh chóng và có ước tính chính xác cao.

+ Testable: Có khả năng kiểm thử được. Nếu khách hàng không biết phải kiểm thử story như thế nào chứng tõ rằng story đó chưa rõ ràng hoặc là nó không có giá trị gì cho họ hoặc khách hàng cần sự giúp đỡ trong việc kiểm thử.

image

User Story đảm bảo sự cân bằng giữa các bên tham gia phát triển thể hiện bằng một ngôn ngữ hướng người dùng và các nhà phát triển có thể hiểu được. Ví dụ:… US Phải trả lời được các câu hỏi Who? What? Why?

– Who: As a student

– What: I can see my grades online

– Why: I don’t have to wait until I get to school to know whether I’m passing.

image


1 Comment

Agile #15 – Scrum Process


image

Product Owner tạo ra Product Backlog chứa các yêu cầu của dự án, được sắp theo thứ tự ưu tiên.

Dev Team cùng họp với Product Owner để lập kế hoạch cho từng Sprint. Kết quả của buổI lập kế hoạch (Sprint Planning Meeting) là Sprint Backlog chứa các công việc cần làm trong suốt 1 Sprint.

Trong quá trình phát triển, nhóm sẽ cập nhật Sprint Backlog và họp hàng ngày (Daily Scrum) để chia sẽ tiến độ công việc cũng như các vướng mắt trong quá trình làm việc với nhau.

Nhóm được trao quyền để tự quản lý và tổ chức công việc của mình nhằm hoàn thành trong thời gian 1 Sprint. Khi kết thúc Sprint, dev team phải tạo ra gói phần mềm có chức năng hoàn chỉnh, sẵn sàng chuyển giao cho khách hàng.

Buổi họp sơ kết Sprint (Sprint Review) ở cuối Sprint sẽ giúp khách hàng thấy được nhóm đã có thể chuyển giao những gì, còn những gì phải làm hoặc phảI thay đổi hay cải tiến. Sau khi kết thúc đánh giá Sprint, Scrum Master và nhóm cùng tổ chức họp cải tiến Sprint (Sprint Retrospective) để tìm kiếm các cải tiến trước khi Sprint tiếp theo bắt đầu, điều này giúp nhóm liên tục học hỏi và trưởng thành qua từng Sprint.

Các Sprint sẽ được lặp đi lặp lại cho đến khi nào các hạng mục trong Product Backlog đều được hoàn tất hoặc khi Product Owner quyết định có thể dừng dự án căn cứ vào tình hình thực tế. Do sử dụng chiến thuật "có giá trị hơn thì làm trước" nên các hạng mục mang nhiều giá trị hơn cho chủ dự án luôn được hoàn thành trước. Do đó Scrum mang lại giá trị cao nhất cho người đầu tư dự án.

Backlog Refinement Meeting (Backlog Grooming)

image

Backlog Refinement Meeting hay còn gọi là Backlog Grooming.

– Thành phần tham dự: Product Owner và scrum dev team

– Khung thời gian: 2 giờ

– Mục tiêu: Giúp Product Owner chọn ra các Product Backlog sẽ được thực hiện trong buổi họp Kế hoạch Sprint tiếp theo (Sprint Planning Meeting)

image

– Xoá bỏ các user story không còn liên quan.

– Tạo mới các user story để phù hợp với nhu cầu mới

– Sắp xếp lại độ ưu tiên của các User Story

– Tính toán, ước lượng độ khó và phân chia Dev cho các User Story mới

– Phân Chia các User Story mà có độ ưu tiên cao nhưng vẫn còn thô(chưa rõ ràng) thành các user story nhỏ hơn.

Ví dụ, một Sprint có thời gian là 2 tuần, đội phát triển nên dành ra khoảng 2 giờ trong khoảng thời gian 2 tuần này cho buổi họp Backlog Refinement.

Các công việc có thể dc làm khi thực hiện Backlog Grooming.

– Xoá bỏ các user story ko còn liên quan.

– Tạo mới các user story để phù hợp với nhu cầu mới

– Sắp xếp lại độ ưu tiên của các User Story

– Tính toán, ước lượng độ khó và phân chia dev cho các user Story mới

– Phân Chia các User story mà có độ ưu tiên cao nhưng vẫn còn thô thành các user story nhỏ hơn.

image

– Không có cam kết nào được tạo ra trong buổi họp Backlog Refinement. Chúng ta sẽ quyết định số lượng công việc phải làm trong 1 Sprint trong buổi họp Sprint Planning Meeting.