Bài đăng

Hiển thị các bài đăng có nhãn Raspberry PI

Hướng dẫn Truyền nhận dữ liệu giữa Arduino và Raspberry Pi qua sóng RF sử dụng module nrf24l01

Hình ảnh
Cũng giống như con người, để các thiết bị thông minh hơn thì cần phải giao tiếp với nhau để trao đổi thông tin, dữ liệu. Quá trình truyền nhận dữ liệu này được chia thành hai dạng: Truyền dữ liệu có dây : dùng dây điện để kết nối hai thiết bị lại với nhau. Chúng sẽ truyền và nhận dữ liệu theo một chuẩn giao tiếp mà người lập trình quy định sẵn. Ví dụ: UART, I2C, SPI, CAN, ... Truyền dữ liệu không dây:  với cách truyền/nhận này, chúng ta không cần dùng dây điện để nối hai thiết bị, mà chúng vẫn có thể giao tiếp được với nhau. Có rất nhiều cách để làm được điều này, tiêu biểu phải kể đến RF (Radio Frequency), Wifi, Bluetooth, ... Trong số các phương thức truyền/nhận dữ liệu không dây, RF (Radio Frequency) là một giải pháp với giá thành rẻ, dễ sử dụng và khoảng cách truyền nhận xa. Ở bài viết này, mình sẽ hướng dẫn các bạn cách sử dụng module NRF24L01 để truyền và nhận dữ liệu giữa hai board Arduino và Raspberry Pi. Danh mục chính trong bài viết 1. Chuẩn bị những linh kiện

Hướng dẫn Cài đặt hệ điều hành, kết nối Raspberry Pi với Router Wifi không cần màn hình, bàn phím, ...

