Mục lục:

Gửi tin nhắn với Temperatur đúng thời gian: 5 bước (có hình ảnh)
Gửi tin nhắn với Temperatur đúng thời gian: 5 bước (có hình ảnh)

Video: Gửi tin nhắn với Temperatur đúng thời gian: 5 bước (có hình ảnh)

Video: Gửi tin nhắn với Temperatur đúng thời gian: 5 bước (có hình ảnh)
Video: #554 Vì Sao Photon Tồn Tại Bên Ngoài Dòng Thời Gian? 2024, Tháng mười một
Anonim
Gửi tin nhắn với Temperatur đúng giờ
Gửi tin nhắn với Temperatur đúng giờ

Ý tưởng là nhận được một sms temperatur từ nhà của cha tôi.

Không có gì lạ mắt chỉ cần nhanh chóng lắp các bộ phận lại với nhau.

Các bộ phận là:

  • Bo mạch điều khiển Geekcreit® ATmega328P Nano V3 tương thích Arduino
  • Tự làm bảng mở rộng NANO IO Shield V1. O cho Arduino
  • Mô-đun đồng hồ thời gian thực RTC IIC / I2C dựa trên DS1307 và DS18b20
  • SIM800L Bốn băng tần GSM / GPRS
  • LM2596 Bộ chuyển đổi Mini DC-DC Mô-đun cấp nguồn có thể điều chỉnh bước xuống
  • Nhiệt độ Thermistor NTC MF52AT

Đầu tiên là rất nhiều việc đọc và tìm kiếm.

Vì cuối cùng tôi đã sử dụng Geekcreit® Nano, tôi kiểm tra tất cả các bộ phận bằng Arduino Uno.

Bước 1: Đưa SIM800l hoạt động

Mang SIM800l đến nơi làm việc
Mang SIM800l đến nơi làm việc

Một điểm chính là sức mạnh cho Sim800L.

Tôi sử dụng bộ chuyển đổi DC-DC LM2596 Mini, được điều chỉnh thành 3,7 volt và nguồn điện riêng biệt.

Để kiểm tra kết nối với các lệnh AT +, bên này rất có thể sử dụng:

Khởi động nhanh SIM800 (SIM800L) với Arduino

Với Tắt mã pin bằng modem gsm tại các lệnh, tôi đã nhận được mã pin của sim.

Tiếp theo xem xét thư viện nào. Internet cung cấp các giải pháp khác nhau.

Giải pháp của tôi là thư viện từ Mattias Aabmets: AspenSIM800

Exampel của anh ấy: Send_SMS.ino đã sử dụng tôi làm chương trình cơ bản và từng cái một kết nối tất cả các phần khác lại với nhau.

Chân Tx và chân Rx là mã để:

RX_PIN 10 của Arduino. Phải được kết nối với chân TX của mô-đun SIM800. TX_PIN 11 của Arduino. Phải được kết nối với chân RX của mô-đun SIM800

Bạn nên đọc các tệp *.ccp và *.h trong thư viện.

Chúng chứa nhiều gợi ý và kiến thức thú vị.

Bước 2: Đưa RTC DS1307 với cảm biến DS18B20 hoạt động

Nhận RTC DS1307 với cảm biến DS18B20 để hoạt động
Nhận RTC DS1307 với cảm biến DS18B20 để hoạt động

Tôi đã sử dụng bên này: simtronyx - blog cho DS1307 và DS18B20.

Đồng hồ có kết nối bus I2C và dành cho Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 tôi đã kết nối với D3.

Tôi đọc rằng trong một SMS, bạn không thể gửi Floats only String, vì vậy tôi phải dịch float sang string.

Điều đó tôi làm với đoạn mã này, tôi đã tìm thấy:

n

MyString1 = String (currentTemp, 2); // Chuyển float thành String

MyString1 = (MyString1 + "C - RoomTemperatur:)");

// chuyển đổi chuỗi thành char bắt đầu ở đây

// Độ dài (có thêm một ký tự cho dấu chấm hết rỗng)

int str_len1 = MyString1.length () + 1; // Chuẩn bị mảng ký tự (vùng đệm)

char char_array1 [str_len1]; // Sao chép nó qua

MyString1.toCharArray (char_array1, str_len1); // chuyển đổi chuỗi thành char kết thúc cô ấy

Thành thật mà nói, tôi không biết nó hoạt động như thế nào, nhưng nó hoạt động.

Bước 3: Đưa Thermistor NTC MF52AT hoạt động

Làm cho Thermistor NTC MF52AT hoạt động
Làm cho Thermistor NTC MF52AT hoạt động

Tôi đã làm việc với một nhiệt điện trở nên nó là một phần dễ dàng.

Nhưng cũng ở đây bạn có thể tìm thấy giải pháp khác nhau.

Trong mã finaly, bạn có thể tìm thấy mã của tôi.

Bạn cũng có thể tìm thấy bản dịch Floats sang String.

Đã hàn một số dây và điện trở 10 k ohm với nhiệt điện trở.

Bước 4: Làm cho tất cả cùng làm việc

Vì vậy, tôi đã viết tất cả các phần của chương trình cùng nhau.

Bây giờ tôi phải tìm ra cách gửi một SMS mỗi ngày, cùng một lúc.

Tôi đã đọc về các ý tưởng khác nhau, một số có TimerAlarm và cách tiếp cận khác.

Nhưng tôi đã tìm thấy một giải pháp đơn giản ở một số nơi trong diễn đàn arduino:

if (now.hour () == 8 && now.minute () == 00 && now.second () == 59)

{

SIM.smsSend (addr, char_array); // điện trở nhiệt

chậm trễ (500); SIM.smsSend (addr, char_array1); // DS18B20}

Nhưng tại sao now.second = 59 vì nó gửi toàn bộ SMS. Nó làm cho tôi nhưng hãy thử cho chính mình.

Sau một số thử nghiệm, tôi đã tải chương trình lên Geekcreit® Nano.

Đây có thể không phải là cách viết chương trình tốt nhất:) nhưng nó thực hiện điều mong muốn.

Vì Nano Geekcreit® ATmega328P có một số vấn đề về Arduino IDE, tôi tải lên bằng thiết bị đầu cuối (Linux Mint) ném USBtinyisp với cái này: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

Bước 5: Nó hoạt động

Vâng, nó đã hoạt động và nó được đặt trong nhà.

Mỗi ngày vào lúc 6 giờ sáng, tôi nhận được một tin nhắn SMS thông báo về tính khí.

Đề xuất: