arduino 可以用c_<开源项目>Arduino+STM32+SIM868 用一天创造一款可以定位的GPRS无线开关...

本文介绍了一款使用Arduino、STM32和SIM868模块自制的GPRS无线开关项目,涵盖了材料准备、编程实现和成果展示。该开关可通过GPRS网络连接云端服务器,实现远程控制、GPS/LBS定位功能。项目代码开源,适合创客和DIY爱好者。
摘要由CSDN通过智能技术生成

e51c9d2a8556bd4aee4445aaa8b3c125.png

概述

远程无线开关是智能家居和物联网中重要的执行设备,它通过接入互联网来实现手机或WEB端、weixin小程序的远程开关控制,一般通过WIFI、GPRS、4G、NBIOT等来接入网络,网上卖的最多的应该WIFI版的。但作为创客的我们来说,买一个成熟的无线开关对我们来说是没什么乐趣的,我们要充分发挥创客的创造性和动手能力,去创造一款与众不同,私人定制版的无线开关。

今天要和大家分享的就是利用Arduino这个全球最大的开源硬件平台+国内使用最为广泛的STM32F系列微控制器,再加上SIM868 GPRS 2G无线通用模块,充分利用开源的代码库,再加入一些自己的编写的代码,1天就完成了这个产品的样机功能。实现了通过GPRS网络直接连到云端服务器,加了一个简单的数据库,就能实现用WEB端或weixin小程序来远程控制2路开关了,并且还具备GPS定位和LBS室内定位功能。

材料准备

要创造这个产品,你需要以下模块

STM32103CBT6双路继电器主板 1块

a639d22b717e588b123a8d0dea851433.png

SIM868 2G通讯模组 1块 (GPRS通讯、内置GPS,可室内LBS定位,板载陶瓷天线。)

706f1e19a8af442df57fee72583fd98f.png

外壳 1个 (这个从网上购买的公壳,可以自己打印一个标签,印上自己的LOGO,给它取一个响亮的名字)

218e88308b5fd5a655666758ebf7bf24.png

这个开源项目所需的所有部件、材料,都放在了我们的创客taobao小店,搜索“兑悦物联小店”,可以找到它们了。也可以加入创客小伙伴们的家,大家一起交流,学习。我们的学习交流企鹅群:419411339。

实现的产品性能:

控制方式:WEB/微信小程序

通讯方式:GSM

定位功能:GPS/LBS

工作电压:DC24V/DC5V

电源输入接口:

接线端子DC24V

microUSB DC5V

负载电压:0~250VAC/0~30VDC

负载电流:10A MAX

控制路数:2路

接口模式:常开/常闭

产品尺寸:85X50X32mm

Arduino 编程

关于Arduino IDE编程平台的使用,网上用很多教程,还没用入门的童鞋可自行去学习。这里需要特别说明的一点是,Arduino IDE原生并不支持STM32系列的单片机,需要单独下载安装一个第三方的库来支持。关于怎么下载安装这个库,我们在另外的文章中来详细说明。

下面先无私的分享这个无线开关自己实现的那部分完整代码:

/**************************************************************
 *
 * This sketch connects to a website and downloads a page.
 * 
 *
 * TinyGSM Getting Started guide:
 *   https://github.com/ynkady/TinyGSM
 *
 **************************************************************/
/*
 使用注意:
 本程序使用SIM868 多功能GSM+GPS模块,使用前需注意以下事项:
 1、此模块适用于兑悦物联小店的GSMandGPS_MDV1.2及以上版本的模块,其它SIM868模块需要对IO进行修改
https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-16679354584.19.5a9c5712xGAkkw&id=567100266868
 2、本测试程序适用于Arduino UNO、Mega2560官方版本及其它国内各种改进版本,UNO板也可以参考本店的:
https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-16618966406.83.339d69c4yPsWMK&id=558178885996
 3、使用本测度程序前需下载TinyGSM库,但原来官方的库里不支持基站定位,我们对这个库进行了更改,并上传到Githup,可从以下地址下载,并替换原来的库文件
 https://github.com/ynkady/TinyGSM
 Windows的Arduino库文件地址:C:UserskadyDocumentsArduinolibraries
 4、GSM模块硬件连接
 4V---->外部电源供电+(3.4~4.2V,推荐4.0V)
 GND--->外部电源-
 GND--->Arduino UNO GND
 PWRKEY-----> D4
 RX---------> D3
 TX---------> D2   
 特别注意:由于GSM模块要搜索移动网络时瞬间电流非常大,可能达到2A,所以GSM模块不能使用ARDUINO开发板上的电源供电,需要使用外部稳定的电源供电,或使用容量大于1500mAh以上的锂电池供电
 GSM模块共电模块可以从我们的小店找到:
 https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-16618966406.41.339d69c4yPsWMK&id=554761942043
 */
// Select your modem:
#define TINY_GSM_MODEM_SIM800
// #define TINY_GSM_MODEM_SIM900
// #define TINY_GSM_MODEM_A6
// #define TINY_GSM_MODEM_A7
// #define TINY_GSM_MODEM_M590
// #define TINY_GSM_MODEM_ESP8266
#include <TinyGsmClient.h>
#include <Arduino_JSON.h>
#include <RTClock.h>
#include "User_Clock.h"


// Your GPRS credentials
// Leave empty, if missing user or pass
//普通GSM 2G网络接入点APN为CMNET
//物联网专用接入点APN为CMIOT
 const char apn[]  = "CMIOT";
 const char user[] = "";
 const char pass[] = "";

//Selset Dev Board Type
#define UNO        1
#define MEGA2560   2
#define BOARD_TYPE  STM32

// Use Hardware Serial on Mega, Leonardo, Micro
#if BOARD_TYPE == MEGA2560
#define SerialAT Serial3
#define GPRS_PWRKEY_PIN  4
#elif BOARD_TYPE == UNO
#define U_RX   2
#define U_TX   3
#define GPRS_PWRKEY_PIN  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值