Hình ảnh
Xin mến chào bạn đã đến với Rất Đơn Giản ! Có thể đây là lần đầu bạn đặt chân đến đây hoặc cũng có thể bạn đã từng ghé qua nơi này  - blog của mình một vài lần trước đó. Nhưng hy vọng đây sẽ không phải là lần cuối cùng bạn đến đây. Đến rồi đi cứ vội vàng đi. Trao cho anh bao yêu thương rồi em lại bỏ đi,... Bla Bla xàm tí rồi vào vấn đề chính nào :D Raspberry Pi là một board máy tính nhúng có kích thước nhỏ và ngày càng có cấu hình mạnh mẽ. Với cộng đồng hỗ trợ đông đảo và khả năng mà nó mang lại, Board máy tính này ngày càng được nhiều người sử dụng trong công việc và học tập. Tuy nhiên, không hẳn ai cũng có thể sắm đầy đủ phụ tùng đi kèm để hợp nhất thành một siêu saya hoàn chỉnh được. Nên trong bài viết này, mình sẽ hướng dẫn các bạn cách kết nối, lập trình, thao tác trên Raspberry mà không cần dùng đến màn hình và bàn phím. 1. Chuẩn bị Board Raspberry Pi Đầu tiên, để làm được điều này, chúng ta cần phải chuẩn bị một board Raspberry Pi (loại có wifi thì càng tốt nhé, nếu khô

json và python

Hình ảnh
1. Chuyển chuỗi thành json Ta có một chuỗi như sau : json_string = '{"first_name": "Guido", "last_name":"Rossum"}' Một vấn đề đặt ra bây giờ là : làm thế nào để đọc từng giá trị của những thành phần bên trong chuỗi đã tạo ra. Trong chuỗi ví dụ trên thì "first_name" có giá trị là "Guido". Làm thế nào để chũng ta lấy được giá trị "Guido" một cách đơn giản nhất. Hôm nay tôi sẽ hướng dẫn cho các bạn giải quyết vấn đề này : import json json_string = '{"first_name": "Guido", "last_name":"Rossum"}' parsed_json = json.loads(json_string) print(parsed_json['first_name']) Sau khi chạy đoạn code trên chúng ta được chữ "Guido" xuất ra trên màn hình, hay nói cách khác là chúng ta đã đọc được giá trị của đối tượng "first_name" trong chuỗi json: Guido Nguồn : http://docs.python-guide.org/en/latest/scenarios/json/

Cách xóa port listen trong linux

Hình ảnh
Trong một số ứng dụng chúng ta cần thao tác với port ví dụ như :Socket (cần dùng đại chỉ IP,Port : 192.168.5.101:8888).... Khi khởi tạo Server xong, Lúc thoát khỏi Server thì port vẫn còn lưu trong bộ nhớ. Khi bạn mở lại code khởi tạo Server thì hệ thống sẽ báo lỗi port đã sử dụng rồi. để khắc phục tình trạng này, bạn phải vào code và sửa lại port khác, hoặc reset lại board. Hôm nay tôi sẽ hướng dẫn cho các bạn hủy các Port đã khởi tạo bằng code : đầu tiên, cần tìm xem port có khởi tạo không, nếu có thì liệt kê ra PID. Tùy theo Port sử dụng mà sửa lại "8888" cho phù hợp nhé! sudo lsof -i tcp:8888 kill -9 PID Trong ví dụ này, thì mã số PID là 1931. Sau khi hủy nhập lệnh trên thì Port sẽ bị hủy.

Coppy file vào trong thư mục /var/www

Hình ảnh
Trong một số ứng dụng trên linux chúng ta cần thao tác với file bên trong thư mục /var/www/  như là  webserver, ... Nhưng khi chúng coppy tệp tin nào đó vào trong thư mục /var/www hệ điều hành sẽ báo lỗi : permission denied. để khắc phục tình trạng này, trước khi các bạn coppy file thì hãy nhập dòng lệnh này vào trong trình biên dịch để cho hệ thống hiểu bạn đang thao tác với quyền admin tại thư mục đó. sudo chmod -R 777 /var/www Giờ hãy thử làm lại thử nhé!

Điều khiển GPIO Raspberry Pi qua Ethernet/LAN đơn giản

Hình ảnh
Lưu ý : Cách này áp dụng cho RPI đã cài đặt apche và PHP. Với cách này chúng ta có thể điều khiển thiết bị thông qua Ethernet/LAN và sau đó là Internet. Cùng bắt đầu tiến hành nào! Chúng ta tiến hành tạo File : ledon.php bằng dòng lệnh sudo nano ledon.php (trong thư mục /var/www/html ) và nhập code sau : <?php         system("gpio -g mode 2 out");         system("gpio -g write 2 1"); ?> Tiếp theo tạo file ledoff.php và nhập các dòng lệnh : <?php         system("gpio -g mode 2 out");         system("gpio -g write 2 0"); ?> Tiến hành truy cập vào địa chỉ : IP/ledon.php vào trình duyệt trên máy tính, điện thoại, hoặc RPI để bật led. (Truy cập cùng 1 router). IP/ledoff.php để tắt led. IP : Địa chỉ IP của bạn khi đã cấu hình HTML, PHP cho raspberry. Địa chỉ này có thể xem bằng những cách nhập dòng lệnh sau vào trình biên dịch LX Terminal : Ifconfig Hoặc hostname –I . Bạn cũng

Raspberry Pi and Module sim900 (icomsat v1.1)

Hình ảnh
Xin chào tất cả các bạn, hôm nay mình sẽ viết bài nói về module sim 900 và Raspberry Pi. Bài hướng dẫn này mình sử dụng Raspberry và module sim icomsat v1.1 (Arduino shield). Arduino shield này có tốc độ baud là 2400. Trong datasheet của nhà sản xuất để là 9600, nhưng khi mình test thử (lấy điện thoại gọi vào module sim) thì trên Raspberry không hiểu những ký tự đó là gì? Mình đã thay đổi tốc độ baud, và thấy 2400 là phù hợp. Dưới đây là những code mình đã test thử : Code từ chối cuộc gọi khi có cuộc gọi đến : import serial import time ser = serial.Serial('/dev/ttyAMA0',2400,timeout=1) ser.flush() while True:         ser.write('ath\r')         time.sleep(2)         a = ser.read(9999)         print a         time.sleep(10) ser.close() Code gửi sms từ module sim đến một số điện thoại bất kỳ : import serial from serial import Serial from time import sleep ser = Serial("/dev/ttyAMA0",2400, timeout=1) data2 = ser.write("at\r") data = se

kết nối webserver RPI với domain name để truy cập thông qua internet - (không cần set up port forwarding)

Hình ảnh
Chắc hẳn bạn đạng mày mò khám phá làm thế nào để kết nối webserver thông qua internet. Mới bắt tay vào làm thì cần một cái "free" để test và thêm hứng thú để làm hơn nhỉ? Cũng có nhiều bài viết trên mạng hướng dẫn cách kết nối Webserver với DNS, nhưng để làm được những điều này, các bạn cần phải mở port forwarding và làm nhiều bước khác rất rắc rối. Hôm nay mình xin hướng dẫn cách kết nối Webserver với Internet một cách đơn giản bằng Weaved. đầu tiên, các bạn truy cập vào : https://developer.weaved.com/  và đăng ký một tài khoản free. Sau khi đã có tài khoản, chúng ta kết nối mạng và thực hiện download phần mềm weaved về board bằng cách gõ dòng lệnh : wget https://github.com/weaved/installer/raw/master/binaries/weaved-nixinstaller_1.2.13.bin Những tải những phiên bản mới hơn hãy xem lại địa chỉ sau : https://github.com/weaved/installer/tree/master/binaries Tiếp theo ta tiến hành cho phép Weaved quyền thực thi trên board: chmod +x weaved-nixinstaller_1.

Ngày giờ trong Python - Raspberry Pi

Hình ảnh
để sử dụng thư viện ngày giờ trong python, ta tiến hành tạo file date.py bằng cách : vào trình biên dịch, soạn: sudo nano date.py một trình biên dịch nano có tên date.py hiện lên, và chúng ta tiến hành nhập những dòng code này vào: import datetime from time import gmtime, strftime now = datetime.datetime.now() print strftime("%Y-%m-%d %H:%M:%S", gmtime()) print strftime("%a, %d %b %Y %X", gmtime()) print now.isoformat() print now.strftime("%Y-%m-%d %H:%M") Sau khi nhập xong bấm ctr-x + Y để lưu lại và soạn : Python date.py để khởi chạy file vừa tạo và kết quả chúng ta sẽ được như hình trên. Lưu ý : Chỉ áp dụng cho Raspberry Pi hoặc board khác sử dụng ngôn ngữ python và kết nối internet nhé, nếu không kết nối internet thì dùng module thời gian thực, nếu không thì thời gian hiển thị sẽ không đúng so với thời gian hiện tại của chúng ta.

Kết nối Raspberry và MSP430G2553 thông qua giao tiếp UART

Hình ảnh
Kết nối: Mình đang dùng Raspberry phiên bản B, 26 chân. TX : chân số 8. RX : chân số 10. GND : chân số 6. thiết lập UART trên Raspberry PI, các bạn hãy tham khảo ở đây nhé! MSP430G2553 (lauchpad). RX : chân số 3. TX : chân số 4. chúng ta tiến hành kết nối 2 board lại với nhau như sau : RX nối TX của board kia, và ngược lại (đừng quên nối chung GND 2 board lại với nhau nhé). code lauchpad: //int a=0; //char a; //doc 1 ky tu String a; void setup() {   Serial.begin(9600); } void loop() {   //a = Serial.read();   a = Serial.readStringUntil('\n');   if(a == "anh yeu em")   {      Serial.write("OK\n");   } } code python : import serial from serial import Serial from time import sleep ser = Serial("/dev/ttyAMA0", 9600, timeout=2) while True:         ser.write("anh yeu em")         data = ser.read(50)         print data ser.close() chúc các bạn thành công!

Cài đặt UART trên phiên bản raspbian jessie (Setup UART on Raspian jessie)

Hình ảnh
Mình thấy có nhiều bài hướng dẫn cài đặt port UART trên phiên bản Wheezy, nhưng hiện nay thì phiên bản này không được phát triển nữa. Muốn cài Port UART cho phiên bản jessie mà làm theo cách của phiên bản wheezy thì có một số bước sẽ không làm được. Nên hôm nay mình xin hướng dẫn các bạn cấu hình UART trên phiên bản Raspbian Jessie :  Đầu tiên, các bạn gõ câu lệnh :            sudo raspi-config để hiện bảng cài đặt như hình dưới.  Tiếp theo là chọn 9 Advanced Options, sau đó chọn Serial. Chọn No để disable, và sau đó hoàn tất và khởi động lại Raspberry Pi. Khi Raspberry Pi đã khởi động lại, vào trình soạn thảo LXTerminal và soạn câu lệnh :     sudo nano /boot/config.txt Chúng ta di chuyển con trỏ xuống vị trí dưới cùng sẽ thấy dòng lệnh : enable_uart=0. Chúng ta sẽ sửa lại thành : enable_uart=0. Sau đó reboot lại máy. Vậy là quá trình cấu hình port UART trên phiên bản đã xong, rất đơn giản phải không nào. Tiếp theo là tới công đoạn t

kết nối wifi cho Raspberry Pi

Hình ảnh
Trong bài này, mình sẽ hướng dẫn cho các bạn cách kết nối Raspberry Pi với wifi thông qua usb wifi. Chuẩn bị :  - USB wifi (mình đang dùng TP Link TL-WN725N). - Router wifi. - Cáp ethernet + laptop  hoặc LCD + bàn phím . Sau khi chuẩn bị những dụng cụ trên xong, chúng ta bắt đầu tiến hành: Cách 1: các bạn chỉ có bàn phím và màn hình LCD hiển thị. Các bạn vào trình soạn thảo LXTerminal và gõ câu lệnh :     sudo iwlist wlan0 scan câu lệnh trên để liệt kê ra các router wifi mà Raspberry Pi có thể bắt được. tiếp theo gõ lệnh :     sudo nano /etc/wpa_supplicant/wpa_supplicant.conf lúc này, trong trình soạn thảo sẽ hiển thị với nội dung như sau : Các bạn di chuyển con trỏ xuống vị trí cuối cùng và tiến hành thêm những dòng này vào :   network={         ssid="tenwifi"         psk="Password" } trong đó :  tenwifi : tên wifi muốn kết nối.  Password : mật khẩu wifi của bạn. Cách 2 : khi chúng ta có laptop và không muốn dùng LCD, bàn phí