Mục lục:

Fanair: Trạm thời tiết cho phòng của bạn: 6 bước (có hình ảnh)
Fanair: Trạm thời tiết cho phòng của bạn: 6 bước (có hình ảnh)

Video: Fanair: Trạm thời tiết cho phòng của bạn: 6 bước (có hình ảnh)

Video: Fanair: Trạm thời tiết cho phòng của bạn: 6 bước (có hình ảnh)
Video: Mèo Simmy Mù Mắt Khi Xem Ảnh "SIÊU CÀ KHỊA HERO TEAM" Do Fan Vẽ Trong Đảo Gấu Tuyết 2024, Tháng mười một
Anonim
Fanair: Trạm thời tiết cho phòng của bạn
Fanair: Trạm thời tiết cho phòng của bạn

Có vô số cách để tìm hiểu thời tiết hiện tại, nhưng sau đó bạn chỉ biết được thời tiết bên ngoài. Điều gì xảy ra nếu bạn muốn biết thời tiết bên trong ngôi nhà của mình, bên trong một căn phòng cụ thể? Đó là những gì tôi cố gắng giải quyết với dự án này.

Fanair sử dụng nhiều cảm biến để cảm nhận:

  • nhiệt độ
  • độ ẩm
  • soi rọi
  • một số khí
  • áp suất không khí

Nó rất nhỏ gọn và sử dụng Raspberry Pi 3 B, để lấy các giá trị, lưu chúng vào cơ sở dữ liệu MySQL và sau đó làm cho chúng dễ dàng có sẵn trên một trang web. Bao gồm trong mã và trang web là khả năng lấy dữ liệu thời tiết thực tế cho vị trí của bạn để trang web cũng có thể được sử dụng để kiểm tra thời tiết bên ngoài.

Bước 1: Nhận tất cả các vật phẩm cần thiết

Nhận tất cả các vật phẩm cần thiết
Nhận tất cả các vật phẩm cần thiết

Trước hết, bạn sẽ cần các thiết bị điện tử cơ bản như dây điện / cáp jumper. Nếu bạn có kế hoạch hàn mọi thứ lại với nhau như một dự án lâu dài thì rõ ràng bạn cũng sẽ cần một mỏ hàn, vật liệu hàn và vì sự thoải mái của riêng bạn, một PCB để hàn mọi thứ.

Đối với các hạng mục cụ thể hơn, tôi đã lập Hóa đơn vật liệu này.

  • Raspberry Pi 3 B
  • MPC3008 - 8 kênh 10-bit ADC
  • Cảm biến nhiệt độ và độ ẩm của nhiệt kế AM2301
  • WR Rademacher WR-tyoe 930-1 PCB
  • Vỏ ABS để tạo mẫu (đen)
  • LDR
  • Cảm biến khí MQ135
  • 2x bóng bán dẫn Darlington BC517
  • LED RGB
  • Gói điện trở
  • Buzzer
  • Dây điện
  • Phong vũ biểu BMP280
  • Quạt USB êm ái (5V)

Tất cả những thứ này cộng lại sẽ có giá khoảng € 110. Hãy nhớ rằng tổng giá chỉ là giá gần đúng. Ngoài ra, dự án của tôi có một màn hình LCD trong ảnh nhưng nó không được kết nối vì không có đủ dung lượng trong trường hợp của tôi, vì vậy nó không được đưa vào hướng dẫn.

Bước 2: Chuẩn bị sẵn sàng Raspberry Pi của bạn

Tải Raspian Jessie của bạn với hệ điều hành Pixel từ trang web Raspberry Pi chính thức và sau khi tải xuống, hãy giải nén nó. Bạn sẽ nhận được một tệp hình ảnh. Để có được nó trên Pi, bạn sẽ phải ghi nó vào SD-Card bằng Win32 Disk Imager. Sau khi nó được cài đặt, hãy chọn tệp hình ảnh và ổ đĩa mà bạn đang sử dụng Thẻ SD. Sau đó nhấn ghi và đợi cho đến khi hoàn tất.

Khi nó hoàn tất, hãy nhấp vào SD-Card của bạn trong File Explorer và mở tệp có tên 'cmdline.txt', đi đến cuối tệp văn bản ngay trước rootwait và ghi 'ip = 254.169.10.2' với khoảng trống xung quanh. Sau khi lưu nó, bạn nên nhấp chuột phải vào một nơi nào đó bên trong cửa sổ và tạo một tệp mới có tên 'ssh'. Lưu ý rằng tệp này không có phần mở rộng tệp. Để đảm bảo rằng nó không có tiện ích mở rộng, hãy nhấp vào "xem" trong trình khám phá tệp và kiểm tra "tệp ẩn". Nếu nó không đổi tên nó và xóa phần mở rộng để nó chỉ đọc 'ssh'.

