Faits :
A.
B._ a obtenu un CFC de couturière en 1982 puis un CFC de secrétaire en 1984, profession qu'elle a exercée jusqu'en 1996. En 1998, elle a obtenu un brevet fédéral de monitrice d'auto-école; aux côtés de son époux, également moniteur, elle a pratiqué cette profession à titre indépendant, à temps très partiel. Cette activité lui a rapporté un revenu de 3'595 fr. en 2000, 5'844 fr. en 2001 et 14'660 fr. en 2002.
Le 16 octobre 2002, B._ a été victime d'un accident de la circulation qui a entraîné un traumatisme de la ceinture scapulaire droite et plusieurs fractures de côtes. A la suite de cet événement, elle a mis fin à son activité de monitrice d'auto-école. Le 17 novembre 2003, B._ s'est annoncée à l'assurance-invalidité, indiquant notamment qu'elle exerçait la profession de monitrice d'auto-école indépendante, à un tarif horaire de 75 fr., à raison de 31 heures par mois; dans un questionnaire du 2 décembre 2003, l'assurée a précisé qu'elle aurait travaillé à 100 % en qualité de monitrice d'auto-école sans l'atteinte à la santé, pour des raisons financières (soutien de famille).
A l'issue de l'instruction, l'Office de l'assurance-invalidité du canton de Fribourg (l'office AI) a estimé que l'assurée serait en mesure d'exercer une activité adaptée légère, par exemple dans le domaine du bureau, ou réceptionniste, ou caissière en kiosque ou en station service, à 100 % avec un rendement réduit de 15 %. Sans l'atteinte à la santé, l'office AI a admis que l'assurée aurait continué d'exercer son activité de monitrice d'auto-école indépendante, dont elle aurait retiré un revenu de 50'000 fr. en 2002. En ce qui concerne le revenu d'invalide, l'office AI l'a fixé à 41'291 fr. sur la base des statistiques de l'Enquête suisse sur la structure des salaires 2002 (table TA1, divers 72/74, catégorie 4). Dès lors que le taux d'invalidité s'élevait à 17,4 %, l'office AI a rejeté la demande, par décision du 25 janvier 2012.
B.
B._ a déféré cette décision au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, en concluant principalement à l'octroi d'une rente entière, subsidiairement à la mise en oeuvre d'une expertise pluridisciplinaire.
Par jugement du 23 mai 2014, la juridiction cantonale a rejeté le recours.
C.
B._ interjette un recours en matière de droit public contre ce jugement dont elle demande l'annulation, avec suite de frais et dépens, en concluant principalement à l'octroi d'une demi-rente d'invalidité à partir du 1 er mars 2012, subsidiairement au renvoi du dossier à l'office AI.
L'office AI conclut au rejet du recours. L'Office fédéral des assurances sociales a renoncé à se déterminer.

Considérant en droit :
1.
Le Tribunal fédéral statue en principe sur la base des faits établis par l'autorité précédente (<ref-law>), sous réserve des cas prévus à l'<ref-law>. Le recourant ne peut critiquer la constatation de faits importants pour le jugement de la cause que si ceux-ci ont été établis en violation du droit au sens de l'<ref-law> ou de manière manifestement inexacte (<ref-law>), c'est-à-dire arbitraire et si la correction du vice est susceptible d'influer sur le sort de la cause (<ref-ruling> consid. 4.3 p. 62 et les références). Il appartient au recourant de démontrer le caractère arbitraire par une argumentation répondant aux exigences de l'<ref-law>, respectivement de l'<ref-law> (<ref-ruling> consid. 1.4.3 p. 254 s.).
2.
2.1. Les premiers juges ont considéré que la recourante aurait travaillé à temps complet à partir de l'année 2003, compte tenu des problèmes de santé de son époux et de l'âge de leur fille (consid. 5 p. 10 du jugement attaqué). Ils ont dès lors admis que l'évaluation de l'invalidité devait être effectuée selon la méthode générale de la comparaison des revenus, comme l'avait fait l'office AI dans sa décision du 25 janvier 2012. La recourante ne remet pas en question l'application de cette méthode d'évaluation.
Par ailleurs, la juridiction cantonale a constaté que la capacité de travail de la recourante demeurait entière dans une activité professionnelle adaptée, à l'instar d'un emploi de bureau, tandis qu'elle était nulle dans une activité de monitrice d'auto-école (consid. 4e p. 9 du jugement attaqué). Sur ce point également, la recourante se rallie à l'opinion des premiers juges (recours, p. 8).
Quant au revenu que la recourante serait en mesure d'obtenir après l'accident de 2002, soit le revenu d'invalide, les premiers juges ne l'ont pas chiffré, estimant que cela n'était pas nécessaire (cf. consid. 4 infra). La recourante ne conteste pas le montant retenu dans la décision administrative du 25 janvier 2012 (41'291 fr.).
2.2. Le litige porte uniquement sur le revenu sans invalidité de la recourante ainsi que, par voie de conséquence, sur le taux d'invalidité.
3.
La constatation des revenus à comparer dans le cadre de la détermination du taux d'invalidité se présente en tant que question de fait dans la mesure où elle repose sur une appréciation concrète des preuves, mais en tant que question de droit dans la mesure où la décision se base sur l'expérience générale de la vie (arrêts 9C_110/2009 du 23 décembre 2009 consid. 4.2, 9C_24/2009 du 6 mars 2009 consid. 1.2, in SVR 2009 IV n° 34 p. 95, 9C_189/2008 du 19 août 2008 consid. 1, in SVR 2009 IV n° 6 p. 11).
Le revenu sans invalidité doit être évalué de la manière la plus concrète possible. Il se déduit, en règle générale, d'après le dernier salaire que l'assuré a obtenu avant l'atteinte à la santé, en tenant compte de l'évolution des circonstances à l'époque où est né le droit à la rente. Compte tenu des capacités professionnelles de l'assuré et des circonstances personnelles le concernant, on prend en considération ses chances réelles d'avancement compromises par le handicap, en posant la présomption que l'assuré aurait continué d'exercer son activité sans la survenance de son invalidité. Des exceptions ne sauraient être admises que si elles sont établies au degré de la vraisemblance prépondérante (<ref-ruling> consid. 4.3.1 p. 224 et la référence; arrêt 9C_439/2009 du 30 décembre 2009 consid. 5.1).
Dans le cas d'un travailleur indépendant, le revenu sans invalidité est déterminé en tenant compte de l'évolution de l'activité que l'assuré aurait exercée sans l'atteinte à la santé, eu égard à ses compétences professionnelles et personnelles, au type d'activité, à la situation économique et au développement de l'entreprise. Les revenus ou les résultats d'exploitation moyens d'entreprises semblables peuvent servir de base pour évaluer le revenu hypothétique (arrêt I 782/03 du 24 mai 2006 consid. 3.1.3, in RtiD 2006 II 214/216 avec les références; voir aussi l'arrêt I 729/79 du 4 août 1980 consid. 2, in RCC 1981 p. 40, ainsi que Ulrich Meyer, Bundesgesetz über die Invalidenversicherung, 2e éd. p. 307).
4.
En ce qui concerne le revenu sans invalidité, les juges cantonaux ont rappelé que l'office intimé l'avait fixé à 50'000 fr. par an, ce qui correspondait essentiellement à ce que l'époux de la recourante avait gagné dans son activité indépendante de moniteur d'auto-école exercée à 50 %, avant qu'il ne subisse lui-même des problèmes de santé. A cet égard, la recourante avait déclaré que dès la survenance des revers de santé de son époux en 2001, il avait été question pour elle de reprendre sa clientèle dans cette activité-là et que son mari retrouve un travail à 50 % dans une activité adaptée pour compléter son autre mi-temps qu'il exerçait comme réparateur de caravanes. La recourante avait indiqué que sans ses problèmes de santé, elle aurait travaillé à plein temps dès 2003 et que le revenu de 50'000 fr. devait être multiplié par deux. Elle avait ajouté que durant les huit premiers mois de l'année 2001, son époux avait travaillé à un taux de 25 % et avait réalisé un revenu de 21'627 fr. 90, ce qui correspondait à un salaire annuel à plein temps de 129'767 fr. 40.
La juridiction cantonale a refusé de cautionner les thèses des parties. Elle a considéré qu'on ne saurait reprendre le revenu de 50'000 fr. car il correspondait essentiellement à l'activité de l'époux, qui de plus était exercée à un taux de 50 %. Les juges cantonaux ont relevé que selon les chiffres à disposition, le revenu d'indépendant réalisé par l'époux de la recourante ou par le couple avait fortement varié entre 2000 et 2001, passant de 50'000 fr. à 64'883 fr., de sorte qu'il n'était pas possible de se fonder sur ces revenus. En outre, on ne pouvait pas davantage établir le revenu sans invalidité de la recourante sur la base de son activité de monitrice d'auto-école, car c'est seulement à compter de l'année 2000, et encore de manière réduite, qu'elle avait commencé à travailler dans ce domaine.
Dans le cas d'espèce, les premiers juges ont admis que le dernier salaire que la recourante avait réalisé avant ses problèmes de santé survenus en 2002 dans des conditions stables était celui d'une employée de bureau, de sorte qu'il fallait se fonder sur le revenu qu'elle pourrait obtenir dans cette profession. Quant à la comparaison des revenus, elle devait être réalisée au regard d'un salaire d'employée de bureau également, avec un rendement diminué de 15 %, solution la plus favorable à la recourante. Comme le revenu sans invalidité et le revenu d'invalide de référence portaient tous deux sur une activité similaire, les différences salariales qui pourraient exister ne justifiaient pas un taux minimum de 40 %, même en tenant compte de la diminution de rendement de 15 %.
5.
La recourante se prévaut d'une constatation manifestement inexacte des faits (<ref-law>) et d'arbitraire (art. 9 Cst.). A son avis, les premiers juges auraient dû calculer son revenu sans invalidité sur la base du gain qu'elle se serait procuré en poursuivant son activité de monitrice d'auto-école, tout en augmentant son taux de travail dans celle-ci, au lieu de tenir compte, à tort, du revenu provenant d'une activité d'employée de bureau. Pour étayer son point de vue, elle rappelle que sa formation de monitrice d'auto-école avait coûté 17'000 fr., qu'elle avait effectivement travaillé dans ce métier entre 2000 et 2002 et que ses revenus avaient augmenté de 3'595 fr. en 2000 à 14'660 fr. en 2002. Elle soutient qu'elle aurait repris la clientèle de son mari à partir du moment où il ne pouvait plus travailler, si les séquelles de l'accident du 16 octobre 2002 ne l'en avaient pas empêchée. En outre, elle n'avait à aucun moment indiqué qu'elle avait songé à reprendre la profession de secrétaire, mais elle avait toujours affirmé avoir eu l'intention de développer son activité de monitrice indépendante et de reprendre la clientèle de son époux, d'autant que le couple disposait d'une salle d'enseignement théorique à domicile et de deux véhicules adaptés à l'auto-école.
La recourante allègue qu'elle aurait repris une activité à plein temps à partir du 1 er janvier 2003, afin de compenser la baisse des revenus de son époux. Comme elle aurait ainsi donné 1'486 heures d'enseignement par année, à plein temps, et que le tarif-horaire pratiqué était de 76 fr. 69, la recourante estime qu'elle aurait réalisé un gain annuel de l'ordre de 100'000 fr.; en comparant ce revenu avec le revenu d'invalide de 41'291 fr. retenu par l'intimé, la perte de gain atteindrait 59 %, justifiant l'octroi d'une demi-rente.
6.
Ainsi que la juridiction cantonale l'a constaté de manière à lier le Tribunal fédéral, la recourante aurait travaillé à temps complet à partir de l'année 2003 sans l'atteinte à la santé (consid. 2.1 supra), cela - sous-entendu (consid. 5 p. 10 du jugement) - en tant que monitrice d'auto-école indépendante.
Contrairement à l'opinion des juges cantonaux, le revenu sans invalidité de la recourante ne peut dès lors être fixé en fonction d'une profession exercée jusqu'en 1996, pour le motif que les gains perçus dans l'activité de monitrice d'auto-école avaient fortement varié depuis l'an 2000 et qu'ils concernaient aussi les revenus générés par le travail de l'époux. De même, il n'est pas non plus admissible de fixer le revenu sans invalidité en extrapolant simplement les gains hypothétiques de l'époux de la recourante, comme cette dernière le voudrait, puisqu'il ne s'agit pas de ses propres revenus.
En application de la jurisprudence (cf. consid. 3 supra), le revenu sans invalidité est celui que la recourante aurait pu obtenir en exerçant son métier de monitrice d'auto-école indépendante sans l'atteinte à la santé. Pour l'établir, il n'est pas suffisant de connaître les tarifs horaires pratiqués pour les cours de conduite et pour l'enseignement théorique. Pour déterminer le revenu provenant d'une activité indépendante, il faut plutôt se fonder sur le résultat d'exploitation, composé du produit de l'activité indépendante moins les charges (<ref-law> et 18 RAVS, voir aussi Michel Valterio, Droit de l'assurance-vieillesse et survivants [AVS] et de l'assurance-invalidité [AI], 2011, n° 2096 p. 559). Ni le dossier de l'office AI ni le jugement attaqué ne contiennent d'élément qui puisse permettre de reconstituer le revenu sans invalidité.
Comme le revenu sans invalidité n'a pas été établi à satisfaction de droit (art. 61 let. c LGPA, <ref-law>) et que la correction de ce vice est susceptible d'influer sur le sort de la cause (<ref-law>), celle-ci doit être renvoyée aux premiers juges afin qu'ils procèdent à ces constats de fait conformément à ce qui vient d'être exposé.
7.
L'office intimé, qui succombe, supportera les frais de la procédure (<ref-law>) et versera une indemnité de dépens à la recourante (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est partiellement admis. Le jugement du Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, du 23 mai 2014, est annulé, la cause lui étant renvoyée afin qu'il procède conformément au considérant 6 et statue à nouveau.
2.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge de l'intimé.
3.
L'intimé versera à la recourante la somme de 2'800 fr. à titre de dépens pour l'instance fédérale.
4.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 5 septembre 2014
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président : Kernen
Le Greffier : Berthoud