Mục lục:

Edison Makes Me a Coffee (mã): 3 bước
Edison Makes Me a Coffee (mã): 3 bước

Video: Edison Makes Me a Coffee (mã): 3 bước

Video: Edison Makes Me a Coffee (mã): 3 bước
Video: Improve your English ⭐ | Very Interesting Story - Level 3 - Thomas Edison | WooEnglish 2024, Tháng bảy
Anonim
Edison Makes Me a Coffee (mã)
Edison Makes Me a Coffee (mã)

Dự án này sẽ cho phép bạn kích hoạt một hành động (như phục vụ cà phê) sau khi một máy khách WiFi được phát hiện trong mạng WiFi (như khi bạn hoặc nhân viên của bạn đến văn phòng của bạn).

Bước 1: Thiết lập Intel Edison của bạn

Thiết lập Intel Edison của bạn
Thiết lập Intel Edison của bạn

Kết nối hai cáp USB từ máy tính của bạn với bảng Edison (một cho nguồn, một cho dữ liệu nối tiếp). Trong OSX, mở một kết nối nối tiếp với bảng từ thiết bị đầu cuối của bạn: screen /dev/tty.usbserial-AJ035OK6 115200-Đăng nhập Edison mặc định là root. Khi bạn đã ở trong, hãy định cấu hình mạng wifi: config_edison --wifiHãy thêm danh sách nguồn để có thể tải xuống các gói từ Edison. Mở tệp này: root @ edison: ~ # vi /etc/opkg/base-feeds.confVà thêm các dòng này vào tệp (gõ "i" để có thể chèn văn bản trong trình chỉnh sửa vi): src / gz all http: / /repo.opkg.net/edison/repo/allsrc/gz edison https://repo.opkg.net/edison/repo/edisonsrc/gz core2-32 https://repo.opkg.net/edison/repo/core2 -32Sau đó cập nhật các nguồn và cài đặt các thư viện cần thiết cho dự án của chúng tôi: root @ edison: ~ # opkg updateroot @ edison: ~ # opkg install libmraa0 nanoroot @ edison: ~ # opkg install python-piproot @ edison: ~ # curl https: / /bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | pythonroot @ edison: ~ # pip cài đặt ubidotsDone! bây giờ chúng tôi đã sẵn sàng để mã. Phát hiện khi tôi đến văn phòng của mình Chúng tôi sẽ sử dụng trình dò tìm gói Scapy để có thể phát hiện lưu lượng ARP trong mạng wifi cục bộ. Scapy là một công cụ tuyệt vời cho phép bạn xử lý các gói mạng từ một tập lệnh Python dễ dàng. Nếu không có nó, chúng tôi sẽ phải phân tích cú pháp rất nhiều mã nhị phân khi đánh giá lưu lượng mạng. Tập lệnh đầu tiên của chúng tôi sẽ tìm kiếm các địa chỉ MAC được lưu trữ trong tệp csv có tên "dictionary.csv" và sau đó gửi giá trị "1" đến một biến Ubidots, nghĩa là người đó đã đến. Nếu địa chỉ MAC được nhìn thấy lần đầu tiên, thì tập lệnh sẽ tự động tạo một biến Ubidots để lưu trữ dữ liệu. arp_count (pkt) "mỗi khi một gói ARP bị đánh hơi. Chức năng đó là nơi chúng tôi kích hoạt nhiều quy trình để cập nhật biến Ubidots. Lý do tôi sử dụng Multiprocessing là vì tôi cần một chức năng song song để, nếu hai người dùng đến cùng một lúc, thì cả hai gói đều có thể được phát hiện và cập nhật trong Ubidots. Tùy chọn "store = 0" là rất quan trọng vì nếu không thì các gói sẽ bắt đầu lấp đầy RAM và bộ nhớ Swap của Edison và nó sẽ đóng băng sau vài giờ. https://halckemy.s3.amazonaws.com/uploads/document/file/46958/dictionary.csvhttps://halckemy.s3.amazonaws.com /uploads/document/file/46543/wifi_sniff.py

Bước 2: Kích hoạt Servo khi gói ARP bị đánh hơi

Kích hoạt Servo khi gói ARP bị đánh hơi
Kích hoạt Servo khi gói ARP bị đánh hơi

Tập lệnh thứ hai sẽ thăm dò biến Ubidots đó mọi lúc (biến mà chúng tôi đang gửi "0" hoặc "1" tới) và kích hoạt servo khi biến bằng "1". Tôi đang sử dụng thư viện MRAA (do Intel đề xuất) cho phép bạn xử lý tất cả các chân GPIO của Edison của bạn từ trình bao Linux hoặc tập lệnh python (thực sự, không cần phải viết mã trong Arduino!). Điều này cho phép tôi nhanh chóng xử lý động cơ Servo từ Python. Https://halckemy.s3.amazonaws.com/uploads/document/file/46556/pour_coffee.py Servo được gắn vào chân D3 trong Grove Kit. Bạn có thể thiết lập Servo này để kích hoạt bất kỳ van vật lý nào, chẳng hạn như máy pha cà phê. Tôi đã tạo một ngăn đựng cốc đơn giản vì mục đích của bản demo. Hai bạn cũng có thể tạo một "Công tắc" trong bảng điều khiển của mình và điều khiển dụng cụ rót cà phê theo cách thủ công:

Bước 3: Vui lòng bỏ phiếu

Hãy bỏ phiếu!!! Đối với video:

Đề xuất: