Mục lục:
- Bước 1: Nhận tất cả các vật phẩm cần thiết
- Bước 2: Chuẩn bị sẵn sàng Raspberry Pi của bạn
- Bước 3: Kết nối mọi thứ với nhau
- Bước 4: Tạo cơ sở dữ liệu của bạn
- Bước 5: Thời gian cho Mã
- Bước 6: Dùng thử
Video: Fanair: Trạm thời tiết cho phòng của bạn: 6 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
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
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
Đã đế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:
- 'sudo raspi-config'
- 'Tùy chọn giao diện'
- '1 dây'
- Cho phép
- 'sudo nano /boot/config.txt'
- Thêm dòng này vào tệp: 'dtoverlay = w1-gpio'
- 'sudo khởi động lại'
SPI:
- 'sudo raspi-config'
- 'Tùy chọn giao diện'
- 'SPI'
- Cho phép
- 'sudo khởi động lại'
- 'sudo nano /boot/config.txt'
- Tìm kiếm 'dtparam = spi = on' và bỏ ghi chú bằng cách xóa thẻ bắt đầu bằng #.
- 'sudo apt-get install python3-dev
Smbus:
- 'sudo raspi-config' '
- 'Tùy chọn giao diện'
- 'I2C'
- Cho phép
- 'sudo khởi động lại'
- 'sudo apt-get install -y python-smbus'
- 'sudo apt-get install -y i2c-tools'
- 'sudo nano /boot/config.txt'
- 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:
Trạm thời tiết NaTaLia: Trạm thời tiết sử dụng năng lượng mặt trời Arduino Đã thực hiện đúng cách: 8 bước (có hình ảnh)
Trạm thời tiết NaTaLia: Trạm thời tiết sử dụng năng lượng mặt trời Arduino Đã hoàn thành đúng cách: Sau 1 năm hoạt động thành công trên 2 địa điểm khác nhau, tôi đang chia sẻ kế hoạch dự án trạm thời tiết sử dụng năng lượng mặt trời của mình và giải thích cách nó phát triển thành một hệ thống thực sự có thể tồn tại trong thời gian dài thời kỳ từ năng lượng mặt trời. Nếu bạn theo dõi
Trạm thời tiết DIY & Trạm cảm biến WiFi: 7 bước (có hình ảnh)
DIY Weather Station & WiFi Sensor Station: Trong dự án này, tôi sẽ hướng dẫn bạn cách tạo một trạm thời tiết cùng với một trạm cảm biến WiFi. Trạm cảm biến đo dữ liệu nhiệt độ và độ ẩm cục bộ và gửi dữ liệu đó qua WiFi đến trạm thời tiết. Sau đó, trạm thời tiết hiển thị t
Máy tính để bàn Wacky Waving Cánh tay thổi phồng có thể thổi phồng Man: 4 bước (có hình ảnh)
Máy tính để bàn Wacky Waving Inflatable Arm Flailing Tube Man: Tôi luôn muốn xây dựng một máy tính để bàn có kích thước " Wacky Waving Inflatable Arm Flailing Tube Man ", còn được gọi là Tube man, còn được gọi là Skydancer, Air dancer … Dự án này đã bắt đầu trở lại vào năm 2013, tôi đã trình bày nguyên mẫu thô đầu tiên được làm rất dí dỏm
TripComputer - Mô-đun thời tiết & máy tính chuyến đi GPS cho xe của bạn: 11 bước (có hình ảnh)
TripComputer - Mô-đun thời tiết & máy tính chuyến đi GPS cho xe của bạn: Một dự án pi mâm xôi thú vị sử dụng mô-đun đột phá GPS và 2 màn hình Digole nhỏ để có một máy tính điều hướng trên bảng điều khiển của bạn
Acurite 5 trong 1 Trạm thời tiết sử dụng Raspberry Pi và Weewx (các trạm thời tiết khác tương thích): 5 bước (có Hình ảnh)
Trạm thời tiết Acurite 5 trong 1 Sử dụng Raspberry Pi và Weewx (các Trạm thời tiết khác Tương thích): Khi tôi mua trạm thời tiết Acurite 5 trong 1, tôi muốn có thể kiểm tra thời tiết tại nhà của mình khi tôi đi vắng. Khi tôi về nhà và thiết lập nó, tôi nhận ra rằng tôi phải có màn hình kết nối với máy tính hoặc mua trung tâm thông minh của họ,