开启左侧

【培训作品】智能家庭取药机_纪伟

[复制链接]
发表于 2017-10-13 14:21:32 | 显示全部楼层 |阅读模式
本帖最后由 jw0066 于 2017-10-13 14:31 编辑

作品简介
智能家庭取药机是基于物联网的捡药机,为了便于家长让在家的老人或儿童能够准时吃药的装置。并配有APP通过GSM网络能够在全国各地控制家里的捡药机进行精准捡药,捡药完毕后会响起美妙的音乐作为响铃提醒家里的人进行吃药,吃药完毕后按下按钮便会关闭音乐,同时该设备会向家长手机发送“OK”短信。该设备主要用到了Ardiuno主板*1、舵机*3、1602显示屏*1、音乐播放模块*1、扬声器*1、GSM通讯模块*1等。
图片
正面图
正面.jpg
背面图
背面.jpg
俯视图
俯视图.jpg

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
Servo servo_A0;
Servo servo_A1;
Servo servo_A2;
LiquidCrystal_I2C mylcd(0x27,16,2);

String noma;
String noma1;
String noma2;
String ma;
String ma1;
String ma2;
String ma3;
String ma4;
long shu;
long shu1;
long shu2;
long shu3;
int bz1=0;

void jieshou()
{

  if(Serial.available() > 0 && bz1==0 )
  {
   noma=Serial.readStringUntil('"');//滤掉前面不需要的码
   ma= Serial.readStringUntil('"');
   noma1=Serial.readStringUntil(',');//滤掉","
    shu=String(Serial.readString()).toInt();
   Serial.flush();
   bz1=1;
    }

  if(Serial.available() > 0 && bz1==1 )
  {
   noma=Serial.readStringUntil('*');//滤掉前面不需要的码
   ma= Serial.readStringUntil('*');

   ma1= Serial.readStringUntil('*');
   ma2= Serial.readStringUntil('*');
   ma3= Serial.readStringUntil('#');
   Serial.flush();
   bz1=0;
   shu1=String(ma1).toInt();
   shu2=String(ma2).toInt();
   shu3=String(ma3).toInt();

    }
}


void sendMeg()
  {
Serial.println("AT");
  delay(1000);
Serial.println("AT+CMGF=1");
delay(1000);
Serial.println("AT+CMGS=\"18080748668\"");
delay(1000);
Serial.print("OK\r\n");
delay(1000);
Serial.write(0x1A); //
}


void setup()
{
  bz1= 0;
pinMode(4, INPUT);
  pinMode(2,OUTPUT);
pinMode(5, OUTPUT);
digitalWrite(5,HIGH);
pinMode(6, OUTPUT);
digitalWrite(6,HIGH);
servo_A0.attach(A0);
servo_A1.attach(A1);
servo_A2.attach(A2);
  mylcd.init();
mylcd.backlight();
Serial.begin(9600);

}


void loop()
{
jieshou();
  if(ma == "SM")
  {
   digitalWrite(2,HIGH);
   delay(1000);
   digitalWrite(2,LOW);
   ma="ok";
   Serial.println(String("AT+CMGR=") + String(shu));
   shu=0;
  }


  if(ma == "CY")
  {
   digitalWrite(2,HIGH);
   delay(500);
   digitalWrite(2,LOW);

   mylcd.setCursor(1-1, 1-1);
   mylcd.print("Take medicine");

   mylcd.setCursor(1-1, 2-1);
   mylcd.print(String("A") + String(shu1));

   mylcd.setCursor(7-1, 2-1);
   mylcd.print(String("B") + String(shu2));

   mylcd.setCursor(12-1, 2-1);
   mylcd.print(String("C") + String(shu3));

    for (int i = (1); i <= (shu1); i = i + (1))
   {
   servo_A0.write(90);
   delay(300);
   servo_A0.write(180);
   delay(300);
   servo_A0.write(90);
    delay(300);
   }
       for (int i = (1); i <= (shu2); i = i + (1))
   {
   servo_A1.write(90);
   delay(300);
   servo_A1.write(180);
   delay(300);
   servo_A1.write(90);
   delay(300);
   }
        for (int i = (1); i <= (shu3); i = i + (1))
   {
   servo_A2.write(90);
   delay(300);
   servo_A2.write(180);
   delay(300);
   servo_A2.write(90);
   delay(300);
   }
    digitalWrite(5,LOW);
    delay(500);
    digitalWrite(5,HIGH);

    digitalWrite(6,LOW);
    delay(500);
     digitalWrite(6,HIGH);

   ma="ok";
   shu=0;
  }

if (digitalRead(4))
{
   digitalWrite(2,HIGH);
   delay(500);
   digitalWrite(2,LOW);

    digitalWrite(5,LOW);
    delay(500);
    digitalWrite(5,HIGH);

sendMeg();

  }

if (digitalRead(12))
{
mylcd.clear();
mylcd.setCursor(1-1, 1-1);
mylcd.print("hello");
  }
}
程序
GSM1.ino (3.15 KB, 下载次数: 0)
回复

使用道具 举报

发表于 2017-10-13 16:47:23 | 显示全部楼层
很棒的作品,赞!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩课程推荐

关于我们

帮助中心

商务合作

点击这里给我发消息

关注微信公众号

Copyright © 2016-2017 i创学院 - 上海享渔教育科技有限公司 Powered by Discuz!     ( 沪ICP备16033954号-1 )