树莓派(linux)上nodejs和c交互

前提

硬件:树莓派+传感器(DTH11)
具体部分:
1.树莓派+传感器+c语言采集数据
2.使用nodejs处理得来的数据

本文记录的部分:让nodejs和测温程序间可进行交互。
故,其中有个环节是:nodejs和c程序进行交互。
已知的有三个方法:源自博客
nodejs与c语言交互应用实例
其中提到了三个方式:
1.addon:尝试了,但是node-gyp安装总是失败,让人抓狂。
2.使用node-ffi模块。使用方法很直白,但其中比较让人抓狂的是node-ffi模块已久未更新,使用最新版的node版本(12)无法跑起来,且无法直接安装。
解决方法:
1)使用n将node版本改成10.21.0(亲测可用)
2)nodeffi的安装:(见下面的链接)
ffi一些常见的错误
3)调用exe文件,这个没试过。
3.ref相关模块的安装
直接:
sudo cnpm install ref-array
sudo cnpm install ref
sudo cnpm install ref-struct

测试程序.

1.生成.so文件
参考博客:Linux动态库生成以及调用
这里有linux下生成并使用.so文件的方法。可根据此链接写出max.c,max.lib,max.h三个文件,同时记得修改一下树莓派的~./bashrc文件。
2.使用ffi模块调用.so文件即可(待做)

测温函数+node读取

根据上面的链接,凑出了下面的例子。
nodejs与c语言交互应用实例
根据此例子做的树莓派测温+nodejs读取函数

/*
 *   名称:hum.c:
 *   Simple test program to test the wiringPi functions
 *   DHT11 test
 */

#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

#include <stdbool.h>
#include <string.h>

#if defined(WIN32) || defined(_WIN32)
#define EXPORT __declspec(dllexport)
#else
#define EXPORT
#endif

#define MAXTIMINGS 85

#define DHTPIN 0
typedef struct
{
   
    int temz;
    int temx;
    int humz;
    int humx;
}data_info;
data_info* wenshidu;



EXPORT data_info* read_dht11_dat()
{
   
	wenshidu = (data_info *)malloc(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值