HX711+ESP8266NodeMCU通过http远程读取压力值

最近需要一个工具,需要远程读取压力,就做了一个小工具

1.硬件

选用称重传感器+HX711+ESP8266NodeMCU+电源,由于使用场景无法接电源,我直接使用充电宝当电源接入ESP8266
在这里插入图片描述

压力传感器接HX711
红->E+
黑->E-
白->A-
绿->A+
HX711接ESP8266NodeMcu
GND->GND
VCC->3.3V输出
DT->D1
SCK->D2
2.软件

总共3个文件

HX711.h
#ifndef __HX711__H__
#define __HX711__H__

#include <Arduino.h>

#define HX711_SCK D2
#define HX711_DT D1

extern void Init_Hx711();
extern unsigned long HX711_Read(void);
extern long Get_Weight();
extern void Get_Maopi();

#endif
HX711.CPP
#include "hx711.h"

long HX711_Buffer = 0;
long Weight_Maopi = 0,Weight_Shiwu = 0;

#define GapValue 112

//****************************************************
//初始化HX711,设置SCK输出脚,DT输入脚
//****************************************************
void Init_Hx711()
{
	pinMode(HX711_SCK, OUTPUT);	
	pinMode(HX711_DT, INPUT);
}


//****************************************************
//获取毛皮重量
//****************************************************
void Get_Maopi()
{
	Weight_Maopi = HX711_Read();		
} 

//****************************************************
//称重
//****************************************************
long Get_Weight()
{
	HX711_Buffer = HX711_Read();
	Weight_Shiwu = HX711_Buffer;
	Weight_Shiwu = Weight_Shiwu - Weight_Maopi;				//获取实物的AD采样数值。
	Weight_Shiwu = (long)((float)Weight_Shiwu/GapValue); 	
	return Weight_Shiwu;
}

//****************************************************
//读取HX711
//****************************************************
unsigned long HX711_Read(void)	//增益128
{
	unsigned long count; 
	unsigned char i;
	bool Flag = 0;

	digitalWrite(HX711_DT, HIGH);
	delayMicroseconds(1);

	digitalWrite(HX711_SCK, LOW);
	delayMicroseconds(1);

  	count=0; 
  	while(digitalRead(HX711_DT)); 
  	for(i=0;i<24;i++)
	{ 
	  	digitalWrite(HX711_SCK, HIGH); 
		delayMicroseconds(1);
	  	count=count<<1; 
		digitalWrite(HX711_SCK, LOW); 
		delayMicroseconds(1);
	  	if(digitalRead(HX711_DT))
			count++; 
	} 
 	digitalWrite(HX711_SCK, HIGH); 
	count ^= 0x800000;
	delayMicroseconds(1);
	digitalWrite(HX711_SCK, LOW); 
	delayMicroseconds(1);
	
	return(count);
}
weight_sensor.ino
#include "HX711.h"
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <stdlib.h>
#include <stdio.h>

ESP8266WebServer esp8266_server(80);
long Weight = 0;
char Weight_str[16] = {0};

//你的wifi
#define WIFI_SSID ""  // WiFi账号密码,更改成自己的
#define WIFI_PASSWD "" // WiFi密码,更改成自己的


//创建WiFiClient实例
WiFiClient espClient;

//连接Wifi
void initWifi(const char *ssid, const char *password)
{
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.println("WiFi does not connect, try again ...");
    delay(500);
  }

  Serial.println("Wifi is connected.");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

// 初始化web
void init_web()
{
  esp8266_server.begin();
  esp8266_server.on("/", handleRoot);
  esp8266_server.onNotFound(handleNotFound);        
  Serial.println("HTTP esp8266_server started");
}
//处理网站根目录“/”的访问请求 
void handleRoot() {
  Weight = Get_Weight();
  Serial.println("weight: ");
  Serial.println(Weight);
  ltoa(Weight,Weight_str,10);
  esp8266_server.send(200, "text/plain", Weight_str);
}
// 设置处理404情况的函数'handleNotFound'
void handleNotFound(){                                        // 当浏览器请求的网络资源无法在服务器找到时,
  esp8266_server.send(404, "text/plain", "404: Not found");   // NodeMCU将调用此函数。
}
// 初始化
void setup(){
  Serial.begin(115200);
  initWifi(WIFI_SSID, WIFI_PASSWD); 
  init_web();
  Init_Hx711();
  Get_Maopi();
}

void loop()
{                                                    
	esp8266_server.handleClient();     // 处理http服务器访问
}

访问IP地址即可获取到压力,为了避免IP变动,可设置成固定IP

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
HX711是一种高精度压力传感器,常用于测量重量或压力。而ESP8266是一款低成本、低功耗的Wi-Fi模块,常用于物联网应用和无线通信。 HX711压力传感器与ESP8266可以结合使用,通过ESP8266的ADC(模数转换器)接口读取HX711传感器的模拟输出信号,并将数据传输到云端或其他设备进行处理和显示。 HX711传感器的特点包括: 1. 高精度:HX711具有24位的模数转换器,可以实现高精度的测量。 2. 内置放大器:HX711内置了可调增益放大器,可以适应不同的传感器和测量范围。 3. 低噪声:HX711采用了特殊的设计和滤波技术,可以减少噪声对测量结果的影响。 4. 数字输出:HX711通过串行接口(如SPI或I2C)将模拟信号转换为数字信号输出。 ESP8266是一款功能强大的Wi-Fi模块,具有以下特点: 1. 低成本:ESP8266是一款价格较低的模块,适合于成本敏感的应用。 2. 低功耗:ESP8266采用了先进的功耗管理技术,可以在低功耗模式下运行,延长电池寿命。 3. 强大的处理能力:ESP8266内置了高性能的处理器,可以运行复杂的应用程序和网络协议栈。 4. Wi-Fi连接:ESP8266支持Wi-Fi连接,可以与其他设备或云端进行通信和数据交换。 通过将HX711传感器与ESP8266模块结合使用,可以实现远程监测、数据采集和控制等应用。例如,可以将HX711传感器连接到ESP8266的ADC接口,读取重量或压力数据,并通过Wi-Fi将数据发送到云端服务器或手机应用程序进行实时监测和分析。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值