Sau khi hoàn tất, cuối cùng bạn có thể đặt Thẻ SD của mình vào Raspberry Pi. Tải xuống ứng dụng ssh (tôi khuyên dùng MobaXterm). Và kết nối bằng ssh với IP bạn đã đặt trước đó '254.169.10.2'. Tên người dùng là 'pi', mật khẩu 'raspberry'. Nếu bạn muốn, bạn có thể thay đổi mật khẩu bằng cách nhập lệnh 'sudo passwd' trong thiết bị đầu cuối và làm theo hướng dẫn. Vì chúng tôi sẽ sử dụng một phần tốt của Thẻ SD cho Fanair, bạn nên mở rộng bộ nhớ có sẵn bằng cách nhập 'sudo rapi-config' chọn 'Tùy chọn nâng cao' và sau đó 'Mở rộng hệ thống tệp'. Nếu được nhắc khởi động lại.

Chúng tôi sẽ sử dụng giao diện 1 dây, SPI và I2C. Để có thể sử dụng chúng, trước tiên bạn cần thiết lập chúng!

Bước 3: Kết nối mọi thứ với nhau

Kết nối mọi thứ với nhau
Kết nối mọi thứ với nhau
Kết nối mọi thứ với nhau
Kết nối mọi thứ với nhau

Đã đến lúc làm một mạch! Lần đầu tiên bạn có thể nên thử nó trên breadboard, nhưng nếu không có thời gian, bạn có thể thử hàn nó lại với nhau.

Mạch bạn sẽ cần trông giống như trên, để thuận tiện, một phiên bản breadboard cũng được bao gồm.

Bước 4: Tạo cơ sở dữ liệu của bạn

Để lưu hiệu quả tất cả dữ liệu bạn sẽ nhận được, chúng tôi sẽ sử dụng cơ sở dữ liệu TSQL MySQL. Trước khi cài đặt MySQL, hãy đảm bảo mọi thứ đều được cập nhật bằng cách gõ một vài lệnh vào terminal:

  • 'sudo apt-get update'
  • 'sudo apt-get nâng cấp'
  • 'sudo apt-get dist-upgrade'

Chấp nhận mọi lời nhắc bằng cách gõ 'y' và nhập.

Để cài đặt loại MySQL:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

Khi được nhắc, hãy tạo một mật khẩu gốc mà bạn chọn.

Sau khi cài đặt xong, hãy đăng nhập bằng cách sử dụng:

'mysql -uroot -p'

Và nhập mật khẩu của bạn.

Nhận mã Fanair từ My Github! Nhấp vào 'Sao chép hoặc tải xuống' và sau đó nhấp vào 'Tải xuống ZIP'. Giải nén mã trong một thư mục bạn chọn. Truy vấn để tạo cơ sở dữ liệu hoạt động đầy đủ nằm trong thư mục cơ sở dữ liệu. Mở tệp, sao chép mã và dán mã vào thiết bị đầu cuối với MySQL đang mở. Sau đó bấm enter và cơ sở dữ liệu đã hoàn tất!

Bước 5: Thời gian cho Mã

Để sử dụng tất cả các cảm biến, bạn rõ ràng cần phải chạy một chương trình. May mắn thay, mã đã được thực hiện (đối với hầu hết các phần) và chúng tôi đã tải xuống khi nhận được truy vấn SQL cơ sở dữ liệu.

Giống như tôi đã nói, có một số thứ vẫn cần được thay đổi / bổ sung để chương trình hoạt động bình thường. Trước hết, chương trình sử dụng API Darksky để lấy dữ liệu thời tiết dựa trên kinh độ và vĩ độ. Để sử dụng nó, bạn cần phải đăng ký. 1000 cuộc gọi đầu tiên là miễn phí và sau đó có giá 0,0001 đô la cho mỗi cuộc gọi. Tôi đã biết nếu bạn không thanh toán, tài khoản của bạn sẽ bị khóa. Công bằng mà nói, $ 0,0001 cho mỗi cuộc gọi là khá rẻ. Fanair gọi dữ liệu gần đây nhất mỗi giờ, có nghĩa là trong một năm nếu chạy toàn thời gian, bạn sẽ chỉ mất 0,876 đô la. Bạn cũng nhận được 41 ngày miễn phí nếu Fanair chạy toàn thời gian.

Sau khi đăng ký, hãy tìm khóa API của bạn. Tìm kinh độ và vĩ độ của vị trí của bạn trên bản đồ google hoặc cố gắng truy cập vào google. Tạo một tệp văn bản mới trong thư mục gốc của Fanair (với các lớp, main.py…). Đặt tên tệp là 'key_location.txt'. Mở tệp văn bản và trên dòng đầu tiên dán khóa API Darksky của bạn. Trên dòng thứ hai dán kinh độ của bạn và trên dòng thứ ba dán vĩ độ của bạn (cả hai đều ở định dạng thập phân). Khi bạn hoàn tất, hãy lưu tệp.

Trong cùng một thư mục, hãy tạo một tệp văn bản khác có tên là 'database_dsn.txt'. Dòng đầu tiên phải là 'localhost'. Dòng thứ hai là 'root'. Trong dòng thứ ba, bạn nên nhập mật khẩu của mình mà bạn đã tạo cho cơ sở dữ liệu trước đó, và dòng thứ tư và cuối cùng, bạn nên nhập 'fanair'.

Nhấp chuột phải vào tệp main.py và chọn chỉnh sửa. 'Fanair = Fanair (5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")' cần được thay đổi. Nếu bạn làm theo hình ảnh, 5 giá trị đầu tiên sẽ được thay đổi từ '5, 26, 17, 27, 22, 4' thành '20, 21, 26, 19, 13 '. '/ home / muhsin / Applications / Fanair' cũng nên được thay đổi thành đường dẫn gốc Fanair của bạn (trong đó main.py là). Hãy nhớ đặt một dấu gạch chéo trước 'nhà' nhưng không phải sau 'Người hâm mộ'.

Bây giờ tất cả điều này là tuyệt vời nhưng mã cần phải có trong Pi. May mắn cho chúng tôi là giao thức sftp tồn tại. Để đặt tệp trên Pi, hãy sử dụng ứng dụng khách sftp như FileZilla hoặc nếu bạn quyết định sử dụng MobaXterm, bạn có thể tải tệp lên dễ dàng trong giao diện sftp bên trái của thiết bị đầu cuối.

Theo kinh nghiệm của tôi, không phải lúc nào tôi cũng nhận được ngày và giờ chính xác trong Raspberry Pi. Để đảm bảo bạn sẽ nhận được ngày giờ chính xác, tôi khuyên bạn nên làm theo hướng dẫn này: Ngày và giờ đồng bộ Raspberry Pi.

Và cuối cùng nhưng không kém phần quan trọng là một số thư viện cần được cài đặt và một vài giao diện cần được kích hoạt:

'sudo apt-get install build-essential python-dev'

Adafruit DHT:

'pip3 install adafruit_python_dht'

1-dây:

  1. 'sudo raspi-config'
  2. 'Tùy chọn giao diện'
  3. '1 dây'
  4. Cho phép
  5. 'sudo nano /boot/config.txt'
  6. Thêm dòng này vào tệp: 'dtoverlay = w1-gpio'
  7. 'sudo khởi động lại'

SPI:

  1. 'sudo raspi-config'
  2. 'Tùy chọn giao diện'
  3. 'SPI'
  4. Cho phép
  5. 'sudo khởi động lại'
  6. 'sudo nano /boot/config.txt'
  7. Tìm kiếm 'dtparam = spi = on' và bỏ ghi chú bằng cách xóa thẻ bắt đầu bằng #.
  8. 'sudo apt-get install python3-dev

Smbus:

  1. 'sudo raspi-config' '
  2. 'Tùy chọn giao diện'
  3. 'I2C'
  4. Cho phép
  5. 'sudo khởi động lại'
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Tìm kiếm dtparam = i2c_arm = on và bỏ ghi chú bằng cách xóa thẻ bắt đầu bằng #.

bình giữ nhiệt

pip3 cài đặt Flask

trình kết nối mysql

'pip3 install -Iv mysql-connector == 2.1.4'

spidev

'pip3 install py-spidev'

tối tăm

'pip3 install darkskylib'

Bước 6: Dùng thử

Nếu bạn đã thành công đến mức này, hãy tự mình chạm vào phía sau. Bây giờ mọi thứ đã xong để Fanair hoạt động bình thường. Vì vậy, để kiểm tra nó, hãy gõ 'cd "" ". Ví dụ: vị trí tệp là "/ home / pi" nếu bạn vừa dán vào thư mục chính của mình. Sau đó gõ 'python3 main.py' và để nó nghỉ 15 phút để nó có dữ liệu trong cơ sở dữ liệu khi hoàn tất. Sau đó nhấn 'ctrl + c' dừng chương trình lại và nhập 'python3 Flask.py'. Để xem trang web của bạn có hoạt động hay không, bạn cần phải lướt đến địa chỉ IP của Pi mà bạn đã tạo với ': 5000' sau nó (như sau: 169.254.10.1:5000 ').

Để làm cho nó chạy tự động sau khi khởi động:

'sudo nano /etc/rc.local'

Ở cuối tệp NHƯNG TRƯỚC khi thoát 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Xin chúc mừng vì tập lệnh của bạn sẽ chạy từ khi khởi động và BẠN ĐÃ HOÀN THÀNH! Nếu bạn có kế hoạch tiếp tục chạy dự án và chưa thực hiện, tôi khuyên bạn nên hàn mọi thứ lại với nhau, chỉ để đảm bảo mọi thứ vẫn ổn định. Mặc dù nếu bạn không chơi để di chuyển nó nhiều, một breadboard tất nhiên cũng hoạt động.

Đề xuất: